From aba62ce8e90d466bd49be47b95e34bbcea101896 Mon Sep 17 00:00:00 2001 From: Quentin CHEVALIER <quentin.chevalier@polytechnique.edu> Date: Tue, 27 Feb 2018 17:45:10 +0100 Subject: [PATCH] Doc uploaded --- doc/global.html | 335 ++++++++++++++++++++++++++++++-------- doc/index.html | 4 +- doc/knexfile.js.html | 4 +- doc/src_index.js.html | 60 ++++--- doc/src_ldap_data.js.html | 173 ++++++++++++++++++++ package-lock.json | 52 +++++- package.json | 2 + 7 files changed, 529 insertions(+), 101 deletions(-) create mode 100644 doc/src_ldap_data.js.html diff --git a/doc/global.html b/doc/global.html index 15f6ee6..14073ea 100644 --- a/doc/global.html +++ b/doc/global.html @@ -94,19 +94,71 @@ - <h3 class="subsection-title">Members</h3> + + + <h3 class="subsection-title">Methods</h3> -<h4 class="name" id="Database:Tableget"><span class="type-signature"></span>Database: Table get<span class="type-signature"></span></h4> + -<p class="summary"><p>Get table data</p>.</p> + + <h4 class="name" id="checkGroupAdmin"><span class="type-signature"></span>checkGroupAdmin<span class="signature">()</span><span class="type-signature"></span></h4> + + + + <p class="summary"><p>console.log(client.search("ou=groups,dc=frankiz,dc=net", function(err, res) { return err; } )); + return client.search("ou=groups,dc=frankiz,dc=net", { + scope: "one", + filter: ldapescape.filter("(|(memberUid=${id})(restrictedMemberUid={$id}))",{id: person_id}), + attributes: "uid", + }, + function(err, res) { return err; + if (err) { + reject("LDAP "); + } + assert.ifError(err);</p> +<pre class="prettyprint source"><code> res.on('searchEntry', function(entry) { + console.log('entry: ' + JSON.stringify(entry.object)); + }); + res.on('searchReference', function(referral) { + console.log('referral: ' + referral.uris.join()); + }); + res.on('error', function(err) { + console.error('error: ' + err.message); + }); + res.on('end', function(result) { + console.log('status: ' + result.status);}); +});</code></pre><p>}</p>.</p> + <div class="description"> - <p>Get table data</p> + <p>console.log(client.search("ou=groups,dc=frankiz,dc=net", function(err, res) { return err; } )); + return client.search("ou=groups,dc=frankiz,dc=net", { + scope: "one", + filter: ldapescape.filter("(|(memberUid=${id})(restrictedMemberUid={$id}))",{id: person_id}), + attributes: "uid", + }, + function(err, res) { return err; + if (err) { + reject("LDAP "); + } + assert.ifError(err);</p> +<pre class="prettyprint source"><code> res.on('searchEntry', function(entry) { + console.log('entry: ' + JSON.stringify(entry.object)); + }); + res.on('searchReference', function(referral) { + console.log('referral: ' + referral.uris.join()); + }); + res.on('error', function(err) { + console.error('error: ' + err.message); + }); + res.on('end', function(result) { + console.log('status: ' + result.status);}); +});</code></pre><p>}</p> </div> @@ -115,6 +167,12 @@ + + + + + + <dl class="details"> @@ -144,7 +202,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line16">line 16</a> + <a href="src_ldap_data.js.html">src/ldap_data.js</a>, <a href="src_ldap_data.js.html#line64">line 64</a> </li></ul></dd> @@ -157,21 +215,41 @@ + + + + + + + + + + + + -<h4 class="name" id="Home"><span class="type-signature"></span>Home<span class="type-signature"></span></h4> + + + + + <h4 class="name" id="Error404catcher"><span class="type-signature"></span>Error 404 catcher<span class="signature">()</span><span class="type-signature"></span></h4> + + + + <p class="summary"><p>Catche les requêtes en dehors des URL acceptées</p></p> + + + + -<p class="summary"><p>Returns home page of API</p>.</p> -<div class="description"> - <p>Returns home page of API</p> -</div> @@ -208,7 +286,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line5">line 5</a> + <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line55">line 55</a> </li></ul></dd> @@ -224,11 +302,17 @@ - - - - <h3 class="subsection-title">Methods</h3> + + + + + + + + + + @@ -236,18 +320,15 @@ - <h4 class="name" id="checkGroupAdmin"><span class="type-signature"></span>checkGroupAdmin<span class="signature">(uid, from, client)</span><span class="type-signature"></span></h4> + <h4 class="name" id="Error404handler"><span class="type-signature"></span>Error 404 handler<span class="signature">()</span><span class="type-signature"></span></h4> - <p class="summary"><p>Fonction de Toussaint</p>.</p> + <p class="summary"><p>Gère les erreurs 404</p></p> -<div class="description"> - <p>Fonction de Toussaint</p> -</div> @@ -257,84 +338,121 @@ - <h5>Parameters:</h5> + + + +<dl class="details"> + -<table class="params"> - <thead> - <tr> - - <th>Name</th> - + - <th>Type</th> + - + - + - <th class="last">Description</th> - </tr> - </thead> + - <tbody> - <tr> - - <td class="name"><code>uid</code></td> - + - <td class="type"> - - -<span class="param-type">int</span> + + - - </td> + - + - + + <dt class="tag-source">Source:</dt> + <dd class="tag-source"><ul class="dummy"><li> + <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line65">line 65</a> + </li></ul></dd> + - <td class="description last"><p>L'id à tester</p></td> - </tr> + - <tr> - - <td class="name"><code>from</code></td> - + +</dl> + - <td class="type"> - - -<span class="param-type">int</span> - - </td> - + + + + + + + + + + + + + - <td class="description last"><p>Le groupeà tester</p></td> - </tr> + + + <h4 class="name" id="groupsUserIsMember"><span class="type-signature"></span>groupsUserIsMember<span class="signature">(person_id)</span><span class="type-signature"> → {string}</span></h4> + + + + <p class="summary"><p>Fonction qui retrouve les groupes où une personne est membre</p></p> + + + + + + + + + + + + + <h5>Parameters:</h5> + + +<table class="params"> + <thead> + <tr> + + <th>Name</th> + + + <th>Type</th> + + + + + + <th class="last">Description</th> + </tr> + </thead> + + <tbody> <tr> - <td class="name"><code>client</code></td> + <td class="name"><code>person_id</code></td> <td class="type"> -<span class="param-type">string</span> +<span class="param-type">int</span> @@ -344,7 +462,7 @@ - <td class="description last"><p>Le serveur à tester</p></td> + <td class="description last"></td> </tr> @@ -385,7 +503,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="src_talk_ldap_data.js.html">src/talk_ldap_data.js</a>, <a href="src_talk_ldap_data.js.html#line12">line 12</a> + <a href="src_ldap_data.js.html">src/ldap_data.js</a>, <a href="src_ldap_data.js.html#line14">line 14</a> </li></ul></dd> @@ -408,6 +526,28 @@ +<h5>Returns:</h5> + + +<div class="param-desc"> + <p>Liste des groupes où l'id fournie est membre</p> +</div> + + + +<dl> + <dt> + Type + </dt> + <dd> + +<span class="param-type">string</span> + + + </dd> +</dl> + + @@ -419,10 +559,12 @@ - <h4 class="name" id="Error404catcher"><span class="type-signature"></span>Error 404 catcher<span class="signature">()</span><span class="type-signature"></span></h4> + <h4 class="name" id="Home"><span class="type-signature"></span>Home<span class="signature">()</span><span class="type-signature"></span></h4> + <p class="summary"><p>Renvoie l'accueil du backend</p></p> + @@ -467,7 +609,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line39">line 39</a> + <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line8">line 8</a> </li></ul></dd> @@ -501,10 +643,15 @@ - <h4 class="name" id="Error404handler"><span class="type-signature"></span>Error 404 handler<span class="signature">()</span><span class="type-signature"></span></h4> + <h4 class="name" id="KnexAPI:Gettable"><span class="type-signature"></span>Knex API: Get table<span class="signature">(table_name)</span><span class="type-signature"></span></h4> + <p class="summary"><p>Effectue une requête pour une table dans la BDD</p></p> + + + + @@ -513,7 +660,53 @@ + <h5>Parameters:</h5> + + +<table class="params"> + <thead> + <tr> + + <th>Name</th> + + + <th>Type</th> + + + + + <th class="last">Description</th> + </tr> + </thead> + + <tbody> + + + <tr> + + <td class="name"><code>table_name</code></td> + + + <td class="type"> + + +<span class="param-type">string</span> + + + + </td> + + + + + + <td class="description last"><p>La table voulue par l'utilisateur.</p></td> + </tr> + + + </tbody> +</table> @@ -549,7 +742,7 @@ <dt class="tag-source">Source:</dt> <dd class="tag-source"><ul class="dummy"><li> - <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line49">line 49</a> + <a href="src_index.js.html">src/index.js</a>, <a href="src_index.js.html#line24">line 24</a> </li></ul></dd> @@ -593,13 +786,13 @@ </div> <nav> - <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Database:Tableget">Database: Table get</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#Home">Home</a></li></ul> + <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#groupsUserIsMember">groupsUserIsMember</a></li><li><a href="global.html#Home">Home</a></li><li><a href="global.html#KnexAPI:Gettable">Knex API: Get table</a></li></ul> </nav> <br class="clear"> <footer> - Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 11:49:25 GMT+0100 (Paris, Madrid) + Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 17:44:33 GMT+0100 (Paris, Madrid) </footer> <script> prettyPrint(); </script> diff --git a/doc/index.html b/doc/index.html index ced8e82..7be14af 100644 --- a/doc/index.html +++ b/doc/index.html @@ -150,13 +150,13 @@ </div> <nav> - <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Database:Tableget">Database: Table get</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#Home">Home</a></li></ul> + <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#groupsUserIsMember">groupsUserIsMember</a></li><li><a href="global.html#Home">Home</a></li><li><a href="global.html#KnexAPI:Gettable">Knex API: Get table</a></li></ul> </nav> <br class="clear"> <footer> - Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 11:49:25 GMT+0100 (Paris, Madrid) + Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 17:44:33 GMT+0100 (Paris, Madrid) </footer> <script> prettyPrint(); </script> diff --git a/doc/knexfile.js.html b/doc/knexfile.js.html index b1c0939..0135d5a 100644 --- a/doc/knexfile.js.html +++ b/doc/knexfile.js.html @@ -65,13 +65,13 @@ module.exports = { </div> <nav> - <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Database:Tableget">Database: Table get</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#Home">Home</a></li></ul> + <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#groupsUserIsMember">groupsUserIsMember</a></li><li><a href="global.html#Home">Home</a></li><li><a href="global.html#KnexAPI:Gettable">Knex API: Get table</a></li></ul> </nav> <br class="clear"> <footer> - Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 11:49:25 GMT+0100 (Paris, Madrid) + Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 17:44:33 GMT+0100 (Paris, Madrid) </footer> <script> prettyPrint(); </script> diff --git a/doc/src_index.js.html b/doc/src_index.js.html index 33d55ae..cdbc178 100644 --- a/doc/src_index.js.html +++ b/doc/src_index.js.html @@ -28,25 +28,33 @@ <article> <pre class="prettyprint source linenums"><code>import server from './server'; import colors from 'colors'; +import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; +import makeExecutableSchema from 'graphql-tools'; import knex from '../db/knex_router'; +import path from 'path'; /** - * Returns home page of API - * @name Home + * @function Home + * @summary Renvoie l'accueil du backend */ server.get('/', function(req, res) { - console.log('Connectting to '+req.url); - res.send(`<h1>Hello, world</h1> - - Hello, world ! This is server talking to you live on port `+port+' !'); + console.log('Connecting to '+req.url); + res.render('home', {title: 'Home', port: port}); +}); + +server.get('/db?', function(req, res) { + let table_name = req.query.table; + let columns = req.query.columns; + + res.redirect(`db/${table_name}?columns=${columns}`); }); /** - * Get table data - * @name Database: Table get - * @argument id - Table user wants + * @function Knex API: Get table + * @summary Effectue une requête pour une table dans la BDD + * @argument {string} table_name - La table voulue par l'utilisateur. */ -server.get('/db/:id?', function(req, res) { +server.get('/db/:table_name?', function(req, res) { // get columns from query let columns; @@ -57,16 +65,24 @@ server.get('/db/:id?', function(req, res) { } console.log(columns); - knex.select(columns).from(req.params.id).then(function(table) { + knex.select(columns).from(req.params.table_name).then(function(table) { res.setHeader("Content-Type", "application/json"); res.write(JSON.stringify(table,null,2)); res.end(); - }); + },function() { + res.status(400); + res.render('error', { + status: res.statusCode, + error_message: "Bad request: can't find table " + req.params.table_name + }); + res.end(); + } + ); }); /** - * @name Error 404 catcher - * @function + * @function Error 404 catcher + * @summary Catche les requêtes en dehors des URL acceptées */ server.use((req, res, next) => { let err = new Error('Not found'); @@ -75,15 +91,19 @@ server.use((req, res, next) => { }); /** - * @name Error 404 handler - * @function + * @function Error 404 handler + * @summary Gère les erreurs 404 */ + server.use((err, req, res, next) => { res.locals.message = err.message; - res.locals.error = req.server.get('env') === 'development' ? err : {}; res.status(err.status || 500); - res.render('Error'); + let error_message = res.statusCode == 404 ? 'Not found.' : 'Internal server error.'; + res.render('error', { + status: res.statusCode, + error_message: error_message + }); }); // define port server is to listen on @@ -99,13 +119,13 @@ server.listen(port, () => console.log(colors.blue('Express server running on por </div> <nav> - <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Database:Tableget">Database: Table get</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#Home">Home</a></li></ul> + <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#groupsUserIsMember">groupsUserIsMember</a></li><li><a href="global.html#Home">Home</a></li><li><a href="global.html#KnexAPI:Gettable">Knex API: Get table</a></li></ul> </nav> <br class="clear"> <footer> - Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 11:49:25 GMT+0100 (Paris, Madrid) + Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 17:44:33 GMT+0100 (Paris, Madrid) </footer> <script> prettyPrint(); </script> diff --git a/doc/src_ldap_data.js.html b/doc/src_ldap_data.js.html new file mode 100644 index 0000000..cdaa9c9 --- /dev/null +++ b/doc/src_ldap_data.js.html @@ -0,0 +1,173 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>JSDoc: Source: src/ldap_data.js</title> + + <script src="scripts/prettify/prettify.js"> </script> + <script src="scripts/prettify/lang-css.js"> </script> + <!--[if lt IE 9]> + <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> + <![endif]--> + <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> + <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> +</head> + +<body> + +<div id="main"> + + <h1 class="page-title">Source: src/ldap_data.js</h1> + + + + + + + <section> + <article> + <pre class="prettyprint source linenums"><code>var ensureLoggedin = require('connect-ensure-login').ensureLoggedIn; +var ldapescape = require("ldap-escape"); +//var Fuse = require("fuse.js"); + +var ldap = require('ldapjs'); + +var client = ldap.createClient({ url: "ldap://frankiz", timeout: 10000, idleTimeout: 10000}); + +/** + * @summary Fonction qui retrouve les groupes où une personne est membre + * @arg {int} person_id + * @return {string} Liste des groupes où l'id fournie est membre + */ +function groupsUserIsMember(person_id) { + return client.search("ou=groups,dc=frankiz,dc=net", { + attributes: "uid", + filter: ldapescape.filter("(|(memberUid=${id})(restrictedMemberUid=${id}))", {id: person_id}) }, + function(err, res){ + if (err) { + return err; + } else { + console.log(res); + res.on('searchEntry', function(entry) { + console.log('entry: ' + JSON.stringify(entry.object)); + }); + res.on('searchReference', function(referral) { + console.log('referral: ' + referral.uris.join()); + }); + res.on('error', function(err) { + console.error('error: ' + err.message); + }); + res.on('end', function(result) { + console.log('status: ' + result.status); + }); + }}); +} +/** console.log(client.search("ou=groups,dc=frankiz,dc=net", function(err, res) { return err; } )); + return client.search("ou=groups,dc=frankiz,dc=net", { + scope: "one", + filter: ldapescape.filter("(|(memberUid=${id})(restrictedMemberUid={$id}))",{id: person_id}), + attributes: "uid", + }, + function(err, res) { return err; + if (err) { + reject("LDAP "); + } + assert.ifError(err); + + res.on('searchEntry', function(entry) { + console.log('entry: ' + JSON.stringify(entry.object)); + }); + res.on('searchReference', function(referral) { + console.log('referral: ' + referral.uris.join()); + }); + res.on('error', function(err) { + console.error('error: ' + err.message); + }); + res.on('end', function(result) { + console.log('status: ' + result.status);}); + }); +}*/ + + +function checkGroupAdmin(uid, from){ + return new Promise(function(resolve, reject) { + client.search("dc=frankiz,dc=net", {scope: "sub", attributes: ["cn", "uid", "mail", "memberUid", "objectClass"], filter: ldapescape.filter("(uid=${uid})", {uid: from})}, function(err, resldap){ + if (err) { + reject("LDAP search error"); + } else { + resldap.on('searchEntry', function(entry) { + if (entry.object.objectClass.indexOf("inetOrgPerson") > -1) { + if (entry.object.uid == uid) { + console.log("Feu1"); + resolve(entry.object.cn + " <" + entry.object.mail + ">"); + } else { + reject("Cannot send as user which is not you"); + } + } else { + if (entry.object.memberUid.indexOf(uid) > -1) { + console.log("Feu2"); + resolve(entry.object.cn + " <" + from + "@eleves.polytechnique.fr>") + } else { + reject("You are not admin of this group"); + } + } + }); + } + }); + }); +} + +function checkGroup(person_id){ + return new Promise(function(resolve, reject) { + client.search("dc=frankiz,dc=net", {scope: "sub", attributes: "uid", filter: ldapescape.filter("(|(memberUid=${id})(restrictedMemberUid=${id}))", {id: person_id})}, function(err, resldap){ + if (err) { + reject("LDAP search error"); + } else { + resldap.on('searchEntry', function(entry) { + if (entry.object.objectClass.indexOf("inetOrgPerson") > -1) { + if (entry.object.uid == person_id) { + resolve("Binet Member"); + } else { + reject("Fraud !"); + } + } else { + if (entry.object.memberUid.indexOf(person_id) > -1) { + resolve("Binet member 2"); + } else { + reject("Fraud"); + } + } + }); + } + }); + }); +} + + +console.log(checkGroupAdmin("quentin.chevalier","faerix")); + +console.log(checkGroup("quentin.chevalier","faerix")); + +console.log(groupsUserIsMember("anatole.romon"));</code></pre> + </article> + </section> + + + + +</div> + +<nav> + <h2><a href="index.html">Home</a></h2><h3>Global</h3><ul><li><a href="global.html#checkGroupAdmin">checkGroupAdmin</a></li><li><a href="global.html#Error404catcher">Error 404 catcher</a></li><li><a href="global.html#Error404handler">Error 404 handler</a></li><li><a href="global.html#groupsUserIsMember">groupsUserIsMember</a></li><li><a href="global.html#Home">Home</a></li><li><a href="global.html#KnexAPI:Gettable">Knex API: Get table</a></li></ul> +</nav> + +<br class="clear"> + +<footer> + Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Tue Feb 27 2018 17:44:33 GMT+0100 (Paris, Madrid) +</footer> + +<script> prettyPrint(); </script> +<script src="scripts/linenumber.js"> </script> +</body> +</html> diff --git a/package-lock.json b/package-lock.json index 1dba8f4..218fd22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -392,6 +392,11 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -1132,6 +1137,11 @@ "xdg-basedir": "3.0.0" } }, + "connect-ensure-login": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/connect-ensure-login/-/connect-ensure-login-0.1.1.tgz", + "integrity": "sha1-F03MUSQ7nqwj+NmCFa62aU4uihI=" + }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -2267,6 +2277,14 @@ "write": "0.2.1" } }, + "fmtr": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fmtr/-/fmtr-1.1.0.tgz", + "integrity": "sha1-R1RcTNo3rWkbDSDiaHbQdexz/mg=", + "requires": { + "lodash": "4.17.5" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4054,6 +4072,15 @@ "invert-kv": "1.0.0" } }, + "ldap-escape": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ldap-escape/-/ldap-escape-1.1.5.tgz", + "integrity": "sha512-ss9KD4Eg3CyEZWQoC+10XBx7kL33QGekxYbXK1kn6SPNDu1Hf8Jb5q2FORHFr4vB8pHVeblo/VsnsG+UFoDCJA==", + "requires": { + "fmtr": "1.1.0", + "lodash": "4.17.5" + } + }, "ldap-filter": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/ldap-filter/-/ldap-filter-0.2.2.tgz", @@ -4069,6 +4096,25 @@ } } }, + "ldapauth-fork": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ldapauth-fork/-/ldapauth-fork-4.0.2.tgz", + "integrity": "sha512-YoPHsyfV6L/4SO5EMi/Jk1xUMaY+ANlR4Yp+WIsqGkWOLPKkuzRYB4s/IsdKBeb3sdwVCw+q/YN9eoa1dXmQdA==", + "requires": { + "@types/ldapjs": "1.0.3", + "@types/node": "7.0.55", + "bcryptjs": "2.4.3", + "ldapjs": "1.0.2", + "lru-cache": "4.1.1" + }, + "dependencies": { + "@types/node": { + "version": "7.0.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-7.0.55.tgz", + "integrity": "sha512-diCxfWNT4g2UM9Y+BPgy4s3egcZ2qOXc0mXLauvbsBUq9SBKQfh0SmuEUEhJVFZt/p6UDsjg1s2EgfM6OSlp4g==" + } + } + }, "ldapjs": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ldapjs/-/ldapjs-1.0.2.tgz", @@ -5761,12 +5807,6 @@ "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", "optional": true }, - "safe-json-stringify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.1.0.tgz", - "integrity": "sha512-EzBtUaFH9bHYPc69wqjp0efJI/DPNHdFbGE3uIMn4sVbO0zx8vZ8cG4WKxQfOpUOKsQyGBiT2mTqnCw+6nLswA==", - "optional": true - }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", diff --git a/package.json b/package.json index c4ed035..e3a2e26 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "@types/webpack": "^3.8.8", "body-parser": "^1.18.2", "colors": "^1.1.2", + "connect-ensure-login": "^0.1.1", "express": "^4.16.2", "express-session": "^1.15.6", "fs": "0.0.1-security", @@ -16,6 +17,7 @@ "graphql-server-express": "^1.3.2", "graphql-tools": "^2.21.0", "knex": "^0.14.4", + "ldap-escape": "^1.1.5", "ldapjs": "^1.0.2", "morgan": "^1.9.0", "passport": "^0.4.0", -- GitLab