Skip to content
Snippets Groups Projects
Commit aa37fa10 authored by Quentin CHEVALIER's avatar Quentin CHEVALIER
Browse files

Anonymisation et config

parent ec95538c
No related branches found
No related tags found
No related merge requests found
......@@ -4,5 +4,13 @@
"searchBase": "ou=eleves,dc=frankiz,dc=net",
"searchFilter": "(uid={{username}})"
},
"ldap_data_gl": {
"searchBase": "ou=groups,dc=frankiz,dc=net",
"searchFilter":"(restrictedMemberUid=${id})"
},
"ldap_data_ml": {
"searchBase": "ou=groups,dc=frankiz,dc=net",
"searchFilter": "(uid=${id})"
},
"sessionSecret":"change this"
}
\ No newline at end of file
......@@ -2,12 +2,15 @@
* @file Ce fichier gère les requêtes LDAP de type données ; liste des groupe d'un individu, liste des membres d'un groupe... A ne pas confondre avec ldap_auth qui lui gère l'authentification.
* @author hawkspar
*/
import {ldapescape} from 'ldap-escape';
import ldap from 'ldapjs';
import fs from 'fs';
var ensureLoggedin = require('connect-ensure-login').ensureLoggedIn;
var ldapescape = require("ldap-escape");
var ldap = require('ldapjs');
var client = ldap.createClient({ url: "ldap://frankiz.eleves.polytechnique.fr", timeout: 10000, idleTimeout: 10000});
let config = JSON.parse(fs.readFileSync('config.json', 'utf8'));
var client = ldap.createClient({ url: config.ldap.server, timeout: 10000, idleTimeout: 10000});
/**
* @summary Fonction qui retrouve les groupes du LDAP dont un individu est membre (pas de bind nécessaire)
......@@ -18,7 +21,7 @@ function listGroups(uid) {
return new Promise(function(resolve, reject) {
var groupsList=[];
client.search("ou=groups,dc=frankiz,dc=net", {scope: "sub", attributes: "uid", filter: ldapescape.filter("(restrictedMemberUid=${id})", {id: uid})}, function(err, res) {
client.search(config.ldap_data_gl.searchBase, {scope: "sub", attributes: "uid", filter: ldapescape.filter(config.ldap_data_gl.searchFilter, {id: uid})}, function(err, res) {
if (err) {
reject(err);
} else {
......@@ -30,27 +33,25 @@ function listGroups(uid) {
}
/**
* TBM
* @summary Fonction qui retrouve la liste des membres d'un binet sur le LDAP
* @arg {int} uid - Identifiant du groupe à interrogeant (pour des raisons d'identification)
* @arg {int} gid - Identifiant du groupe à interroger
* @return {string} Liste des uid de groupes où l'id fournie est membre (noms flat des groupes)
*/
function listMembers(uid) {
client.bind("uid=${uid},ou=eleves,dc=frankiz,dc=net", (err) => { console.log(err); });
function listMembers(gid) {
return new Promise(function(resolve, reject) {
var groupsList=[];
var membersList=[];
client.search("ou=groups,dc=frankiz,dc=net", {scope: "sub", attributes: "uid", filter: ldapescape.filter("(restrictedMemberUid=${id})", {id: uid})}, function(err, res) {
client.search(config.ldap_data_ml.searchBase, {scope: "sub", attributes: "uid", filter: ldapescape.filter(config.ldap_data_ml.searchFilter, {id: gid})}, function(err, res) {
if (err) {
reject(err);
} else {
res.on('searchEntry', function(entry) { groupsList.push(entry.object.uid); });
res.on('end', function(res) { resolve(groupsList); });
res.on('searchEntry', function(entry) { membersList.push(entry.object.restrictedMemberUid); });
res.on('end', function(res) { resolve(membersList); });
}
});
});
}
// Synthaxe d'utilisation
listGroups("quentin.chevalier","Ie42fds'eaJm1").then((grList) => { console.log(grList); });
\ No newline at end of file
listGroups("quentin.chevalier").then((grList) => { console.log(grList); });
listMembers("faerix").then((meList) => { console.log(meList); });
\ No newline at end of file
/**
* @file Cree le serveur express avec tous les middleware qui vont bien
*/
import express from 'express';
import bodyParser from 'body-parser';
import favicon from 'serve-favicon';
......@@ -7,10 +10,6 @@ import ldap_auth from './ldap_auth/ldap_auth';
import schema from './graphql/schema';
import { graphqlExpress, graphiqlExpress } from 'graphql-server-express';
/**
* @file Cree le serveur express avec tous les middleware qui vont bien
*/
const server = express();
// on sait pas a quoi ca sert mais il parait que c'est utile
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment