From ef49012d9803086a7dc26109c47c1e99ef4b31f8 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@jrother.eu> Date: Wed, 28 Jul 2021 17:13:08 +0200 Subject: [PATCH] Cleaned up wildcard imports in directory.py --- src/ldapserver/directory.py | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/ldapserver/directory.py b/src/ldapserver/directory.py index 7777a73..a64df5c 100644 --- a/src/ldapserver/directory.py +++ b/src/ldapserver/directory.py @@ -1,6 +1,6 @@ from .util import encode_attribute, AttributeDict from .dn import DN -from .ldap import * +from . import ldap class BaseDirectory: '''Base class for LDAP directories''' @@ -34,15 +34,15 @@ class FilterMixin: def search_filter(self, expr): ''' ''' - if isinstance(expr, FilterAnd): + if isinstance(expr, ldap.FilterAnd): return self.filter_and(*[self.search_filter(subexpr) for subexpr in expr.filters]) - elif isinstance(expr, FilterOr): + elif isinstance(expr, ldap.FilterOr): return self.filter_or(*[self.search_filter(subexpr) for subexpr in expr.filters]) - elif isinstance(expr, FilterNot): + elif isinstance(expr, ldap.FilterNot): return self.filter_not(self.search_filter(expr.filter)) - elif isinstance(expr, FilterEqual): + elif isinstance(expr, ldap.FilterEqual): return self.filter_equal(expr.attribute.lower(), expr.value) - elif isinstance(expr, FilterPresent): + elif isinstance(expr, ldap.FilterPresent): return self.filter_present(expr.attribute.lower()) else: return False @@ -122,33 +122,33 @@ class SimpleFilterMixin(FilterMixin): def filter_present(self, attribute): if attribute in ['objectclass', 'structuralobjectclass', 'subschemasubentry']: return True - return FilterPresent(attribute) + return ldap.FilterPresent(attribute) def filter_equal(self, attribute, value): if attribute == 'objectclass': return value.lower() in [s.lower() for s in self.objectclasses] elif attribute == 'structuralobjectclass': return value.lower() == self.structuralobjectclass.lower() - return FilterEqual(attribute, value) + return ldap.FilterEqual(attribute, value) def _filter_and(self, *subresults): - return FilterAnd(subresults) + return ldap.FilterAnd(subresults) def _filter_or(self, *subresults): - return FilterOr(subresults) + return ldap.FilterOr(subresults) def _filter_not(self, subresult): - return FilterNot(subresult) + return ldap.FilterNot(subresult) def filter_dn(self, base, scope): base = DN(base) - if scope == SearchScope.baseObject: + if scope == ldap.SearchScope.baseObject: if base[1:] != self.dn_base or len(base[0]) != 1 or base[0][0].attribute != self.rdn_attr: return False return self.filter_equal(self.rdn_attr, base[0][0].value) - elif scope == SearchScope.singleLevel: + elif scope == ldap.SearchScope.singleLevel: return base == self.dn_base - elif scope == SearchScope.wholeSubtree: + elif scope == ldap.SearchScope.wholeSubtree: if self.dn_base.in_subtree_of(base): return True if base[1:] != self.dn_base or len(base[0]) != 1 or base[0][0].attribute != self.rdn_attr: @@ -159,9 +159,9 @@ class SimpleFilterMixin(FilterMixin): class RootDSE(BaseDirectory, AttributeDict): def search(self, baseobj, scope, filter): - if baseobj or scope != SearchScope.baseObject: + if baseobj or scope != ldap.SearchScope.baseObject: return [] - if not isinstance(filter, FilterPresent) or filter.attribute.lower() != 'objectclass': + if not isinstance(filter, ldap.FilterPresent) or filter.attribute.lower() != 'objectclass': return [] attrs = {} for name, values in self.items(): @@ -195,9 +195,9 @@ class Subschema(BaseDirectory, AttributeDict): self['attributeTypes'] = list(attributetypes) def search(self, baseobj, scope, filter): - if DN(baseobj) != self.dn or scope != SearchScope.baseObject: + if DN(baseobj) != self.dn or scope != ldap.SearchScope.baseObject: return [] - if not isinstance(filter, FilterEqual): + if not isinstance(filter, ldap.FilterEqual): return [] if filter.attribute.lower() != 'objectclass' or filter.value.lower() != b'subschema': return [] @@ -209,21 +209,21 @@ def eval_ldap_filter(obj, expr): return True elif expr is False: return False - elif isinstance(expr, FilterAnd): + elif isinstance(expr, ldap.FilterAnd): for subexpr in expr.filters: if not eval_ldap_filter(obj, subexpr): return False return True - elif isinstance(expr, FilterOr): + elif isinstance(expr, ldap.FilterOr): for subexpr in expr.filters: if eval_ldap_filter(obj, subexpr): return True return False - elif isinstance(expr, FilterNot): + elif isinstance(expr, ldap.FilterNot): return not eval_ldap_filter(obj, expr.filter) - elif isinstance(expr, FilterEqual): + elif isinstance(expr, ldap.FilterEqual): return expr.value in obj.get(expr.attribute, []) - elif isinstance(expr, FilterPresent): + elif isinstance(expr, ldap.FilterPresent): return bool(obj.get(expr.attribute, [])) else: return False @@ -241,13 +241,13 @@ class StaticDirectory(BaseDirectory): def search(self, baseobj, scope, filter): baseobj = DN(baseobj) for dn, attributes in self.objects.items(): - if scope == SearchScope.baseObject: + if scope == ldap.SearchScope.baseObject: if baseobj != dn: continue - elif scope == SearchScope.singleLevel: + elif scope == ldap.SearchScope.singleLevel: if not dn.is_direct_child_of(baseobj): continue - elif scope == SearchScope.wholeSubtree: + elif scope == ldap.SearchScope.wholeSubtree: if not dn.in_subtree_of(baseobj): continue else: -- GitLab