def getUser(self, uid, clear_credentials=False): ''' Return a Member object populated with it's attributes loaded from LDAP :param uid: LDAP UID :type uid: string :returns: Member ''' filter_ = '(uid=' + uid + ')' attrs = ['*'] basedn = 'uid=' + str(uid) + ',' + str( Config.get('ldap', 'basedn_users')) result = self.ldapcon.search_s(basedn, ldap.SCOPE_SUBTREE, filter_, attrs) if not result: raise LookupError('No such user !') m = Member() for dn, attr in result: for k, v in attr.iteritems(): if 'objectClass' in k: # @TODO ignore for now continue # @TODO handle multiple results v = v[0] # @todo: why again do we still need this ? if k == 'sambaSID' and v == '': v = None m.set_property(k, v) if clear_credentials: m.sambaNTPassword = '******' m.userPassword = '******' m.groups = self.getUserGroupList(uid) return m
def getUser(self, uid, clear_credentials=False): ''' Return a Member object populated with it's attributes loaded from LDAP :param uid: LDAP UID :type uid: string :returns: Member ''' filter_ = '(uid=' + uid + ')' attrs = ['*'] basedn = 'uid=' + str(uid) + ',' + str(Config.get('ldap', 'basedn_users')) result = self.ldapcon.search_s(basedn, ldap.SCOPE_SUBTREE, filter_, attrs) if not result: raise LookupError('No such user !') m = Member() for dn, attr in result: for k, v in attr.iteritems(): if 'objectClass' in k: # @TODO ignore for now continue # @TODO handle multiple results v = v[0] # @todo: why again do we still need this ? if k == 'sambaSID' and v == '': v = None m.set_property(k, v) if clear_credentials: m.sambaNTPassword = '******' m.userPassword = '******' m.groups = self.getUserGroupList(uid) return m