diff --git a/src/graphql/connectors/authentifiers.js b/src/graphql/connectors/authentifiers.js index 79f950f17e3e13f09936f8bd4540138f718773dd..06beb125a22cfca9451f2168fc9cd2a9dae74c72 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 d2257cefcf377fbe76ef64991f3300841badeea0..0601f961a720733793af5bf170dfc2c611c8946a 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 1c4fe934530a996f9d206676379ae12d10cce150..e0b9b80fd82e85afd765f6188eebd3188afa8f2c 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 ae880b08d2ecfc5079459bca9ee0c30d320cf271..4780a20af90cb382503e21add8f68aeaf2740fb9 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 6e0e1b4409de80c177530c3ea30ee35edb1bedf1..f36729b1be62a323bfcd935515e5b48a65c865e8 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 f2f8a791b66de161e7e1c4fd8d7feb8ec9d4c51b..71f38a1229b53dc6c8e8370f70527570229b2af0 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 */