From 9841a23569665f7ab6198877590a0ff70edc2c1e Mon Sep 17 00:00:00 2001 From: Guillaume WANG <guillaume.wang@polytechnique.edu> Date: Tue, 1 May 2018 18:23:35 +0200 Subject: [PATCH] put all admin_view in path adminview/ --- src/index.js | 2 +- src/routing/admin_router.js | 25 +++++++++++++++---------- src/views/error.pug | 2 +- src/views/home.pug | 4 ++-- src/views/login.pug | 2 +- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/index.js b/src/index.js index 207338d..8753dd4 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('/adminview',router); // catches and resolves HTTP requests to paths '/adminview/*' // 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 fd5a422..3b82f6a 100644 --- a/src/routing/admin_router.js +++ b/src/routing/admin_router.js @@ -3,6 +3,9 @@ * Il définit la page de connexion `/`, le panneau administrateur `/admin` et l'API REST \(`/db/:table?`) * 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) + * mais ca marche visiblement pas... Donc j'ai mis les paths absolus dans les res.redirect(). */ import express from 'express'; import knex from '../../db/knex_router'; @@ -20,20 +23,20 @@ let port = process.env.PORT || 3000; */ router.get('/', function (req, res) { + console.log("GET handler for /adminview route"); console.log('Connecting to ' + req.url); console.log('Trying to go to admin page...'); - res.redirect('/admin'); + res.redirect('/adminview/admin'); }); -//note that this doesn't conflict with the server.get('/login', ...) in index.js since this catches path '/adminview/login' -router.get('/login', function (req, res) { +router.get('/avlogin', 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('/login'), + ensureLoggedIn('/adminview/avlogin'), function (req, res) { console.log('Connecting to ' + req.url); let userName; @@ -54,10 +57,10 @@ router.get('/admin', } ); -router.post('/login', +router.post('/avlogin', passport.authenticate('ldapauth', { - successRedirect: '/admin', - failureRedirect: '/login', + successRedirect: '/adminview/admin', + failureRedirect: '/adminview/avlogin', failureFlash: true } // on a besoin de faire un callback apres le passport.authenticate car @@ -79,16 +82,18 @@ router.post('/login', ) ); -router.post('/logout', function (req, res) { +router.post('/avlogout', function (req, res) { req.logout(); - res.redirect('/'); + res.redirect('/adminview'); }); +// je pense qu'on ferait mieux d'utiliser ca +// https://expressjs.com/en/4x/api.html#router.route router.get('/db?', function (req, res) { let table_name = req.query.table; let columns = req.query.columns; - res.redirect(`db/${table_name}?columns=${columns}`); + res.redirect(`/adminview/db/${table_name}?columns=${columns}`); }); /** diff --git a/src/views/error.pug b/src/views/error.pug index 598246c..31547c3 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="/") Go back \ No newline at end of file + a(href="/adminview/admin") Go back \ No newline at end of file diff --git a/src/views/home.pug b/src/views/home.pug index e0ab000..bd16c51 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="/db", method="get") + form(action="/adminview/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="/logout", method="post") + form(action="/adminview/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 f0594a3..b96c36f 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="/login", method="post") + form(action="/adminview/avlogin", method="post") div.form-group label(for="username") Frankiz ID input.form-control(type="text", placeholder="User", name="username") -- GitLab