From b48532286b06d3febaa29b9eed78065c3289ddd4 Mon Sep 17 00:00:00 2001 From: Julian Rother <julian@jrother.eu> Date: Fri, 3 Dec 2021 01:46:32 +0100 Subject: [PATCH] Update to ldapserver 0.1.0 --- debian/control | 2 +- requirements.txt | 2 +- server.py | 40 ++++++++++++++++++++-------------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/debian/control b/debian/control index af00ba6..446b49f 100644 --- a/debian/control +++ b/debian/control @@ -12,7 +12,7 @@ Package: uffd-ldap Architecture: all Depends: ${misc:Depends}, - python3-ldapserver, + python3-ldapserver (>= 0.1.0), python3-ldapserver (<< 0.2.0), python3-requests, python3-cachecontrol, python3-click, diff --git a/requirements.txt b/requirements.txt index 9cbab77..052248e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ --extra-index-url https://git.cccv.de/api/v4/projects/220/packages/pypi/simple -ldapserver==0.0.1.dev6 +ldapserver==0.1.* requests==2.* CacheControl diff --git a/server.py b/server.py index 17d95fb..a550959 100755 --- a/server.py +++ b/server.py @@ -121,41 +121,41 @@ class UffdLDAPRequestHandler(ldapserver.LDAPRequestHandler): } for rdnassertion in self.dn_base[0]: # pylint: disable=unsubscriptable-object base_attrs[rdnassertion.attribute] = [rdnassertion.value] - yield self.subschema.Object(self.dn_base, **base_attrs) - yield self.subschema.Object(self.subschema.DN('ou=users') + self.dn_base, + yield self.subschema.ObjectEntry(self.dn_base, **base_attrs) + yield self.subschema.ObjectEntry(self.subschema.DN('ou=users') + self.dn_base, ou=['users'], objectClass=['top', 'organizationalUnit'], structuralObjectClass=['organizationalUnit'], ) - yield self.subschema.Object(self.subschema.DN('ou=groups') + self.dn_base, + yield self.subschema.ObjectEntry(self.subschema.DN('ou=groups') + self.dn_base, ou=['groups'], objectClass=['top', 'organizationalUnit'], structuralObjectClass=['organizationalUnit'], ) - yield self.subschema.Object(self.subschema.DN('ou=system') + self.dn_base, + yield self.subschema.ObjectEntry(self.subschema.DN('ou=system') + self.dn_base, ou=['system'], objectClass=['top', 'organizationalUnit'], structuralObjectClass=['organizationalUnit'], ) - yield self.subschema.Object(self.subschema.DN('cn=service,ou=system') + self.dn_base, + yield self.subschema.ObjectEntry(self.subschema.DN('cn=service,ou=system') + self.dn_base, cn=['service'], objectClass=['top', 'organizationalRole', 'simpleSecurityObject'], structuralObjectClass=['organizationalRole'], ) def do_search_users(self, baseobj, scope, filterobj): - template = self.subschema.ObjectTemplate(self.subschema.DN(self.dn_base, ou='users'), 'uid', + template = self.subschema.EntryTemplate(self.subschema.DN(self.dn_base, ou='users'), 'uid', structuralObjectClass=['inetorgperson'], objectClass=['top', 'inetorgperson', 'organizationalperson', 'person', 'posixaccount'], - cn=[ldapserver.WILDCARD_VALUE], - displayname=[ldapserver.WILDCARD_VALUE], - givenname=[ldapserver.WILDCARD_VALUE], - homeDirectory=[ldapserver.WILDCARD_VALUE], - mail=[ldapserver.WILDCARD_VALUE], + cn=ldapserver.WILDCARD, + displayname=ldapserver.WILDCARD, + givenname=ldapserver.WILDCARD, + homeDirectory=ldapserver.WILDCARD, + mail=ldapserver.WILDCARD, sn=[' '], - uid=[ldapserver.WILDCARD_VALUE], - uidNumber=[ldapserver.WILDCARD_VALUE], - memberOf=[ldapserver.WILDCARD_VALUE], + uid=ldapserver.WILDCARD, + uidNumber=ldapserver.WILDCARD, + memberOf=ldapserver.WILDCARD, ) if not template.match_search(baseobj, scope, filterobj): return @@ -171,7 +171,7 @@ class UffdLDAPRequestHandler(ldapserver.LDAPRequestHandler): request_params = {'group': normalize_group_name(value.object_value)} break for user in self.api.get_users(**request_params): - yield template.create_object(user['loginname'], + yield template.create_entry(user['loginname'], cn=[user['displayname']], displayname=[user['displayname']], givenname=[user['displayname']], @@ -183,13 +183,13 @@ class UffdLDAPRequestHandler(ldapserver.LDAPRequestHandler): ) def do_search_groups(self, baseobj, scope, filterobj): - template = self.subschema.ObjectTemplate(self.subschema.DN(self.dn_base, ou='groups'), 'cn', + template = self.subschema.EntryTemplate(self.subschema.DN(self.dn_base, ou='groups'), 'cn', structuralObjectClass=['groupOfUniqueNames'], objectClass=['top', 'groupOfUniqueNames', 'posixGroup'], - cn=[ldapserver.WILDCARD_VALUE], + cn=ldapserver.WILDCARD, description=[' '], - gidNumber=[ldapserver.WILDCARD_VALUE], - uniqueMember=[ldapserver.WILDCARD_VALUE], + gidNumber=ldapserver.WILDCARD, + uniqueMember=ldapserver.WILDCARD, ) if not template.match_search(baseobj, scope, filterobj): return @@ -205,7 +205,7 @@ class UffdLDAPRequestHandler(ldapserver.LDAPRequestHandler): request_params = {'member': normalize_user_loginname(value.object_value)} break for group in self.api.get_groups(**request_params): - yield template.create_object(group['name'], + yield template.create_entry(group['name'], cn=[group['name']], gidNumber=[group['id']], uniqueMember=[self.subschema.DN(self.subschema.DN(self.dn_base, ou='users'), uid=user) for user in group['members']], -- GitLab