Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 29/09/2011 15:18:25

pdelage
Guest
From: Le Mans
Registered: 07/10/2010
Posts: 196
Website

Ajouter un filtre sur le service "Recherche dans l'annuaire"

Bonjour,
Existe-t'il un moyen d'ajouter un flitre LDAP sur ce service.
D'après les sources (je pense qu'il s'agit d'un service du plugin mypage), le filter est global sur l'annuaire
(runtime.users.ldap.baseFilter)
Merci
Partick Delage

Last edited by pdelage (19/04/2012 14:40:26)

Offline

#2 29/09/2011 15:27:22

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,111

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

D'après mes sources wink, c'est possible mais c'est assez récent (version 1.2.x ?)

Il faut désactiver la feature qui amène le composant "org.ametys.plugins.mypage.directory.LdapPersonManager"
et en redéfinir un autre dans un plugin à vous dans lequel vous allez mettre un paramètre <Filter> à vous au lieu d'utiliser celui fourni dans le Runtime.


Raphael Franchet
Expert Ametys

Offline

#3 01/10/2011 12:01:34

pdelage
Guest
From: Le Mans
Registered: 07/10/2010
Posts: 196
Website

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

Merci pour cette réponse.
J'ai essayé de mettre en place un parametre filter dans le fichier plugin.xml
dans la balise config :             <param-ref id="directory.ldap.filter"/>           
et dans component :                <Filter>directory.ldap.filter</Filter>
Cela me lève une erreur de configuration :
The parameter directory.ldap.filter  is used but not declared.
J'ai cherché mais ne sais pas comment déclarer ce paramètre.
Patrick

Last edited by pdelage (03/10/2011 09:01:25)

Offline

#4 03/10/2011 11:32:27

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

Le plus simple est de vous baser sur la déclaration du paramètre que vous voulez remplacer (runtime.users.ldap.baseFilter), qui se trouve dans le fichier plugin.xml du plugin core (projet Runtime) : , à la ligne 255.

Vous recopiez donc la déclaration <param id="runtime.users.ldap.baseFilter" type="string">...</param> dans votre plugin (entre des balises <config>, avant la déclaration des <feature>), changez l'id et les clés, et cela devrait marcher.

Last edited by Nicolas Gavalda (23/04/2012 10:19:03)

Offline

#5 03/10/2011 13:51:40

pdelage
Guest
From: Le Mans
Registered: 07/10/2010
Posts: 196
Website

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

Bonjour Nicolas,
Merci pour ces instructions que j'ai suivies. Cela fonctionne parfaitement.
Patrick Delage

Offline

#6 19/04/2012 14:54:28

pdelage
Guest
From: Le Mans
Registered: 07/10/2010
Posts: 196
Website

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

Bonjour,
Ce post permet de poser un filtre global pour le plugin mypage.
La config précédente a été faite en modifiant directement le plugin (jar). Est-il possible de surchager via la skin.
Est-il possible de poser un filtre par site ?
Merci

Offline

#7 24/04/2012 18:19:55

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Ajouter un filtre sur le service "Recherche dans l'annuaire"

Il est possible de surcharger le comportement sans toucher au plugin, non pas via la skin, mais via un nouveau plugin.
Pour cela, créer un nouveau répertoire ("mypage-custom" ou "mypage-lemans" par exemple) dans le dossier "plugins", et y créer un fichier "plugin.xml" reprenant les éléments que vous avez modifiés dans le jar, en suivant la structure d'origine :

<plugin ...>
  <config>
    <!-- Le nouveau paramètre -->
  </config>
  <!-- La feature du LdapPersonManager -->
  <feature name="...">
    <config>
      <!-- La liste des param-ref, avec le nouveau paramètre -->
    </config>
    <components>
      <!-- Le LdapPersonManager, qui référence le nouveau paramètre -->
    </components>
  </feature>
</plugin>

Ensuite, il faut indiquer dans le fichier "WEB-INF/param/runtime.xml" d'ignorer la déclaration du LdapPersonManager par défaut, en ajoutant une entrée dans la liste des "exclude" (section "plugins"), comme suit :

<plugins>
  [...]
  <exclude>
    [...]
    <feature>mypage/org.ametys.mypage.person.manager</feature>
  <exclude>
</plugin>

Last edited by Nicolas Gavalda (24/04/2012 18:23:48)

Offline

Board footer

Powered by FluxBB