diff options
author | Martin Kosek <mkosek@redhat.com> | 2012-12-19 15:38:52 +0100 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-12-19 16:32:15 +0100 |
commit | 86e56b91257efa8d7c8a388f2a8a14d0adf367e5 (patch) | |
tree | cc3009d726b580f47ab22f86585944e134c1eec1 | |
parent | e8cb869046f7ad9e9621188415a9e2b2de9ab577 (diff) | |
download | freeipa-86e56b91257efa8d7c8a388f2a8a14d0adf367e5.tar.gz freeipa-86e56b91257efa8d7c8a388f2a8a14d0adf367e5.tar.xz freeipa-86e56b91257efa8d7c8a388f2a8a14d0adf367e5.zip |
Fix delegation-find command --group handling
A wrong way of handling --group DN object caused Internal Error
for this command. Fix that and also provide unit tests to avoid
another regression.
https://fedorahosted.org/freeipa/ticket/3311
-rw-r--r-- | ipalib/plugins/aci.py | 2 | ||||
-rw-r--r-- | tests/test_xmlrpc/test_delegation_plugin.py | 40 |
2 files changed, 41 insertions, 1 deletions
diff --git a/ipalib/plugins/aci.py b/ipalib/plugins/aci.py index 7d5bf504c..702ae0101 100644 --- a/ipalib/plugins/aci.py +++ b/ipalib/plugins/aci.py @@ -801,7 +801,7 @@ class aci_find(crud.Search): groupdn = a.bindrule['expression'] groupdn = DN(groupdn.replace('ldap:///','')) try: - cn = groupdn[0]['cn'].value + cn = groupdn[0]['cn'] except (IndexError, KeyError): cn = None if cn is None or cn != kw['group']: diff --git a/tests/test_xmlrpc/test_delegation_plugin.py b/tests/test_xmlrpc/test_delegation_plugin.py index a31fed3ed..bc3b96a27 100644 --- a/tests/test_xmlrpc/test_delegation_plugin.py +++ b/tests/test_xmlrpc/test_delegation_plugin.py @@ -178,6 +178,46 @@ class test_delegation(Declarative): dict( + desc='Search for %r using --group filter' % delegation1, + command=('delegation_find', [delegation1], {'group': u'editors'}), + expected=dict( + count=1, + truncated=False, + summary=u'1 delegation matched', + result=[ + { + 'attrs': [u'street', u'c', u'l', u'st', u'postalcode'], + 'permissions': [u'write'], + 'aciname': delegation1, + 'group': u'editors', + 'memberof': member1, + }, + ], + ), + ), + + + dict( + desc='Search for %r using --membergroup filter' % delegation1, + command=('delegation_find', [delegation1], {'memberof': member1}), + expected=dict( + count=1, + truncated=False, + summary=u'1 delegation matched', + result=[ + { + 'attrs': [u'street', u'c', u'l', u'st', u'postalcode'], + 'permissions': [u'write'], + 'aciname': delegation1, + 'group': u'editors', + 'memberof': member1, + }, + ], + ), + ), + + + dict( desc='Search for %r with --pkey-only' % delegation1, command=('delegation_find', [delegation1], {'pkey_only' : True}), expected=dict( |