Version 2 (modified by nanardon, 4 years ago) (diff) |
---|
Filtres
Contexte
Pour alimenter les exemples la base contient 3 utilisateurs:
- Alice Kitty
- Allan Kitty
- Bob Kitty
Ils appartiennent aux groupes comme suit:
- kitty: Alice, Allan et Bob
- alkitty: Alice et Allan
- bokitty: Bob
Les 3 groupes sont gérés par Alice
Filtres
Les filtres de recherche s'écrive sous la forme AttributeOpValue, par exemple sn=Kitty.
Tout les attributs ne peuvent pas être utilisés comme filtre aussi il faut toujours tester.
Il est possible d'utiliser la-cli pour tester tester des filtres avec la fonction search:
LA cli=> search user sn=Kitty alice allan bob
Cas simples
Les utilisateurs ayant le nom de famille 'Kitty'
LA cli=> search user sn=Kitty alice allan bob
Les utilisateurs ayant le prénom Bob
LA cli=> search user givenName=Bob bob
Les utilisateurs étant dans le groupe alkitty
Evidement le plus intéressant est le travail sur les groupes.
LA cli=> search user memberOf=alkitty alice allan
A noter que la recherche inverse est possible, ainsi pour chercher les groupes dont est membre alice:
LA cli=> search group member=alice alkitty kitty
Chercher les objets ayant ou pas un attributs
Il est possible de chercher les ayants un attribut possitionné (avec la valeur *) ou non positionné avec la valeur NULL
LA cli=> search user givenName=* alice allan bob LA cli=> search user company=NULL alice allan bob
Recherche sur plusieurs critères
Utiliser plusieurs filtres
Il est possible de donner plusieurs filtres pour effectuer une recherche.
Les filtres portant sur le même attribut forme ensemble un ou conditionnel, s'ils portent sur des attributs différents ils forments des conditions et.
Ainsi je veux les utilisateurs dans les groupes alkitty et bokitty:
LA cli=> search user memberOf=alkitty memberOf=bokitty alice allan bob
Par contre la recherche suivante trouvera les utilisateurs du groupe alkitty ayant comme prénom Alice:
LA cli=> search user memberOf=alkitty givenName=Alice alice
Ou encore ceux étant dans le groupe alkitty ou bokitty mais ayant le prénom Alice:
LA cli=> search user memberOf=alkitty memberOf=bokitty givenName=Alice alice
Les switchs || et &&
Ces opérateurs permettent d'appliquer un ou ou et sur les valeurs recherchées.
Ainsi pour chercher les utilisateurs qui sont à la fois dans les groupes alkitty et kitty:
LA cli=> search user memberOf=alkitty&&kitty alice allan
Pour chercher les membres de alkitty ou bokitty
LA cli=> search user memberOf=alkitty||bokitty alice allan bob
Notez que memberOf=alkitty||bokitty a le même effet que memberOf=alkitty memberOf=bokitty