server/sources/ldapuser.py
changeset 2633 bc9386c3b2c9
parent 1977 606923dff11b
child 2699 1025300249d2
equal deleted inserted replaced
2632:920bfaff60a4 2633:bc9386c3b2c9
    21 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
    21 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
    22 """
    22 """
    23 
    23 
    24 from base64 import b64decode
    24 from base64 import b64decode
    25 
    25 
    26 from logilab.common.textutils import get_csv
    26 from logilab.common.textutils import splitstrip
    27 from rql.nodes import Relation, VariableRef, Constant, Function
    27 from rql.nodes import Relation, VariableRef, Constant, Function
    28 
    28 
    29 import ldap
    29 import ldap
    30 from ldap.ldapobject import ReconnectLDAPObject
    30 from ldap.ldapobject import ReconnectLDAPObject
    31 from ldap.filter import filter_format, escape_filter_chars
    31 from ldap.filter import filter_format, escape_filter_chars
   129         AbstractSource.__init__(self, repo, appschema, source_config,
   129         AbstractSource.__init__(self, repo, appschema, source_config,
   130                                 *args, **kwargs)
   130                                 *args, **kwargs)
   131         self.host = source_config['host']
   131         self.host = source_config['host']
   132         self.user_base_dn = source_config['user-base-dn']
   132         self.user_base_dn = source_config['user-base-dn']
   133         self.user_base_scope = globals()[source_config['user-scope']]
   133         self.user_base_scope = globals()[source_config['user-scope']]
   134         self.user_classes = get_csv(source_config['user-classes'])
   134         self.user_classes = splitstrip(source_config['user-classes'])
   135         self.user_login_attr = source_config['user-login-attr']
   135         self.user_login_attr = source_config['user-login-attr']
   136         self.user_default_groups = get_csv(source_config['user-default-group'])
   136         self.user_default_groups = splitstrip(source_config['user-default-group'])
   137         self.user_attrs = dict(v.split(':', 1) for v in get_csv(source_config['user-attrs-map']))
   137         self.user_attrs = dict(v.split(':', 1) for v in splitstrip(source_config['user-attrs-map']))
   138         self.user_rev_attrs = {'eid': 'dn'}
   138         self.user_rev_attrs = {'eid': 'dn'}
   139         for ldapattr, cwattr in self.user_attrs.items():
   139         for ldapattr, cwattr in self.user_attrs.items():
   140             self.user_rev_attrs[cwattr] = ldapattr
   140             self.user_rev_attrs[cwattr] = ldapattr
   141         self.base_filters = [filter_format('(%s=%s)', ('objectClass', o))
   141         self.base_filters = [filter_format('(%s=%s)', ('objectClass', o))
   142                               for o in self.user_classes]
   142                               for o in self.user_classes]