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