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