diff --git a/src/index.js b/src/index.js index 207338d7ba7cc36aa8cc7b13d87aab960333aaf2..8753dd4fcf4e3d196a44ce3ab1c4a9a5efecea5f 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 fd5a422324f17dd486238290c11b1b9c00d00a88..3b82f6a437333709897161f274a376a55254f573 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 598246c580aaa28d55d856f59d5e3bce60547637..31547c3f665b77d9c6dc9775b9ffa673c161cebe 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 e0ab000f7844672cdf5c09297db356e13c37c574..bd16c510c4a44b1a1c67dc439a0332e077e75a62 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 f0594a3f816faeec7e79d415611d396ff06493fb..b96c36f93cdadc50373f81915110930761c6efad 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")