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>

Répondre à