diff options
author | Martin Kosek <mkosek@redhat.com> | 2013-01-10 12:13:39 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2013-01-11 10:51:42 +0100 |
commit | dfa67dfa2a65a2151563f3c6b8beddfb0148be8a (patch) | |
tree | ba38b22660c009d196df50d5651384f24743d4f0 | |
parent | 2ebfd7a677ee9db43009a1b6c98a2f47bf5977f0 (diff) | |
download | freeipa.git-dfa67dfa2a65a2151563f3c6b8beddfb0148be8a.tar.gz freeipa.git-dfa67dfa2a65a2151563f3c6b8beddfb0148be8a.tar.xz freeipa.git-dfa67dfa2a65a2151563f3c6b8beddfb0148be8a.zip |
permission-find no longer crashes with --targetgroup
Target Group parameter was not processed correctly which caused
permission-find to always crash when this search parameter was used.
Fix the crash and create a unit test case to avoid future regression.
https://fedorahosted.org/freeipa/ticket/3335
-rw-r--r-- | ipalib/plugins/aci.py | 5 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_permission_plugin.py | 23 |
2 files changed, 26 insertions, 2 deletions
diff --git a/ipalib/plugins/aci.py b/ipalib/plugins/aci.py index 702ae010..24be1745 100644 --- a/ipalib/plugins/aci.py +++ b/ipalib/plugins/aci.py @@ -815,8 +815,9 @@ class aci_find(crud.Search): found = False if 'target' in a.target: target = a.target['target']['expression'] - if api.env.container_group in target: - targetdn = DN(target.replace('ldap:///','')) + targetdn = DN(target.replace('ldap:///','')) + group_container_dn = DN(api.env.container_group, api.env.basedn) + if targetdn.endswith(group_container_dn): try: cn = targetdn[0]['cn'] except (IndexError, KeyError): diff --git a/tests/test_xmlrpc/test_permission_plugin.py b/tests/test_xmlrpc/test_permission_plugin.py index 4fe1eef4..4a81f974 100644 --- a/tests/test_xmlrpc/test_permission_plugin.py +++ b/tests/test_xmlrpc/test_permission_plugin.py @@ -698,6 +698,29 @@ class test_permission(Declarative): dict( + desc='Search using --targetgroup', + command=('permission_find', [], {'targetgroup': u'ipausers'}), + expected=dict( + count=1, + truncated=False, + summary=u'1 permission matched', + result=[ + { + 'dn': DN(('cn','Add user to default group'), + api.env.container_permission, api.env.basedn), + 'cn': [u'Add user to default group'], + 'member_privilege': [u'User Administrators'], + 'attrs': [u'member'], + 'targetgroup': u'ipausers', + 'memberindirect_role': [u'User Administrator'], + 'permissions': [u'write'] + } + ], + ), + ), + + + dict( desc='Delete %r' % permission1_renamed_ucase, command=('permission_del', [permission1_renamed_ucase], {}), expected=dict( |