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.
C'est ce que j'ai mis, la même chose que dans l'exemple en fait.
Mais je n'étais pas sûr d'avoir bien saisi le fonctionnement : création
de ce qui manque de façon réelle, ou retour de valeurs par défaut "pour
faire comme si"', afin d'éviter d'avoir une erreur concernant des
valeurs non définies ou quelque chose du genre.
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)
Je les ai lues avant de commencer (sinon, c'est un peu rude de commencer
à créer des backings sans savoir à quoi ils servent !). Ce que j'essaye
de faire, c'est proche de l'exemple donné mais sans le ZODB Backing pour
les utilisateurs purement CPS :
Là où j'avais un doute (mais tu commences à le lever), c'était de savoir
si toutes ces créations complémentaires se faisaient au moment de la
création d'un nouvel utilisateur ou si le système "complétait" la
structure tout seul, dès que des infos venant d'un backing ne
correspondaient à aucun enregistrement équivalent.
Juste pour être sûr : à la base, on utilise un StackingDirectory si les
backings ont le même schéma et un MetaDirectory si ce sont des schémas
différents et qu'on a besoin de renommer ou retraiter des champs ?
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)
Je vais continuer à expériementer, maintenant que je peux (merci
VMWare). On verra bien si l'illumination finit par se faire ou si c'est
vraiment un bug ! Je n'aime pas crier au loup ...
---------
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>