wiki:Filtres

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