diff --git a/ldap_server_entries.json b/ldap_server_entries.json index 4c76279fbf5da7bb455bbd6d0dbdfd1952a07111..5d98bb395519bc733b1d47b0118e7977b74e31a9 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 83112cb8ad5402745833f27a3c28858aef83b764..4ae9a330da5a18035d9a627fecece0eb97cc9dd5 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: