diff --git a/ldap_config.json b/ldap_config.json index eda6f934b4d0d7df2e588f323c13775b3a1e019d..982ac05f72f16e29c55ccd32359f2c26868f151f 100644 --- a/ldap_config.json +++ b/ldap_config.json @@ -28,10 +28,6 @@ "mail": "email", "birthdate": "birthdate", "nationality": "nationality", - "admins": "adminOf", - "speakers": "speakerOf", - "members": "memberOf", - "followers": "followerOf", "login": "loginShell", "directory": "homeDirectory", "classes": "objectClass", diff --git a/src/ldap/export/group.ts b/src/ldap/export/group.ts index af2a05d593b15abd02499d1dec7f08918e843944..4796b52eb2af89228f22b05f7fd5d3edf0b6f88e 100644 --- a/src/ldap/export/group.ts +++ b/src/ldap/export/group.ts @@ -263,7 +263,7 @@ export class Group { try { // Gestion des catégories en bloc d'abord let profil = await Group.peek(gid); - for (let cat of ["admins", "speakers", "members", "followers"]) { + for (let cat of categories) { profil[ldapConfig.group[cat]].forEach(async function quickPartRemUser(uid: string) { // Modification des profils de tous les utilisateurs let lg = await Tools.get(uid, "user", cat); diff --git a/src/ldap/export/user.ts b/src/ldap/export/user.ts index 3acebc168ab826081dc1f9dbafcb34918324e45e..1213ed0f5338b23a1e27cf19cf520c1c2650ad5f 100644 --- a/src/ldap/export/user.ts +++ b/src/ldap/export/user.ts @@ -31,7 +31,9 @@ export class User { */ static async peek(uid: string) : Promise<userData> { try { - return Tools.peek<userData>("user", uid, userData); + let data : userData = await Tools.peek<userData>("user", uid, userData); + for (let cat in categories) { data[cat] = await Basics.searchSingle("group", ldapConfig.group[cat], "*", ldapConfig.group[cat]+"="+uid); } + return data; } catch(err) { throw "Error while peeking a user."; diff --git a/src/ldap/internal/config.ts b/src/ldap/internal/config.ts index 548394b23355958d3ecdc0b946167bda11db9158..af44ae608a7bd505cb577408515133ca17b589f1 100644 --- a/src/ldap/internal/config.ts +++ b/src/ldap/internal/config.ts @@ -49,8 +49,8 @@ export const categories = ["admins","speakers","members","followers"]; * @var {string[]?} mail - Adresse(s) courriel * @var {string?} birthdate - Date d'anniversaire * @var {string?} nationality - Nationalité d'origine - * @var {string[]?} admins - Liste des gid (group id, inclus section sportive, binet, PA...) dont l'utilisateur est admin ; pas forcément sous-liste de groups - * @var {string[]?} speakers - Liste des gid dont l'utilisateur est porte-parole ; pas forcément sous-liste de groups + * @var {string[]?} admins - Liste des gid (group id, inclus section sportive, binet, PA...) dont l'utilisateur est admin ; pas forcément sous-liste de members + * @var {string[]?} speakers - Liste des gid dont l'utilisateur est porte-parole ; pas forcément sous-liste de members * @var {string[]?} members - Liste des gid dont l'utilisateur est membre * @var {string[]?} followers - Liste des gid dont l'utilisateur est sympathisant * @memberof LDAP @@ -83,8 +83,8 @@ export class userData { * @var {string} description - Description du groupe (script Markdown) * @var {string} site - Site web du groupe (URL) * @var {string} category - Statut du groupe ; binet, section sportive... (actuellement juste 'binet' ou 'free') - * @var {string[]} childs - Liste des groupes enfants de première génération de celui-ci (les admins du groupe seront admins de ce groupe et des enfants suivants) - * @var {string[]} parents - Liste des groupes directement parents de celui-ci (les membres du groupe seront membres de ce groupe et des parents suivants) ; symétrique du précédent + * @var {string[]} childs - Liste des groupes enfants de première génération de celui-ci + * @var {string[]} parents - Liste des groupes directement parents de celui-ci ; symétrique du précédent * @var {string[]} admins - Liste des admins du groupe * @var {string[]} speakers - Liste des porte-parole du groupe * @var {string[]} members - Liste des membres du groupe @@ -105,4 +105,4 @@ export class groupData { speakers: string[]; members: string[]; followers: string[]; -} +} \ No newline at end of file