Skip to content
Snippets Groups Projects
Commit e091580e authored by Quentin CHEVALIER's avatar Quentin CHEVALIER
Browse files

userData and groupData to classes, clean search, escape filter in Tools not Basics

parent ec12c774
No related branches found
No related tags found
No related merge requests found
......@@ -105,10 +105,6 @@ export class Basics {
if (domain == "gr") { dn+=ldapConfig.dn_groups; }
else { dn+=ldapConfig.dn_users; }
// Interrogation LDAP selon filter
console.log(dn);
//filter = ldapEscape.filter("${txt}", { txt: filter });
console.log(filter);
let promise = new Promise<void>(function(resolve, reject) {
client.search(dn, { // Must be escaped in case of a malignious false id
"scope": "sub",
......@@ -147,7 +143,7 @@ export class Basics {
*/
static async searchSingle(domain: 'gr'|'us', attribute: string, id: string=null, filter: string="(objectClass=*)") : Promise<string[]> {
let vals=[];
Basics.search(domain, [attribute], id, filter, entry => {
await Basics.search(domain, [attribute], id, filter, entry => {
// Cas un seul attribut où le résultat est une liste directement
vals.push(entry.object[attribute]);
});
......@@ -172,7 +168,6 @@ export class Basics {
let vals=[];
await Basics.search(domain, attributes, id, filter, entry => {
// Cas plusieurs attributs donc résultat dictionnaire
console.log("Found entry!!");
vals.push({});
attributes.forEach(attribute => {
vals.slice(-1)[0][attribute]=entry.object[attribute];
......
......@@ -3,6 +3,9 @@
* @author hawkspar
*/
// Toutes les entrées utilisateur sont escapées par sécurité
import ldapEscape from 'ldap-escape';
// Imports internes
import {ldapConfig} from './config';
import {Basics} from './basics';
import {userData} from '../export/user';
......@@ -82,6 +85,8 @@ export class Tools {
let attribute = "";
if (domain="us") { attribute = ldapConfig.user[key]; }
else { attribute = ldapConfig.group[key]; }
// Escape user input
val = ldapEscape.dn("${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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment