diff options
-rw-r--r-- | ipalib/plugins/permission.py | 7 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_permission_plugin.py | 32 |
2 files changed, 39 insertions, 0 deletions
diff --git a/ipalib/plugins/permission.py b/ipalib/plugins/permission.py index 2cf42bbc0..9bf17944c 100644 --- a/ipalib/plugins/permission.py +++ b/ipalib/plugins/permission.py @@ -387,10 +387,17 @@ class permission_find(LDAPSearch): del opts['raw'] except: pass + if 'cn' in options: + # the attribute for name is difference in acis + opts['aciname'] = options['cn'] aciresults = self.api.Command.aci_find(*args, **opts) truncated = truncated or aciresults['truncated'] results = aciresults['result'] + if 'cn' in options: + # there is an option/param overlap if --name is in the + # search list, we don't need cn anymore so drop it. + options.pop('cn') for aci in results: found = False if 'permission' in aci: diff --git a/tests/test_xmlrpc/test_permission_plugin.py b/tests/test_xmlrpc/test_permission_plugin.py index 14cfcbc78..54d155aca 100644 --- a/tests/test_xmlrpc/test_permission_plugin.py +++ b/tests/test_xmlrpc/test_permission_plugin.py @@ -227,6 +227,38 @@ class test_permission(Declarative): dict( + desc='Search for %r using --name' % permission1, + command=('permission_find', [], {'cn': permission1}), + expected=dict( + count=1, + truncated=False, + summary=u'1 permission matched', + result=[ + { + 'dn': lambda x: DN(x) == permission1_dn, + 'cn': [permission1], + 'member_privilege': [privilege1], + 'type': u'user', + 'permissions': [u'write'], + }, + ], + ), + ), + + + dict( + desc='Search for non-existence permission using --name', + command=('permission_find', [], {'cn': u'notfound'}), + expected=dict( + count=0, + truncated=False, + summary=u'0 permissions matched', + result=[], + ), + ), + + + dict( desc='Search for %r' % privilege1, command=('permission_find', [privilege1], {}), expected=dict( |