From ea1512fda52eff046ee9ba7b4baa33bfb27d1256 Mon Sep 17 00:00:00 2001 From: Quentin CHEVALIER <quentin.chevalier@polytechnique.edu> Date: Thu, 5 Jul 2018 20:16:14 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9but=20rasification=20resolver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/graphql/connectors/authentifiers.js | 10 +++++----- src/graphql/connectors/connectors.js | 15 +++++++-------- src/ldap/admins.js | 4 ++-- src/ldap/basics.js | 4 ++-- src/ldap/users.js | 3 ++- src/ldap/utilities.js | 1 + 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/graphql/connectors/authentifiers.js b/src/graphql/connectors/authentifiers.js index 79f950f..06beb12 100644 --- a/src/graphql/connectors/authentifiers.js +++ b/src/graphql/connectors/authentifiers.js @@ -7,8 +7,8 @@ import knex from '../../../db/knex_router'; import * as connectors from './connectors.js'; import * as selectors from './selectors'; import * as list_selectors from './list_selectors'; -import { UtilisateurAnonyme, UtilisateurConnecte, - AdministrateurConnecte, SuperAdministrateurConnecte } from '../../ldap/ldap_data'; +import {Open, User as LDAPOpen, LDAPUser} from '../../ldap/users.js'; +import {Admin, SuperAdmin as LDAPAdmin, LDAPSuperAdmin} from '../../ldap/admins.js'; function User(user, ldap_access){ @@ -25,7 +25,7 @@ function User(user, ldap_access){ * @rights user */ export function anonymous(user){ - return new User(user, new UtilisateurAnonyme()); + return new User(user, new LDAPOpen()); } /** @@ -35,7 +35,7 @@ export function anonymous(user){ * @rights user */ export function loggedIn(user, groupUID){ - return new User(user, new UtilisateurConnecte(user)); + return new User(user, new LDAPUser(user)); } /** @@ -58,7 +58,7 @@ export async function member(user, groupUID){ let group_list = await selectors.groupsWithMember(user); let test = await knex.with('group_list', group_list).select().from('group_list').where('uid', groupUID); if(test[0]) - return new User(user, new UtilisateurConnecte(user)); + return new User(user, new LDAPUser(user)); return await admin(user, groupUID); } diff --git a/src/graphql/connectors/connectors.js b/src/graphql/connectors/connectors.js index d2257ce..0601f96 100644 --- a/src/graphql/connectors/connectors.js +++ b/src/graphql/connectors/connectors.js @@ -5,14 +5,15 @@ import knex from '../../../db/knex_router'; import * as selectors from './selectors'; import * as list_selectors from './list_selectors'; -import ldap from '../../ldap/ldap_data'; +import {Open, User as LDAPOpen, LDAPUser} from '../../ldap/users.js'; +import {Admin, SuperAdmin as LDAPAdmin, LDAPSuperAdmin} from '../../ldap/admins.js'; // dn et mot de passe du bind user du LDAP import ldap_bind_user from '../../../ldap_connexion_config.json'; -const utilisateur = new ldap.UtilisateurAnonyme(); +const utilisateur = new LDAPOpen(); -let result = utilisateur.listMembers("br").then(res => { +let result = utilisateur.getMembers("br").then(res => { console.log("Got it"); return res; }); @@ -61,8 +62,6 @@ export { utilisateur }; */ - - /** * @summary Génère une promise. * @function @@ -246,7 +245,7 @@ export async function createSubgroup(user, args){ * @rights user */ export async function createGroupIfLegal(user, args){ - if( await ldap.etreAdministrateurGroupe(utilisateur, args.parentuid) ){ + if( await LDAPOpen.isGroupAdmin(utilisateur, args.parentuid) ){ return createSubgroup(user, args); }else{ throw "illegal request : you must have admin rights over a group to create a subgroup of that group"; @@ -535,7 +534,7 @@ export async function getGroupMemberUsers(user, GroupUID){ let type = await list_selectors.getGroupType(user, GroupUID); switch( type ){ case "SimpleGroup": - return utilisateur.listMembers(GroupUID); + return utilisateur.getMembers(GroupUID); // return ["anatole.romon"]; case "MetaGroup": return getMetaGroupMemberUsers(user, GroupUID); @@ -593,7 +592,7 @@ export async function getGroupsFromCallbacks(user, cbList){ * Sans utilité pour le moment, ne faites pas attention */ -// Commentaire: On n'écrit pas du code qui ne compile pas. +// Commentaire: On n'écrit pas du code qui ne compile pas. hawkspar: LOL /* function smartUserObject(user, uid){ diff --git a/src/ldap/admins.js b/src/ldap/admins.js index 1c4fe93..e0b9b80 100644 --- a/src/ldap/admins.js +++ b/src/ldap/admins.js @@ -1,5 +1,6 @@ /** - * @file Ce fichier regroupe les différentes classes avec différents admins. Ces classes sont dédiées à être exportées directement pour être utilisées par le solver. + * @file Ce fichier regroupe les différentes classes avec différents admins. Ces classes sont dédiées à être exportées directement pour être utilisées par le solver. + * Le découpage par fichier est arbitraire mais permet de regrouper certaines classes proches. * @author hawkspar */ @@ -20,7 +21,6 @@ class Admin extends User { * ou éditer, voir supprimer le groupe. * @summary Ce constructeur appelle simplement le constructeur de sa classe mère. * @arg {Object} user - Utilisateur de la forme nécessaire à {@link LDAP.bind}. - * @author hawkspar */ constructor(user) { super(user); } diff --git a/src/ldap/basics.js b/src/ldap/basics.js index ae880b0..4780a20 100644 --- a/src/ldap/basics.js +++ b/src/ldap/basics.js @@ -3,6 +3,7 @@ * C'est ici que tout le filtrage est opéré, au plus bas niveau. * Toutes les fonctions écrites ici sont asynchrones et renvoient des Promises ce qui nécessite de les appeler avec la synthaxe * un peu particulière `f(args).then(res => ...)` pour exploiter leur résultat. + * Le découpage par fichier est arbitraire mais permet de regrouper certaines classes proches. * @author hawkspar */ @@ -31,7 +32,6 @@ class LDAP { /** * @class Cette classe est la brique de base du fichier tout entier puisqu'elle contient les functions qui agisse directement sur le LDAP. * @summary Constructeur vide. - * @author hawkspar */ constructor() {} @@ -44,7 +44,7 @@ class LDAP { * @arg {string} user[password] - Mot de passe * @static */ - static bind(user) { client.bind(ldapEscape.dn("${txt}", { txt: user["dn"]}), ldapEscape.filter("${txt}", { txt: user["password"]}), (err, res) => {}); } // TBM utiliser user + static bind(user) { client.bind(ldapEscape.dn("${txt}", { txt: user["dn"]}), ldapEscape.filter("${txt}", { txt: user["password"]}), (err, res) => {}); } /** * @summary Fonction qui sert à se déconnecter du LDAP. Ne renvoie rien. diff --git a/src/ldap/users.js b/src/ldap/users.js index 6e0e1b4..f36729b 100644 --- a/src/ldap/users.js +++ b/src/ldap/users.js @@ -1,5 +1,6 @@ /** - * @file Ce fichier regroupe les différentes classes avec différents utilisateurs. Ces classes sont dédiées à être exportées directement pour être utilisées par le solver. + * @file Ce fichier regroupe les différentes classes avec différents utilisateurs. Ces classes sont dédiées à être exportées directement pour être utilisées par le solver. + * Le découpage par fichier est arbitraire mais permet de regrouper certaines classes proches. * @author hawkspar */ diff --git a/src/ldap/utilities.js b/src/ldap/utilities.js index f2f8a79..71f38a1 100644 --- a/src/ldap/utilities.js +++ b/src/ldap/utilities.js @@ -1,5 +1,6 @@ /** * @file Ce fichier regroupe les fonctions simples de recherche et de test utiles, mais trop puissantes pour être exportées directement. + * Le découpage par fichier est arbitraire mais permet de regrouper certaines classes proches. * @author hawkspar */ -- GitLab