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>