コード例 #1
0
    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
コード例 #2
0
ファイル: ldapModelFactory.py プロジェクト: kwisatz/mematool
  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