Aide COMSpace - Recherche    

Recherche d'objets

Il est possible de rechercher des objets stockés dans votre base de données (par défaut, un serveur ldap) en saisissant directement un ou plusieurs éléments d'information relatifs à ces objets. Ces informations peuvent consister d'une ou de plusieurs valeurs d'attributs de cet objet. La construction de cette expression de recherche dépend du 'backend' utilisé. Par défaut, c'est un serveur ldap et il faut fournir une expression (appelée aussi 'filtre' ('filter')) compatible avec le standard ldap.

Exemples de base

La manière la plus simple de rechercher un objet est de construire un filtre qui contient la clé de l'attribut recherché et la valeur, concaténée avec le signe égal :

sn=test

Si plusieurs objets ont l'attribut sn positionné à 'test', la liste de tous ces objets sera retournée. Pour être précis, la liste comprend leur chemin d'accès, c'est à dire, selon la convention ldap, leur 'distinguish name' (dn).

L'expression peut également inclure des 'wildcards' pour signifier 'n'importe quoi' :

sn=*test*

Exemples avancés

Si on veut effectuer une recherche multi-critères, l'expression de recherche doit être de la forme :

(&(sn=test)(gidnumber=100))

Ce filtre provoque une recherche sur le serveur ldap des objets dont sn est 'test' et dont le uidnumber est '100'. Chaque paire  clé=valeur doit apparaître entre paranthèses, ainsi que l'expression en entier. L'opération est spécifiée en premier (ici, '&' qui signifie l'opération 'and'). Une autre opération pourrait être '|' pour l'opération 'or'.

On peut combiner plusieurs opérations et conditions :

(&(|(uid=foo)(uid=bar))(objectclass=posixaccount))

Le résultat contiendra tous les objets dont l'uid est ou bien 'foo' ou bien 'bar', et donc l'attribut objectclass est posixaccount.