Bonjour,
j'ai besoin d'interfacer CPS avec un serveur LDAP. 
Pour l'autentification mais également pour faire des choses un peu plus 
complexes.

En fait, j'arrive à utiliser LDAPUserFolder mais pas CPSUserFolder qui est le 
produit dont j'ai besoin.

Pour tester l'affaire, 

+j'ai configuré en local un petit serveur OpenLdap

+j'ai fait un site CPS tout neuf

+j'ai remplacer portal_directories/members par un CPS Stacking Directory 
configuré ainsi :

 {'__ac_local_roles__': {'admin': ['Owner']},
 'acl_directory_view_roles': 'Manager; Member',
 'acl_directory_view_roles_c': ['Manager', 'Member'],
 'acl_entry_create_roles': 'Manager',
 'acl_entry_create_roles_c': ['Manager'],
 'acl_entry_delete_roles': 'Manager',
 'acl_entry_delete_roles_c': ['Manager'],
 'acl_entry_edit_roles': 'Manager',
 'acl_entry_edit_roles_c': ['Manager'],
 'acl_entry_view_roles': 'Manager; Member',
 'acl_entry_view_roles_c': ['Manager', 'Member'],
 'backing_dirs': ('members_ldap',),
 'creation_dir': '',
 'id': 'members',
 'id_field': 'cn',
 'layout': 'members',
 'layout_search': 'members_search',
 'schema': 'members',
 'schema_search': 'members_search',
 'search_substring_fields': ('sn,', 'cn'),
 'title': 'label_members',
 'title_field': 'cn',
 'user_modified': 0}

+J'ai rajouté cn dans les schemas members et members_search

 CPS String Field sans options particulieres
 
+j'ai rajouté un cn dans les layouts members et members_search

{'__ac_local_roles__': {'admin': ['Owner']},
 'configurable': 'nothing',
 'css_class': '',
 'description': '',
 'fields': ('cn',),
 'height': 5,
 'help': '',
 'hidden_empty': False,
 'hidden_if_expr': '',
 'hidden_if_expr_c': None,
 'hidden_layout_modes': (),
 'hidden_readonly_layout_modes': (),
 'id': 'w__cn',
 'is_i18n': False,
 'is_required': False,
 'label': 'cn',
 'label_edit': 'cn',
 'readonly_layout_modes': (),
 'render_format': 'text',
 'render_position': 'normal',
 'size_max': 0,
 'title': 'cn',
 'widget_mode_expr': '',
 'widget_mode_expr_c': None,
 'widget_type': 'Text Widget',
 'width': 40}

+J'ai rajouté un CPS LDAP Backing Directory

 {'__ac_local_roles__': {'admin': ['Owner']},
 '_v_conn': <ldap.ldapobject.ReconnectLDAPObject instance at 0x432b654c>,
 'acl_directory_view_roles': 'Manager; Member',
 'acl_directory_view_roles_c': ['Manager', 'Member'],
 'acl_entry_create_roles': 'Manager',
 'acl_entry_create_roles_c': ['Manager'],
 'acl_entry_delete_roles': 'Manager',
 'acl_entry_delete_roles_c': ['Manager'],
 'acl_entry_edit_roles': 'Manager',
 'acl_entry_edit_roles_c': ['Manager'],
 'acl_entry_view_roles': 'Manager; Member',
 'acl_entry_view_roles_c': ['Manager', 'Member'],
 'id': 'members_ldap',
 'layout': 'members',
 'layout_search': 'members_search',
 'ldap_base': 'dc=exemple,dc=com',
 'ldap_bind_dn': 'cn=Manager,dc=exemple,dc=com',
 'ldap_bind_password': 'secret',
 'ldap_object_classes': 'top, organizationalPerson',
 'ldap_object_classes_c': ['top', 'organizationalPerson'],
 'ldap_port': 389,
 'ldap_rdn_attr': 'cn',
 'ldap_scope': 'ONELEVEL',
 'ldap_scope_c': 1,
 'ldap_search_classes': 'person',
 'ldap_search_classes_c': ['person'],
 'ldap_search_classes_filter': '(objectClass=person)',
 'ldap_server': '127.0.0.1',
 'ldap_use_ssl': False,
 'password_encryption': 'none',
 'password_field': 'userPassword',
 'schema': 'members',
 'schema_search': 'members_search',
 'search_substring_fields': ('cn',),
 'title': '',
 'title_field': 'cn',
 'user_modified': 0}

+J'ai enfin remplacé portal/acl_users par un CPSUserFolder

{'__ac_local_roles__': {'admin': ['Owner']},
 'groups_dir': 'groups',
 'title': 'CPS User Folder',
 'users_dir': 'members',
 'users_groups_field': 'groups',
 'users_login_field': 'cn',
 'users_roles_field': 'roles'}

Je peux faire des recherches mais ni le login, ni la creation de compte ne 
fonctionnent.
Pour le login, j'ai juste un Login failure
et pour la création de compte :

Time    2005/05/26 16:33:06.035 GMT+2
User Name (User Id)     Anonymous User (None)
Request URL     http://localhost:8080/portail/register
Exception Type  NotImplementedError
Exception Value         

Traceback (innermost last):

    * Module ZPublisher.Publish, line 101, in publish
    * Module ZPublisher.mapply, line 88, in mapply
    * Module ZPublisher.Publish, line 39, in call_object
    * Module Products.CMFCore.FSPythonScript, line 104, in __call__
    * Module Shared.DC.Scripts.Bindings, line 306, in __call__
    * Module Shared.DC.Scripts.Bindings, line 343, in _bindAndExec
    * Module Products.CMFCore.FSPythonScript, line 160, in _exec
    * Module None, line 61, in register
      <FSPythonScript at /portail/register>
      Line 61
    * Module Products.CMFCore.RegistrationTool, line 132, in addMember
    * Module Products.CMFCore.MembershipTool, line 411, in addMember
    * Module AccessControl.User, line 875, in _addUser
    * Module Products.CPSUserFolder.CPSUserFolder, line 343, in _doAddUser

NotImplementedError



Ce qu'il y à sur le serveur LDAP ressemble à ceci :

dn: dc=exemple,dc=com
dc: exemple
objectClass: top
objectClass: dcObject
objectClass: organization
o: Exemple INC

dn: cn=joris, dc=exemple,dc=com
userPassword:: YXplcnR5
objectClass: top
objectClass: person
sn: joris
cn: joris

Voilà, je bloque. Si quelqu'un avait une petite idée pour me faire avancer, 
ce serai sympathique

Merci

Joris
       



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

Répondre à