diff --git a/db/seeds/01_create_groups.js b/db/seeds/01_create_groups.js index bfb6e29087a8ba06a6f83d5230838cc8cb8cd5c7..b5cdc8328d1811503a7310dc9c0c3d7ad6c72baa 100644 --- a/db/seeds/01_create_groups.js +++ b/db/seeds/01_create_groups.js @@ -15,6 +15,11 @@ exports.seed = function(knex, Promise) { website: 'binet-jtx.com', school: 'polytechnique' }, + { + name: 'Kès', + website: 'kes.binets.fr', + school: 'polytechnique' + }, { name: 'DaTA', website: 'data-ensta.fr', diff --git a/src/admin_view/admin_router.js b/src/admin_view/admin_router.js index 0c8fae6ace33cf385e10ad4a3d38ceb695088c79..b704b4f81039cce049d4adaabe9aeeede8533580 100644 --- a/src/admin_view/admin_router.js +++ b/src/admin_view/admin_router.js @@ -1,7 +1,6 @@ /** - * @file Interface "administrateur" de l'acces aux BDD. S'appuie sur css et views. + * @file */ - import express from 'express'; import knex from '../../db/knex_router'; import passport from 'passport'; @@ -20,17 +19,17 @@ router.get('/admin', function (req, res) { res.render('home', { title: 'Home', port: port }); }); -router.post('/loginAttempt' - , passport.authenticate('ldapauth', { +router.post('/login', + passport.authenticate('ldapauth', { //successRedirect: '/admin', failureRedirect: '/', //failureFlash: true //failureFlas: 'Invalid username or password.' //TODO: test this. ce message s'affiche-t-il tout seul ou faut-il aller le chercher quand on genere login.pug? - }) + }), // on a commente les deux lignes dessus et 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... - , function (req, res) { + function (req, res) { req.session.dn = req.user.dn; req.session.password = req.body.password; @@ -43,7 +42,7 @@ router.post('/loginAttempt' ); -router.get('/logout', function (req, res) { +router.post('/logout', function (req, res) { req.logout(); res.redirect('/'); }); diff --git a/src/graphql/schema.js b/src/graphql/schema.js new file mode 100644 index 0000000000000000000000000000000000000000..4313cee559267ccab32af55fa118d67e7bd126ef --- /dev/null +++ b/src/graphql/schema.js @@ -0,0 +1,30 @@ +import knex from '../../db/knex_router'; +import { makeExecutableSchema } from 'graphql-tools'; + +const typeDefs = ` + type Query { + groups: [Group] + } + + type Group { + name: String! + id: ID! + website: String + updatedAt: String! + description: String + school: String! + } +`; + +const resolvers = { + Query: { + groups: () => knex.select().from('groups') + } +}; + +const schema = makeExecutableSchema({ + typeDefs, + resolvers +}); + +export default schema; \ No newline at end of file diff --git a/src/index.js b/src/index.js index f61366f733ae28a66cabdaf699d6024c1f41244b..6529c167e3009cf051fe99f7ae313d45351a4591 100644 --- a/src/index.js +++ b/src/index.js @@ -1,13 +1,10 @@ /** * @file Entry point de webpack */ - import server from './server'; import colors from 'colors'; - import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; import makeExecutableSchema from 'graphql-tools'; - import setupLdapAuth from './ldap_auth/ldap_auth'; import router from './admin_view/admin_router'; diff --git a/src/server.js b/src/server.js index f366a9335ae2b8b25fd9a2f3ed376166a2e80521..1a1e3718b869c5b47f059c6465bfa778fe473b05 100644 --- a/src/server.js +++ b/src/server.js @@ -2,11 +2,10 @@ import express from 'express'; import bodyParser from 'body-parser'; import favicon from 'serve-favicon'; import morgan from 'morgan'; -import knex from '../db/knex_router'; import path from 'path'; import ldap_auth from './ldap_auth/ldap_auth'; +import schema from './graphql/schema'; import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; -import { makeExecutableSchema } from 'graphql-tools'; /** * @file Cree le serveur express avec tous les middleware qui vont bien @@ -35,32 +34,6 @@ server.use(morgan('dev')); // setting up ldap authentication ldap_auth(server); -const typeDefs = ` - type Query { - groups: [Group] - } - - type Group { - name: String! - id: ID! - website: String - updatedAt: String! - description: String - school: String! - } -`; - -const resolvers = { - Query: { - groups: () => knex.select().from('groups') - } -}; - -const schema = makeExecutableSchema({ - typeDefs, - resolvers -}); - // Charge le middleware express pour GraphQL server.use('/graphql', bodyParser.json(), graphqlExpress({schema})); diff --git a/src/views/login.pug b/src/views/login.pug index c1b6c7cf86f0b543d6d9fe5ef4eaec8c9a6dfe11..22111792aa11bbd64ebc8341ea5e27bf770b60f0 100644 --- a/src/views/login.pug +++ b/src/views/login.pug @@ -4,7 +4,7 @@ block content h1 Sigma backend API p Veuillez vous connecter. p Please log in. - form(action="/loginAttempt", method="post") + form(action="/login", method="post") div.form-group label(for="username") Frankiz ID input.form-control(type="text", placeholder="User", name="username")