diff options
-rw-r--r-- | ipalib/plugins/baseldap.py | 11 | ||||
-rw-r--r-- | ipatests/test_xmlrpc/test_old_permission_plugin.py | 8 |
2 files changed, 14 insertions, 5 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py index 949e5753b..cd4910bc1 100644 --- a/ipalib/plugins/baseldap.py +++ b/ipalib/plugins/baseldap.py @@ -235,7 +235,16 @@ def entry_from_entry(entry, newentry): def entry_to_dict(entry, **options): if options.get('raw', False): - result = dict(entry) + result = {} + for attr, value in entry.raw.iteritems(): + if entry.conn.get_type(attr) is not str: + value = list(value) + for (i, v) in enumerate(value): + try: + value[i] = v.decode('utf-8') + except UnicodeDecodeError: + pass + result[attr] = value else: result = dict((k.lower(), v) for (k, v) in entry.iteritems()) if options.get('all', False): diff --git a/ipatests/test_xmlrpc/test_old_permission_plugin.py b/ipatests/test_xmlrpc/test_old_permission_plugin.py index c9f7e8857..9de397d67 100644 --- a/ipatests/test_xmlrpc/test_old_permission_plugin.py +++ b/ipatests/test_xmlrpc/test_old_permission_plugin.py @@ -247,12 +247,12 @@ class test_old_permission(Declarative): 'cn': [permission1], 'objectclass': objectclasses.permission, 'member': [privilege1_dn], - 'aci': (u'(targetfilter = "(objectclass=posixaccount)")'+ + 'aci': [u'(targetfilter = "(objectclass=posixaccount)")'+ u'(version 3.0;acl "permission:testperm";' + u'allow (write) ' + u'groupdn = "ldap:///%s";)' % DN( ('cn', 'testperm'), ('cn', 'permissions'), - ('cn', 'pbac'), api.env.basedn)), + ('cn', 'pbac'), api.env.basedn)], 'ipapermright': [u'write'], 'ipapermbindruletype': [u'permission'], 'ipapermissiontype': [u'V2', u'SYSTEM'], @@ -360,8 +360,8 @@ class test_old_permission(Declarative): 'cn': [permission1], 'objectclass': objectclasses.permission, 'member': [privilege1_dn], - 'aci': u'(targetfilter = "(objectclass=posixaccount)")(version 3.0;acl "permission:testperm";allow (write) groupdn = "ldap:///%s";)' % \ - DN(('cn', 'testperm'), ('cn', 'permissions'), ('cn', 'pbac'), api.env.basedn), + 'aci': [u'(targetfilter = "(objectclass=posixaccount)")(version 3.0;acl "permission:testperm";allow (write) groupdn = "ldap:///%s";)' % \ + DN(('cn', 'testperm'), ('cn', 'permissions'), ('cn', 'pbac'), api.env.basedn)], 'ipapermright': [u'write'], 'ipapermbindruletype': [u'permission'], 'ipapermissiontype': [u'V2', u'SYSTEM'], |