* @summary Fonction qui permet de modifier un élément sur le LDAP.
* @desc Cette fonction utilise une Promise pour être asynchrone ; elle renvoit la promesse d'une réponse puis traite la demande avec ldapjs (voir [`Client API`](http://ldapjs.org/client.html) méthode search). Il faut l'appeler suivant un schéma `modifierLDAP(...).then((res) => { truc avec res });`. Cette fonction fait une demande au LDAP qu'elle filtre selon un schéma prédéfini dans `dic` et à chaque résultat (event SearchEntry) le met dans une liste, et renvoit la liste à l'issue (event end).
* @arg {Object} user - Utilisateur de la forme nécessaire au bind
* @arg {string} user[key] - uid et password
* @arg {Object} mod - Dictionnaire contenant les attributs à modifier et les modifications
* @return {boolean} `true` si la modification s'est bien déroulée, false sinon
*/
functionmodifierLDAP(user,name,op,mod){
// Debug TBM
//console.log(base);
//console.log(operation);
//console.log(modification);
returnnewPromise(function(resolve,reject){
// A TBM utiliser user connecte (permet de pas avoir trop de demandes trop rapides et problème de permission)
// Modification LDAP selon configuration en argument (pourrait prendre une liste de Changes)
client.modify(name,newldap.Change({
operation:op,
modification:mod,
}),function(err){
reject(err);
});
resolve(true);
});
}
/**
* @summary Fonction qui permet de rajouter un élément sur le LDAP.
* @desc Cette fonction utilise une Promise pour être asynchrone ; elle renvoit la promesse d'une réponse puis traite la demande avec ldapjs (voir [`Client API`](http://ldapjs.org/client.html) méthode search). Il faut l'appeler suivant un schéma `modifierLDAP(...).then((res) => { truc avec res });`. Cette fonction fait une demande au LDAP qu'elle filtre selon un schéma prédéfini dans `dic` et à chaque résultat (event SearchEntry) le met dans une liste, et renvoit la liste à l'issue (event end).
* @arg {Object} user - Utilisateur de la forme nécessaire au bind
* @arg {string} user[key] - uid et password
* @arg {string} dn - Adresse du parent
* @arg {Object} vals - Dictionnaire contenant les valeurs à
* @return {boolean} `true` si la modification s'est bien déroulée, false sinon
*/
functionaddLDAP(user,name,op,mod){
// Debug TBM
//console.log(base);
//console.log(operation);
//console.log(modification);
returnnewPromise(function(resolve,reject){
// A TBM utiliser user connecte (permet de pas avoir trop de demandes trop rapides et problème de permission)
* @summary Fonction qui interroge le LDAP et retrouve les groupes dont un individu est membre.
* @desc Cette fonction utilise rechercheLDAP avec un dictionnaire prédéfini dans config.json. Il faut l'appeler selon un schéma `listGroups(...).then((res) => { truc avec res })`;
* @summary Fonction qui permet de créer un groupe sur le LDAP.
* @desc Cette fonction utilise une Promise pour être asynchrone ; elle renvoit la promesse d'une réponse puis traite la demande avec ldapjs (voir [`Client API`](http://ldapjs.org/client.html) méthode search). Il faut l'appeler suivant un schéma `modifierLDAP(...).then((res) => { truc avec res });`. Cette fonction fait une demande au LDAP qu'elle filtre selon un schéma prédéfini dans `dic` et à chaque résultat (event SearchEntry) le met dans une liste, et renvoit la liste à l'issue (event end).
* @arg {Object} user - Utilisateur de la forme nécessaire au bind
* @arg {string} user[key] - uid et password
* @arg {Object} mod - Dictionnaire contenant les attributs à modifier et les modifications
* @return {boolean} `true` si la modification s'est bien déroulée, false sinon
*/
functionmodifierLDAP(user,name,op,mod){
// Debug TBM
//console.log(base);
//console.log(operation);
//console.log(modification);
returnnewPromise(function(resolve,reject){
// A TBM utiliser user connecte (permet de pas avoir trop de demandes trop rapides et problème de permission)
// Modification LDAP selon configuration en argument
client.modify(name,newldap.Change({
operation:op,
modification:mod,
}),function(err){
reject(err);
});
resolve(true);
});
}
/**
* @summary Fonction qui va plonger dans le LDAP et modifier un certain jeu de valeur en argument.
* @desc Cette fonction utilise une Promise pour être asynchrone ; elle renvoit la promesse d'une réponse puis traite la demande avec ldapjs (voir [`Client API`](http://ldapjs.org/client.html) méthode search). Il faut l'appeler suivant un schéma `modifierLDAP(...).then((res) => { truc avec res });`. Cette fonction fait une demande au LDAP qu'elle filtre selon un schéma prédéfini dans `dic` et à chaque résultat (event SearchEntry) le met dans une liste, et renvoit la liste à l'issue (event end).
* @arg {Object} user - Utilisateur de la forme nécessaire au bind
* @arg {string} user[key] - uid et password
* @arg {Object} param - Dictionnaire contenant les attributs à modifier et les modifications
* @arg {string} param[key] - Nouvelle valeur des attributs
* @arg {string} gid - Identifiant du group
* @arg {string} nom - Nom commun du group
* @arg {string} status - Statut du groupe (binet, autre ?)
* @arg {string[]} admins - Admins du groupe
* @arg {string[]} members - Nouvelle valeur des attributs
* @return {boolean} `true` si la modification s'est bien déroulée, false sinon