On Nov 8, 2006, at 5:58 PM, sebastien.masson wrote:

Bonjour,
Je teste un peu les différentes possibilités de l'architecture avec un CPS User Folder, ça a l'air impressionnant !

Mais je bute un peu sur la mise en oeuvre : j'ai bien réussi à mettre en place les directories LDAP pour les utilisateurs, les groupes et les rôles (avec les CrossGet qui vont bien),

Félicitations ! Quelques questions par pure curiosité, avant de répondre plus bas:
  - ActiveDirectory, OpenLDAP ?
- quel est le niveau d'accès de CPS au LDAP (lecture seule, écriture) ?
  - quelles objectClass pour les groupes ?
- comment as-tu réglé le problème des crossGet/crossSet qui a priori porteraient en LDAP sur le dn, et dans CPS sur le uid ?

Pour la petite histoire, mes réponses respectives seraient: OpenLDAP, écriture, groupOfNames, salement.

mais j'aimerais également ajouter de quoi stocker des informations que le LDAP ne peut pas prendre en charge (comme le "last_login_time" par exemple). J'ai bien essayé de m'inspirer de ce que propose CPSLDAPSetup, mais je ne m'en sors plus !

Le site étant le résultat d'une migration d'une ancienne version, les workspaces des membres existent déjà, et j'ai utilisé un "logged_in" customisé pour simplement forcer la mise à jour de "last_login_time" dans tous les cas. Là où je coince, c'est que j'aimerais bien stocker ces informations dans un ZODB directory, qui se retrouve mis en relation avec mon LDAP par le biais d'un MetaDirectory. Or, comme le backing ZODB est vide, il n'arrive pas à trouver les membres au niveau du MetaDirectory (je suppose que c'est normal, étant donné qu'il a un résultat depuis le backing LDAP mais que l'autre est vide).

J'ai bien essayé de détruire le workspace d'un membre pour voir si les choses se mettaient en place à la connexion suivante, mais non.

Existe-t-il un mécanisme permettant la "création automatique" des objets manquants dans les backings pour arriver au résultat escompté ?

Oui, ou presque, c'est ce qui s'appelle une 'missing_entry'. Ça se configure en ZMI sur le meta, onglet backings. C'est une expression TALES qui doit fournir un dictionnaire qui représente l'entrée; quelque chose du genre
        python: {'last_login_time': None}
devrait faire l'affaire.

Ce système est mentionné dans CPSDirectory/doc/metadirectory.txt (ces docs-là sont bien). C'est le cas d'utilisation typique (surtout si le LDAP est alimenté par d'autres applications)

Normalement, la prochaine modification de l'entrée devrait la créer dans le backing où elle manque (sinon tu as le droit de soumettre un bug)

---------
Georges Racinet,   Nuxeo SAS
Open Source Enterprise Content Management (ECM)
Web: http://www.nuxeo.com/ and http://www.nuxeo.org/ - Tel: +33 1 40 33 79 87



_______________________________________________
cps-users-fr
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à