Python ldap.NO_SUCH_ATTRIBUTE Examples
The following are 6
code examples of ldap.NO_SUCH_ATTRIBUTE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ldap
, or try the search function
.
Example #1
Source File: __init__.py From ssh-ldap-pubkey with MIT License | 6 votes |
def _remove_pubkey(self, dn, pubkey): conf = self.conf modlist = [(ldap.MOD_DELETE, conf.pubkey_attr, _encode(pubkey))] try: self._conn.modify_s(dn, modlist) except ldap.OBJECT_CLASS_VIOLATION: modlist += [(ldap.MOD_DELETE, 'objectClass', _encode(conf.pubkey_class))] self._conn.modify_s(dn, modlist) except ldap.NO_SUCH_ATTRIBUTE: raise NoPubKeyFoundError("No such public key exists: %s." % keyname(pubkey), 1) except ldap.INSUFFICIENT_ACCESS: raise InsufficientAccessError("No rights to remove key for %s " % dn, 2)
Example #2
Source File: config.py From django-auth-ldap with BSD 2-Clause "Simplified" License | 5 votes |
def is_member(self, ldap_user, group_dn): """ Returns True if the group is the user's primary group or if the user is listed in the group's memberUid attribute. """ try: user_uid = ldap_user.attrs["uid"][0] try: is_member = ldap_user.connection.compare_s( group_dn, "memberUid", user_uid.encode() ) except (ldap.UNDEFINED_TYPE, ldap.NO_SUCH_ATTRIBUTE): is_member = False if not is_member: try: user_gid = ldap_user.attrs["gidNumber"][0] is_member = ldap_user.connection.compare_s( group_dn, "gidNumber", user_gid.encode() ) except (ldap.UNDEFINED_TYPE, ldap.NO_SUCH_ATTRIBUTE): is_member = False except (KeyError, IndexError): is_member = False return is_member
Example #3
Source File: config.py From django-auth-ldap with BSD 2-Clause "Simplified" License | 5 votes |
def is_member(self, ldap_user, group_dn): try: result = ldap_user.connection.compare_s( group_dn, self.member_attr, ldap_user.dn.encode() ) except (ldap.UNDEFINED_TYPE, ldap.NO_SUCH_ATTRIBUTE): result = 0 return result
Example #4
Source File: ldap_attr.py From isam-ansible-roles with Apache License 2.0 | 5 votes |
def _is_value_present(self, value): """ True if the target attribute has the given value. """ try: is_present = bool( self.connection.compare_s(self.dn, self.name, value)) except ldap.NO_SUCH_ATTRIBUTE: is_present = False return is_present
Example #5
Source File: backendLdap.py From ldapcherry with MIT License | 5 votes |
def del_from_groups(self, username, groups): """Delete user from groups""" # it follows the same logic than add_to_groups # but with MOD_DELETE ldap_client = self._bind() tmp = self._get_user(self._byte_p2(username), ALL_ATTRS) if tmp is None: raise UserDoesntExist(username, self.backend_name) dn = tmp[0] attrs = tmp[1] attrs['dn'] = dn self._normalize_group_attrs(attrs) dn = self._byte_p2(tmp[0]) for group in groups: group = self._byte_p2(group) for attr in self.group_attrs: content = self._byte_p2(self.group_attrs[attr] % attrs) ldif = [(ldap.MOD_DELETE, attr, self._byte_p3(content))] try: ldap_client.modify_s(group, ldif) except ldap.NO_SUCH_ATTRIBUTE as e: self._logger( severity=logging.INFO, msg="%(backend)s: user '%(user)s'" " wasn't member of group '%(group)s'" " (attribute '%(attr)s')" % { 'user': username, 'group': self._uni(group), 'attr': attr, 'backend': self.backend_name } ) except Exception as e: ldap_client.unbind_s() self._exception_handler(e) ldap_client.unbind_s()
Example #6
Source File: client_libldap.py From code with MIT License | 5 votes |
def increment_attr(self, dn, attr, incr=1, use_increment=True): import random import time if use_increment and \ self.has_control(OID_LDAP_CONTROL_POSTREAD) and \ self.has_feature(OID_LDAP_FEATURE_MODIFY_INCREMENT): incr = str(incr).encode() ctrl = ldap.controls.readentry.PostReadControl(attrList=[attr]) res = self.conn.modify_ext_s(dn, [(ldap.MOD_INCREMENT, attr, incr)], serverctrls=[ctrl]) for outctrl in res[3]: if outctrl.controlType == ctrl.controlType: values = CaseInsensitiveDict(outctrl.entry)[attr] return int(values[0]) wait = 0 while True: old_val = self.read_attr(dn, attr, raw=True)[0] new_val = str(int(old_val) + incr).encode() try: self.conn.modify_s(dn, [(ldap.MOD_DELETE, attr, old_val), (ldap.MOD_ADD, attr, new_val)]) done = True except ldap.NO_SUCH_ATTRIBUTE as e: Core.debug("swap (%r, %r) failed: %r", old_val, new_val, e) wait += 1 time.sleep(0.05 * 2**random.randint(0, wait)) else: break return int(new_val)