From 467bf2a3f502bba89ce2a103edfc62f60efb9eb9 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Fri, 19 Feb 2021 17:08:19 +0100
Subject: [PATCH] Ensured that LDAPSet never contains None and readded dummy
 obj in ldap_server_entries.json

---
 ldap_server_entries.json | 3 +++
 uffd/ldap.py             | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/ldap_server_entries.json b/ldap_server_entries.json
index 4c76279f..5d98bb39 100644
--- a/ldap_server_entries.json
+++ b/ldap_server_entries.json
@@ -192,6 +192,7 @@
                     "cn=Subschema"
                 ],
                 "uniqueMember": [
+                    "cn=dummy,ou=system,dc=example,dc=com",
                     "uid=testuser,ou=users,dc=example,dc=com",
                     "uid=testadmin,ou=users,dc=example,dc=com"
                 ]
@@ -242,6 +243,7 @@
                     "cn=Subschema"
                 ],
                 "uniqueMember": [
+                    "cn=dummy,ou=system,dc=example,dc=com",
                     "uid=testuser,ou=users,dc=example,dc=com",
                     "uid=testadmin,ou=users,dc=example,dc=com"
                 ]
@@ -292,6 +294,7 @@
                     "cn=Subschema"
                 ],
                 "uniqueMember": [
+                    "cn=dummy,ou=system,dc=example,dc=com",
                     "uid=testadmin,ou=users,dc=example,dc=com"
                 ]
             }
diff --git a/uffd/ldap.py b/uffd/ldap.py
index 83112cb8..4ae9a330 100644
--- a/uffd/ldap.py
+++ b/uffd/ldap.py
@@ -133,13 +133,13 @@ class LDAPSet(MutableSet):
 		return repr(set(self))
 
 	def __contains__(self, value):
-		return self.__encode(value) in self.__getitems()
+		return value is not None and self.__encode(value) in self.__getitems()
 	
 	def __iter__(self):
-		return iter(map(self.__decode, self.__getitems()))
+		return iter(filter(lambda obj: obj is not None, map(self.__decode, self.__getitems())))
 
 	def __len__(self):
-		return len(self.__getitems())
+		return len(set(self))
 
 	def add(self, value):
 		if value not in self:
-- 
GitLab