# HG changeset patch # User Sylvain Thénault # Date 1342708870 -7200 # Node ID e099ebc65e610507ba1961f5a3c951343f85a5c8 # Parent 42e8755b3aba51cc1831736c4e8294a070d448b0 [ldap feed] fix error since with read security activated, password value is not selecteable (closes #2406597). Also add a note in the book about packages required to connect to an ldap server diff -r 42e8755b3aba -r e099ebc65e61 doc/book/en/admin/ldap.rst --- a/doc/book/en/admin/ldap.rst Fri Jul 20 09:22:51 2012 +0200 +++ b/doc/book/en/admin/ldap.rst Thu Jul 19 16:41:10 2012 +0200 @@ -29,6 +29,15 @@ The base functionality for this is in :file:`cubicweb/server/sources/ldapuser.py`. +External dependencies +--------------------- + +You'll need the following packages to make CubicWeb interact with your LDAP / +Active Directory server: + +* python-ldap +* ldaputils if using `ldapfeed` source + Configurations options ---------------------- diff -r 42e8755b3aba -r e099ebc65e61 server/test/unittest_ldapuser.py --- a/server/test/unittest_ldapuser.py Fri Jul 20 09:22:51 2012 +0200 +++ b/server/test/unittest_ldapuser.py Thu Jul 19 16:41:10 2012 +0200 @@ -32,7 +32,6 @@ from cubicweb.devtools.httptest import get_available_port from cubicweb.devtools import get_test_db_handler -from cubicweb.server.session import security_enabled from cubicweb.server.sources.ldapuser import GlobTrFunc, UnknownEid, RQL2LDAPFilter CONFIG = u'user-base-dn=ou=People,dc=cubicweb,dc=test' @@ -110,10 +109,9 @@ def _pull(self): with self.session.repo.internal_session() as isession: - with security_enabled(isession, read=False, write=False): - lfsource = isession.repo.sources_by_uri['ldapuser'] - stats = lfsource.pull_data(isession, force=True, raise_on_error=True) - isession.commit() + lfsource = isession.repo.sources_by_uri['ldapuser'] + stats = lfsource.pull_data(isession, force=True, raise_on_error=True) + isession.commit() def test_delete(self): """ delete syt, pull, check deactivation, repull, diff -r 42e8755b3aba -r e099ebc65e61 sobjects/ldapparser.py --- a/sobjects/ldapparser.py Fri Jul 20 09:22:51 2012 +0200 +++ b/sobjects/ldapparser.py Thu Jul 19 16:41:10 2012 +0200 @@ -71,7 +71,9 @@ session.commit(free_cnxset=False) def update_if_necessary(self, entity, attrs): - entity.complete(tuple(attrs)) + # disable read security to allow password selection + with entity._cw.security_enabled(read=False): + entity.complete(tuple(attrs)) if entity.__regid__ == 'CWUser': wf = entity.cw_adapt_to('IWorkflowable') if wf.state == 'deactivated':