py3: get_memberofindirect: fix ByteWarnings

DN must be converted to bytes as other variables adn lists contain bytes

https://fedorahosted.org/freeipa/ticket/4985

Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
This commit is contained in:
Martin Basti
2017-02-02 16:51:21 +01:00
parent d38540acd6
commit 6bb5af7bea
2 changed files with 5 additions and 3 deletions

View File

@@ -379,8 +379,10 @@ class LDAPEntry(collections.MutableMapping):
name, value.__class__.__name__, value))
for (i, item) in enumerate(value):
if not isinstance(item, bytes):
raise TypeError("%s[%d] value must be str, got %s object %r" % (
name, i, item.__class__.__name__, item))
raise TypeError(
"%s[%d] value must be bytes, got %s object %r" % (
name, i, item.__class__.__name__, item)
)
name = self._add_attr_name(name)

View File

@@ -722,7 +722,7 @@ class LDAPObject(Object):
direct = set()
indirect = set(entry.raw.get('memberof', []))
for group_entry in result:
dn = str(group_entry.dn)
dn = str(group_entry.dn).encode('utf-8')
if dn in indirect:
indirect.remove(dn)
direct.add(dn)