From 33b9f90a9762db26c91ead442305d26ab43e32f5 Mon Sep 17 00:00:00 2001 From: ManifoldFR <wilson.jallet@gmail.com> Date: Tue, 1 May 2018 19:33:44 +0200 Subject: [PATCH] rollback adminview to / --- package-lock.json | 9 ++++++++ package.json | 1 + src/index.js | 2 +- src/routing/admin_router.js | 41 ++++++++----------------------------- src/server.js | 6 ++++-- src/views/error.pug | 2 +- src/views/home.pug | 4 ++-- src/views/login.pug | 2 +- 8 files changed, 27 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cb39e4..08cc02b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2322,6 +2322,15 @@ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" }, + "cookie-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz", + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=", + "requires": { + "cookie": "0.3.1", + "cookie-signature": "1.0.6" + } + }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", diff --git a/package.json b/package.json index 21127a9..7345347 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "colors": "^1.2.3", "connect-ensure-login": "^0.1.1", "connect-flash": "^0.1.1", + "cookie-parser": "^1.4.3", "copy-webpack-plugin": "^4.5.0", "cors": "^2.8.4", "express": "^4.16.2", diff --git a/src/index.js b/src/index.js index 207338d..dfeffd9 100644 --- a/src/index.js +++ b/src/index.js @@ -8,7 +8,7 @@ import router from './routing/admin_router'; import passport from 'passport'; // setting up l'interface admin des BDD -server.use('/',router); // catches and resolves HTTP requests to paths '/adminview/*' +server.use('/',router); // catches and resolves HTTP requests to paths '/*' // gere les requetes de login du front server.post('/login', diff --git a/src/routing/admin_router.js b/src/routing/admin_router.js index 3b82f6a..0ac0fc7 100644 --- a/src/routing/admin_router.js +++ b/src/routing/admin_router.js @@ -4,7 +4,7 @@ * permettant de consulter la base de donnée interne à Sigma, via des requêtes construites avec Knex. * @author manifold * - * Les res.redirect() sont censes supporter les paths relatifs (et donc pas besoin de repreciser /adminview/* a chaque fois) + * Les res.redirect() sont censes supporter les paths relatifs (et donc pas besoin de repreciser /* a chaque fois) * mais ca marche visiblement pas... Donc j'ai mis les paths absolus dans les res.redirect(). */ import express from 'express'; @@ -23,20 +23,20 @@ let port = process.env.PORT || 3000; */ router.get('/', function (req, res) { - console.log("GET handler for /adminview route"); + console.log("GET handler for / route"); console.log('Connecting to ' + req.url); console.log('Trying to go to admin page...'); - res.redirect('/adminview/admin'); + res.redirect('/admin'); }); -router.get('/avlogin', function (req, res) { +router.get('/login', function (req, res) { console.log('Connecting to ' + req.url); res.render('login', { title: 'Login', port: port, errorMessage: req.flash('error') }); //lets pug render src/views/login.pug with specified attributes }); router.get('/admin', - ensureLoggedIn('/adminview/avlogin'), + ensureLoggedIn('/login'), function (req, res) { console.log('Connecting to ' + req.url); let userName; @@ -57,34 +57,9 @@ router.get('/admin', } ); -router.post('/avlogin', - passport.authenticate('ldapauth', { - successRedirect: '/adminview/admin', - failureRedirect: '/adminview/avlogin', - failureFlash: true - } - // on a besoin de faire un callback apres le passport.authenticate car - // on souhaite garde l'information user.dn et body.password qq part. - // TODO: essayer de garder ces informations plus proprement... - // EDIT: en fait apparemment on a pas besoin de ces informations du tout - /* - function (req, res) { - req.session.dn = req.user.dn; - req.session.password = req.body.password; - - if (req.session.returnTo !== undefined) { - res.redirect(req.session.returnTo); //TODO: <- euh ok ca marche mais c'est quoi ca? - } else { - res.redirect("/admin"); - } - } - */ - ) -); - -router.post('/avlogout', function (req, res) { +router.post('/logout', function (req, res) { req.logout(); - res.redirect('/adminview'); + res.redirect('/'); }); // je pense qu'on ferait mieux d'utiliser ca @@ -93,7 +68,7 @@ router.get('/db?', function (req, res) { let table_name = req.query.table; let columns = req.query.columns; - res.redirect(`/adminview/db/${table_name}?columns=${columns}`); + res.redirect(`/db/${table_name}?columns=${columns}`); }); /** diff --git a/src/server.js b/src/server.js index 0675393..0b9b33c 100644 --- a/src/server.js +++ b/src/server.js @@ -6,6 +6,7 @@ * @author manifold */ import express from 'express'; +import cookieParser from 'cookie-parser'; import schema from './graphql/schema'; import { express as graphqlVoyager } from 'graphql-voyager/middleware'; import graphqlHTTP from 'express-graphql'; // new name of 'graphql-server-express'. cf npmjs.com @@ -29,6 +30,7 @@ server.use(bodyParser.json()); //parses bodies of media type "application/json" server.use(bodyParser.urlencoded({ //parses bodies of media type "application/x-www-form-urlencoded" extended: true //use qs library (quoi que ca veuille dire o.O) })); +server.use(cookieParser()); const configPath = path.resolve('./', 'ldap_config.json'); const config = JSON.parse(fs.readFileSync(configPath, 'utf8')); @@ -98,7 +100,7 @@ server.use('/graphql', // console.log("Accessing GraphQL as: ",uid); return { - schema: schema, + schema, graphiql: true, // gives access to graphiql if request is detected to be from browser (je crois) context: { user: { uid: uid, password: password } } // accessible in every single resolver as the third argument }; @@ -112,7 +114,7 @@ server.use('/voyager', ); // connect-flash is middleware for flashing messages -// used in sigma-back's admin interface (admin_view) +// used in sigma-back's admin interface server.use(flash()); export default server; diff --git a/src/views/error.pug b/src/views/error.pug index 31547c3..c551b32 100644 --- a/src/views/error.pug +++ b/src/views/error.pug @@ -6,4 +6,4 @@ block extraStyles block content h1 Error #{status} p #{error_message} - a(href="/adminview/admin") Go back \ No newline at end of file + a(href="/admin") Go back \ No newline at end of file diff --git a/src/views/home.pug b/src/views/home.pug index 718d835..e0ab000 100644 --- a/src/views/home.pug +++ b/src/views/home.pug @@ -5,7 +5,7 @@ block content h2 Query the database p Hello, world! This is server talking to you live on port #{port}! p You can use the REST API to query the database using the form below. - form(action="/adminview/db", method="get") + form(action="/db", method="get") div.form-group label(for="table") Table input.form-control(type="search", name="table") @@ -21,5 +21,5 @@ block content a(class="button button-small",href="/voyager") Voyager | p Currently logged in as: #{userName}. - form(action="/adminview/avlogout", method="post") + form(action="/logout", method="post") button.form-control(type="submit",class="button") Déconnexion/<em>Logout</em> diff --git a/src/views/login.pug b/src/views/login.pug index b96c36f..f0594a3 100644 --- a/src/views/login.pug +++ b/src/views/login.pug @@ -6,7 +6,7 @@ block content p Veuillez vous connecter. p <em>Please log in.</em> p #{errorMessage} - form(action="/adminview/avlogin", method="post") + form(action="/login", method="post") div.form-group label(for="username") Frankiz ID input.form-control(type="text", placeholder="User", name="username") -- GitLab