summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kosek <mkosek@redhat.com>2012-12-19 15:38:52 +0100
committerMartin Kosek <mkosek@redhat.com>2012-12-19 16:32:31 +0100
commit8183e2c94b7732f2e19cd257489609d0863c2124 (patch)
tree5723a6701df5c563a7aa1271ad0a28c1cd09ec1e
parentece9ac8e1b421f3e05d39545155a86f9446ff827 (diff)
downloadfreeipa-8183e2c94b7732f2e19cd257489609d0863c2124.tar.gz
freeipa-8183e2c94b7732f2e19cd257489609d0863c2124.tar.xz
freeipa-8183e2c94b7732f2e19cd257489609d0863c2124.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.py2
-rw-r--r--tests/test_xmlrpc/test_delegation_plugin.py40
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(