From 8183e2c94b7732f2e19cd257489609d0863c2124 Mon Sep 17 00:00:00 2001 From: Martin Kosek Date: Dec 19 2012 15:32:31 +0000 Subject: 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 --- diff --git a/ipalib/plugins/aci.py b/ipalib/plugins/aci.py index 7d5bf50..702ae01 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 a31fed3..bc3b96a 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(