From 6bb5af7bea21d44b4e5ee20cfaa2f76b12ea0929 Mon Sep 17 00:00:00 2001 From: Martin Basti Date: Feb 08 2017 14:41:39 +0000 Subject: 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 --- diff --git a/ipapython/ipaldap.py b/ipapython/ipaldap.py index 37d23d7..c811431 100644 --- a/ipapython/ipaldap.py +++ b/ipapython/ipaldap.py @@ -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) diff --git a/ipaserver/plugins/baseldap.py b/ipaserver/plugins/baseldap.py index 24b6db7..79ba7fc 100644 --- a/ipaserver/plugins/baseldap.py +++ b/ipaserver/plugins/baseldap.py @@ -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)