diff --git a/assets/LDAP_API.png b/assets/LDAP_API.png new file mode 100644 index 0000000000000000000000000000000000000000..7e70bccce6db109acf9b7970b83fda07c0192a0d Binary files /dev/null and b/assets/LDAP_API.png differ diff --git a/ldap_config.json b/ldap_config.json index cda65ea540e92ca17cafd83b97d85b8a02a5c3e2..efe56e030fa7e02dc8dcce6c69d8c5f55b629dba 100644 --- a/ldap_config.json +++ b/ldap_config.json @@ -49,6 +49,8 @@ "password": "userPassword", "directory": "homeDirectory", "cleanFullName": "gecos", - "classes": "objectClass" + "classes": "objectClass", + "child": "child", + "parent": "parent" } } \ No newline at end of file diff --git a/notes/memo_ldap.md b/notes/memo_ldap.md index 784c548e0277c4b07c68b1cb4d870b6e1a88a437..38b4f9acad3956e8a119e76f843265897bebbd2c 100644 --- a/notes/memo_ldap.md +++ b/notes/memo_ldap.md @@ -19,8 +19,12 @@ Une documentation vieillissante est disponible sur le [`wikix`](https://wikibr.b ### Idée de nouvelle organisation du LDAP -Les admins descendent et les membres remontent +Les admins descendent et les membres remontent.  - \ No newline at end of file + + +### Etat de l'API + + \ No newline at end of file diff --git a/src/ldap/internal/tools.ts b/src/ldap/internal/tools.ts index 5ee4b0325e27256960ba3ec935def7ad97337b68..4adaf7052c10c894a052980c0d294a0ad91d656e 100644 --- a/src/ldap/internal/tools.ts +++ b/src/ldap/internal/tools.ts @@ -86,12 +86,12 @@ export class Tools { if (domain="us") { attribute = ldapConfig.user[key]; } else { attribute = ldapConfig.group[key]; } // Escape user input - val = ldapEscape.dn("${fil}", { fil: val}); + val = ldapEscape.filter("${fil}", { fil: val}); // Creation incrémentale du filtre - filter="(&"+filter+ "(|("+attribute+"="+ val+")"+ // On cherche la valeur exacte - "(|("+attribute+"=*"+val+")"+ // La valeur finale avec des trucs avant ; wildcard * (MEF la wildcart ne marche pas pour tous les attributs) - "(|("+attribute+"=*"+val+"*)"+ // La valeur du milieu avec des trucs avant et après - "("+ attribute+"="+ val+"*)))))"; // La valeur du début avec des trucs après + filter="(&"+filter+ "(|("+attribute+"="+ val+")"+ // On cherche la valeur exacte + "("+attribute+"=*"+val+")"+ // La valeur finale avec des trucs avant ; wildcard * (MEF la wildcart ne marche pas pour tous les attributs) + "("+attribute+"=*"+val+"*)"+ // La valeur du milieu avec des trucs avant et après + "("+ attribute+"="+ val+"*)))"; // La valeur du début avec des trucs après }); } }