diff --git a/src/ldap/export/group.ts b/src/ldap/export/group.ts
index 24f61f32824bd228384f4ba1f7d2d2d66a14e8be..442c29a6e8bdc43e8696f0f0dbe8b818193a5659 100644
--- a/src/ldap/export/group.ts
+++ b/src/ldap/export/group.ts
@@ -23,7 +23,7 @@ export class Group {
     /**
      * @memberof LDAP
      * @summary Fonction qui renvoit toutes les infos relatives à un groupe particulier.
-     * @desc Cette fonction utilise {@link Tools.peek} avec l'interface {@link groupData}.
+     * @desc Cette fonction utilise {@link Tools.peek} avec l'interface {@link groupData}. Elle rajoute les individus
      * @arg {string} gid - Identifiant du groupe
      * @return {Promise(groupData)} Informations recueillies ; renvoie une liste de dictionnaire avec le profil complet du groupe au format {@link groupData}.
      * @static
@@ -59,19 +59,14 @@ export class Group {
     /**
      * @memberof LDAP
      * @summary Fonction qui permet de rajouter un administrateur à un groupe.
-     * @desc Cette fonction fait essentiellement appel à {@link Tools.add}. Le nouvel administrateur devient aussi membre et porte-parole du groupe,
-     * mais hérite aussi de son statut d'administrateur sur tous les groupes qui héritent du sien.
+     * @desc Cette fonction fait essentiellement appel à {@link Tools.add}. Le nouvel administrateur ne devient pas membre ou porte-parole du groupe pour autant !
      * @arg {string} uid - Identifiant du membre futur admin
      * @arg {string} gid - Identifiant du groupe
      * @return {boolean} `true` si la modification s'est bien déroulée, false sinon
      * @async
      * @static
      */
-    static async addAdmin(uid: string, gid: string): Promise<boolean> {
-        return  await Tools.add(uid, gid, "members") &&
-                await Tools.add(uid, gid, "speakers") &&
-                await Tools.add(uid, gid, "admins");
-    }
+    static async addAdmin(uid: string, gid: string): Promise<boolean> { return await Tools.add(uid, gid, "admins"); }
 
     /**
      * @memberof LDAP
@@ -84,24 +79,19 @@ export class Group {
      * @async
      * @static
      */
-    static async remAdmin(uid: string, gid: string): Promise<boolean> {
-        return Tools.remove(uid, gid, "admins");
-    }
+    static async remAdmin(uid: string, gid: string): Promise<boolean> { return Tools.remove(uid, gid, "admins"); }
 
     /**
      * @memberof LDAP
      * @summary Fonction qui permet de rajouter un porte-parole à un groupe.
-     * @desc Cette fonction fait essentiellement appel à {@link Tools.add}. Elle rajoute également l'utilisateur au groupe.
+     * @desc Cette fonction fait essentiellement appel à {@link Tools.add}. Elle ne rajoute pas l'utilisateur au groupe.
      * @arg {string} uid - Identifiant du membre futur porte-parole
      * @arg {string} gid - Identifiant du groupe
      * @return {boolean} `true` si la modification s'est bien déroulée, false sinon
      * @async
      * @static
      */
-    static async addSpeaker(uid: string, gid: string): Promise<boolean> {
-        return  await Tools.add(uid, gid, "members") &&
-                await Tools.add(uid, gid, "speakers");
-    }
+    static async addSpeaker(uid: string, gid: string): Promise<boolean> { return await Tools.add(uid, gid, "speakers"); }
 
     /**
      * @memberof LDAP
@@ -113,10 +103,7 @@ export class Group {
      * @async
      * @static
      */
-    static async remSpeaker(uid: string, gid: string): Promise<boolean> {
-        return  await Tools.remove(uid, gid, "admins") &&
-                await Tools.remove(uid, gid, "speakers");
-    }
+    static async remSpeaker(uid: string, gid: string): Promise<boolean> { return await Tools.remove(uid, gid, "speakers"); }
 
     /**
      * @memberof LDAP
@@ -128,15 +115,13 @@ export class Group {
      * @async
      * @static
      */
-    static async addMember(uid: string, gid: string) : Promise<boolean> {
-        return Tools.add(uid, gid, "members");
-    }
+    static async addMember(uid: string, gid: string) : Promise<boolean> { return Tools.add(uid, gid, "members"); }
 
     /**
      * @memberof LDAP
      * @summary Fonction qui permet de supprimer un membre existant d'un groupe.
      * @desc Cette fonction fait essentiellement appel à {@link Tools.add}.
-     * Cette fonction supprime tous les droits de l'utilisateur sur le groupe, mais aussi sur les groupes sources si sont statut de membre était hérité.
+     * Cette fonction supprime tous les droits de l'utilisateur sur le groupe, mais aussi sur les groupes sources si son statut de membre était hérité.
      * @arg {string} uid - Identifiant de l'ex-membre (pas supposé valide)
      * @arg {string} gid - Identifiant du groupe
      * @return {Promise(boolean)} `true` si la modification s'est bien déroulée, false sinon
@@ -144,6 +129,9 @@ export class Group {
      * @static
      */
     static async remMember(uid: string, gid: string): Promise<boolean> {
+        return await Tools.remove(uid, gid, "members");
+
+        // Ce qui suit est une suppression récursive du membre dans tous les groupes fils
         let stack = [];
         let res = true;
         let visited = {};
diff --git a/src/ldap/internal/config.ts b/src/ldap/internal/config.ts
index 16c1870b9a344a437e6355d2acf724f22a3646d6..ea5cac1f49d5a7c418168bbf59fd492f647c26dd 100644
--- a/src/ldap/internal/config.ts
+++ b/src/ldap/internal/config.ts
@@ -1,9 +1,6 @@
 /**
  * Namespace qui regroupe toutes les fonctions en rapport avec le LDAP - API et fonctions internes
  * @namespace LDAP
- */
-
-/**
  * @file Importe la configuration du LDAP au sein de l'application, et remplace certaines valeurs en fonction des variables d'environnement.
  * @memberof LDAP
  * @author manifold, hawkspar
diff --git a/src/ldap/internal/tools.ts b/src/ldap/internal/tools.ts
index acb065f42d5795fa8a46437dd7edf407b22b03f2..a2b0f40a1853178fc1d4f52b9e229f66ccb84acb 100644
--- a/src/ldap/internal/tools.ts
+++ b/src/ldap/internal/tools.ts
@@ -108,7 +108,7 @@ export class Tools {
         let dirtyData = {};
         Object.keys(data).forEach(function(key: string) {
             // Some values edit can't change
-            if (!['readPerm','writePerm','groups','groupsIsAdmin','members','admins'].includes(key)) {
+            if (!['readPerm','writePerm','groups','groupsIsAdmin','followers','members','speakers','admins'].includes(key)) {
                 dirtyData[dirtyKeys.key]=data[key];
             }
         });
@@ -335,9 +335,12 @@ export class Tools {
      * @static
      * @async
      */
-    static async get(id : string, domain : "user"|"group", category : string): Promise<string[]> { //"admins"|"speakers"|"members"|"followers") {
+    static async get(id : string, domain : "user"|"group", category : string): Promise<string[]> {
         try {
-            if (!(category in ["admins","members"]) || domain=="group") {
+            return await Basics.searchSingle(domain, ldapConfig[domain][category], id);
+            
+            // Ce qui suit est une récursion qui sera déplacée dans la gestion des autorisations 
+            if (!(category in ["admins","members"]) || domain=="user") {
                 return await Basics.searchSingle(domain, ldapConfig[domain][category], id);
             }
             else {
@@ -359,53 +362,7 @@ export class Tools {
             }
         }
         catch(err) {
-            throw "Erreur lors de la recherche des groupes d'un individu.";
-        }
-    }
-
-    /**
-     * @memberof LDAP
-     * @summary Cette fonction teste si un utilisateur est membre d'un groupe.
-     * @desc Utilise les méthodes statiques {@link open.getGroups} et {@link open.getMembers}
-     * @param {string} uid - Identifiant de l'utilisateur à tester 
-     * @param {string} gid  - Identification du groupe à tester
-     * @returns {Promise(boolean)} True si l'utilisateur est membre
-     * @static
-     * @async
-     */
-    static async isGroupMember(uid: string, gid: string) : Promise<boolean> {
-        try {
-            let lg = await Tools.get(uid, "user", "members");
-            let lm = await Tools.get(gid, "group", "members");
-            if (lg.includes(gid) && lm.includes(uid)) {
-                return true;
-            }
-            else { return false; }
-        }
-        catch(err) {
-            throw "Erreur lors du test d'appartenance à un groupe.";
-        }
-    }
-
-    /**
-     * @memberof LDAP
-     * @summary Cette fonction teste si un utilisateur est admin d'un groupe.
-     * @desc Utilise la méthode statique {@link Open.getAdmins}
-     * @param {string} uid - Identifiant de l'utilisateur à tester 
-     * @param {string} gid  - Identification du groupe à tester
-     * @returns {Promise(boolean)} True si l'utilisateur est administrateur
-     * @static
-     * @async
-     */
-    static async isGroupAdmin(uid: string, gid: string) : Promise<boolean> {
-        try {
-            let lm = await Tools.get(uid, "user", "admins");
-            let la = await Tools.get(gid, "group", "admins");
-            if (la.includes(uid) && lm.includes(uid)) { return true; }
-            else { return false; }
-        }
-        catch(err) {
-            throw "Erreur lors du test d'appartenance au bureau d'administration un groupe.";
+            throw "Erreur lors d'une recherche générique d'un membre d'une certaine catégorie d'un groupe.";
         }
     }
 }
\ No newline at end of file