Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 12/09/2012 14:06:23

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

Ajouter un nouvel attribut ldap dans l'annuaire

Je voudrais ajouter un nouvel attribut ldap à la liste des attributs disponible dans le plugin mypage.
Est-ce possible ?
J'ai la possibilité de l'ajouter dans

mais ce n'est bien sur pas suffisant.
Merci

Offline

#2 12/09/2012 14:39:36

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Bonjour,

Quel est le but de cet attribut ? critère de recherche ? affichage ? les deux ? filtre ?


Raphael Franchet
Expert Ametys

Offline

#3 12/09/2012 15:33:36

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Pour affichage seulement

Offline

#4 13/09/2012 08:57:45

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

pour afficher sur le résultat de la recherche ? ou sur la fichier détaillée d'une personne ?


Raphael Franchet
Expert Ametys

Offline

#5 13/09/2012 09:41:50

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Bonjour,
C'est pour l'afficher sur le résultat de la recherche.

Offline

#6 13/09/2012 13:59:28

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Donc ce qu'il faut c'est l'ajouter aux attributs du type de contenu mypage.
Ensuite, il suffira de le sélectionner dans le service (partie critères affichés).

Est-ce que vous savez ajouter un attribut ?


Raphael Franchet
Expert Ametys

Offline

#7 13/09/2012 14:41:18

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Oui, c'est bien cela.
Par contre, je ne sais pas ajouter d'attribut.

Offline

#8 13/09/2012 16:33:35

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Je crois, mais nicolas confirmera à son retour de congé, qu'il faut redéfinir un type de contenu (en dupliquant celui définit dans le fichier plugins/mypage/plugin.xml sur le svn) en changeant son identifiant.
Puis créer un fichier WEB-INF/param/person-content-type.xml contenant l'identifiant:

<mypage>
    <person-content-type>Nouvel identifiant</person-content-type>
</mypage>

Le problème c'est que toutes les pages perso existantes vont utiliser l'ancien type de contenu, je ne sais pas si ça va bien se passer... à tester


Raphael Franchet
Expert Ametys

Offline

#9 14/09/2012 08:37:55

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Bonjour,
Pas de problème pour les pages perso existantes car nous avons pas encore mis en production ce plugin.
On peut supprimer les fiches actuelles qui ne servent qu'à titre de test.
Je vais essayer de creer ce nouveau type de contenu en suivant vos indications et vous tiens informé.
Merci

Offline

#10 17/09/2012 08:48:04

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Après avoir paramétrer le cms comme indiqué ci dessous, j'obtiens l'erreur suivante quand je veux insérer le service "Recherche dans l'annuaire" :

java.lang.NullPointerException
    at org.ametys.plugins.mypage.contenttype.AttributesEnumerator.getEntries(AttributesEnumerator.java:68)
    at org.ametys.runtime.util.parameter.ParameterHelper.toSAXEnumerator(ParameterHelper.java:267)
    at org.ametys.web.service.ServiceGenerator.toSAXParameter(ServiceGenerator.java:150)
    at org.ametys.web.service.ServiceGenerator.toSAXService(ServiceGenerator.java:86)
    at org.ametys.web.service.ServiceGenerator.generate(ServiceGenerator.java:62)
    at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:579)
....

Configuration :
extrait du fichier cms/plugins/mypage/plugins.xml :

<cms:directory-attribute name="fonction">
                        <label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_FONCTION</label>
                        <description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_FONCTION_DESC</description>
                        <attribute>umFonction</attribute>
                    </cms:directory-attribute>
                    <cms:directory-attribute name="telfonction">
                        <label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_TELFONCTION</label>
                        <description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_TELFONCTION_DESC</description>
                        <attribute>supannAutreTelephone</attribute>
                    </cms:directory-attribute>
                    <cms:directory-attribute name="mailfonction">
                        <label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_MAILFONCTION</label>
                        <description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_MAILFONCTION_DESC</description>
                        <attribute>mailAlternateAddress</attribute>
                    </cms:directory-attribute>

Fichier cms/WEB-INF/param/person-content-type.xml
<mypage>
    <person-content-type>fonction</person-content-type>
    <person-content-type>telfonction</person-content-type>
    <person-content-type>mailfonction</person-content-type>
</mypage>

Offline

#11 17/09/2012 08:54:13

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Alors il y a un problème.
Dans le fichier person-content-type, il ne faut saisir qu'un seul identifiant, qui est celui du nouveau type de contenu : celui fourni par défaut est "org.ametys.plugins.mypage.Content.person", mais quand vous le dupliquez vous devez lui donner un nouvel identifiant (que vous prévicez dans ce fichier).
La liste des nouveaux attributs apparait bien dans le plugin.xml, donc le reste à l'air ok.


Raphael Franchet
Expert Ametys

Offline

#12 17/09/2012 10:08:12

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Bonjour,
Merci pour la réponse. J'avais mal compris.
Je viens de modifier le fichier plugin.xml avec un nouvel identifiant

<feature name="org.ametys.mypage.content-type">
        <extensions>
            <extension point="org.ametys.cms.contenttype.ContentTypeExtensionPoint"
                       id="org.ametys.plugins.ummypage.Content.person"
                       class="org.ametys.plugins.mypage.contenttype.LdapPersonContentType">

Que j'ai indiqué dans person-content-type.xml :
<mypage>
    <person-content-type>org.ametys.plugins.ummypage.Content.person</person-content-type>
</mypage>

Et j'ai toujours la même erreur après relance de tomcat-cms ...

Offline

#13 17/09/2012 10:18:44

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Il doit y avoir une erreur AVANT dans les logs, comme quoi il n'a pas pris en compte votre type de contenu.

Ce que vous pouvez faire sinon, c'est enlever le fichier person-content-type.xml momentanément, puis redémarrer et enfin aller dans "Plugin et Workspaces" pour voir si votre nouveau type de contenu est correctement référencé...


Raphael Franchet
Expert Ametys

Offline

#14 17/09/2012 10:29:29

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

J'ai cette erreur dans mes log servlent-engine :

2012-09-17 10:03:33,255 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-17 10:03:33,258 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-17 10:03:33,264 ERROR [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'

Ne manque t'il pas une modif sur la config ldap ? voir message ci-dessous :
'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
Je vais regarder si le nouveau type de contenu est référencé.

Offline

#15 17/09/2012 10:35:26

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

pourtant dans votre bout de plugin.xml, on voit que l'identifiant utilise bien la classe java LdapPersonContentType. Bizarre.

vos logs sont-ils en Warning ? en fait au démarrage les plugins mal fait sont éliminés mais tout ça est noté en Warning seulement.


Raphael Franchet
Expert Ametys

Offline

#16 17/09/2012 10:38:49

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Dans les plugins par fichier, je ne trouve que
org.ametys.plugins.mypage.Content.person
et pas
org.ametys.plugins.ummypage.Content.person

Mon fichier plugins.xml est-il bien placé ?
dans mon répertoire de l'application cms  cms/plugins/mypage

Offline

#17 17/09/2012 10:50:05

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Mettez votre application en warning pour les logs. Vous verrez par exemple que le fichier doit s'appeler 'plugin.xml'.


Raphael Franchet
Expert Ametys

Offline

#18 17/09/2012 11:02:29

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Il s'appelle bien plugin.xml. (faute de frappe dans le message précédent).
Je mets néanmoins  l'application cms en warning de suite pour voir.

Last edited by pdelage (18/09/2012 11:13:55)

Offline

#19 18/09/2012 18:07:06

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Je n'ai rien de plus avec  les logs du plugin mypage en warning.

2012-09-18 18:02:40,702 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-18 18:02:40,705 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-18 18:02:40,712 ERROR [sitemap] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'

Offline

#20 19/09/2012 09:30:48

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Dans ce cas, passez en INFO, vous aurez une trace pour chaque plugin chargé par le CMS.
Il faut comprendre pourquoi votre plugin n'est pas chargé.


Raphael Franchet
Expert Ametys

Offline

#21 19/09/2012 10:16:04

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Bonjour,
J'ai mis le cms en debug info dans log4j.xml.
Voici les lignes avant l'erreur. Je n'ai pas mis toutes les lignes info concernant

2012-09-19 10:03:30,154 INFO  [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Find in cache2 the right Myfavorites_Right_Myfavorites_Createfor user delageon context [/application/immm/pages/fr]
2012-09-19 10:03:30,154 INFO  [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) In cache, user delage has not the right Multimedia_Right_Multimedia_Create on context [/application/immm/pages/fr/test-annuaire, ]
2012-09-19 10:03:30,155 INFO  [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) No find entry in cache for [delage, Multimedia_Right_Multimedia_Create, /application/immm/pages/fr]
2012-09-19 10:03:30,155 INFO  [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Find in cache2 the right Multimedia_Right_Multimedia_Createfor user delageon context [/application/immm/pages/fr]
2012-09-19 10:03:30,157 INFO  [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://ribbon/control/org.ametys.web.templatesmenu?pageIds=page://20b8762d-8afe-4791-a208-6f7da347a72a&'
2012-09-19 10:03:30,164 INFO  [access] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) 'plugins/core/servercomm/messages.xml' Processed by Apache Cocoon 2.1.11 in 138 milliseconds.
2012-09-19 10:03:38,088 INFO  [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/core/system-startuptime.xml'
2012-09-19 10:03:38,092 INFO  [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/core/system-announcement/view.xml'
2012-09-19 10:03:38,098 INFO  [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/web/service/params?id=org.ametys.mypage.service.Search&pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a&'
2012-09-19 10:03:38,104 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-19 10:03:38,104 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-19 10:03:38,109 ERROR [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
    at org.ametys.runtime.plugins.core.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:155)

Offline

#22 19/09/2012 10:43:32

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Non. Ce qui va nous intéresser sont des logs de démarrage. Pour chaque plugin chargé vous avez une ligne d'info dans votre log de ce type là

Plugin 'core' added at path 'D:\Dev\raphael\Ametys\templates\CMSWEB\trunk\webapp\site\plugins\core\plugin.xml'

Le but est de voir sur le plugin avec votre nouveau type de contenu a bien cette ligne là.


Raphael Franchet
Expert Ametys

Offline

#23 19/09/2012 11:19:41

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

J'ai trouvé cela dans les logs:

2012-09-19 10:02:17,855 INFO  [org.ametys.runtime.plugin.PluginsManager] (main;) Plugin 'mypage' added at path 'resource://org/ametys/plugins/mypage/plugin.xml'
..........
..........
2012-09-19 10:02:18,606 WARN  [org.ametys.runtime.plugin.PluginsManager] (main;) The plugin mypage at /usr/local/tomcat/webapps/cms330/plugins/mypage/plugin.xml is already declared. It will be ignored.
2012-09-19 10:02:18,991 INFO  [org.ametys.runtime.plugin.PluginsManager] (main;) No init class configured

Offline

#24 19/09/2012 11:27:08

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

Dans votre répertoire plugins vous avez posé un répertoire nommé "mypage" ? le nom d'un plugin doit être unique...


Raphael Franchet
Expert Ametys

Offline

#25 19/09/2012 11:59:51

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

Re: Ajouter un nouvel attribut ldap dans l'annuaire

J'ai renommé ce répertoire en ummypage.
Après relance du tomcat-cms, j'ai ce message :
An error occurred. Please contact the administrator of the application.java.lang.IllegalArgumentException: In feature ummypage/org.ametys.mypage.init, the extension org.ametys.plugins.mypage.Init to point org.ametys.runtime.cocoon.InitExtensionPoint is already declared. at org.ametys.runtime.plugin.PluginsManager._checkExtensionsIds(PluginsManager.java:977) at org.ametys.runtime.plugin.PluginsManager._getActiveFeaturesInformations(PluginsManager.java:809)

Je pense qu'il faut supprimer la ref sur l'ancien mypage ...

Offline

Board footer

Powered by FluxBB