summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Babinsky <mbabinsk@redhat.com>2015-07-23 10:44:08 +0200
committerTomas Babej <tbabej@redhat.com>2015-07-23 11:43:05 +0200
commit7ceaa8e26c3073f3ff3f253025177d49259072f0 (patch)
treeed9f93486d24730e30d7a9930ad54676c39fde66
parentcf59981cc2c6bb13c286188aa27cb10a49ff4a5e (diff)
downloadfreeipa-7ceaa8e26c3073f3ff3f253025177d49259072f0.tar.gz
freeipa-7ceaa8e26c3073f3ff3f253025177d49259072f0.tar.xz
freeipa-7ceaa8e26c3073f3ff3f253025177d49259072f0.zip
fix broken search for users by their manager
The patch fixes incorrect construction of search filter when using `ipa user-find` with '--manager' option. https://fedorahosted.org/freeipa/ticket/5146 Reviewed-By: Tomas Babej <tbabej@redhat.com>
-rw-r--r--ipalib/plugins/baseuser.py8
-rw-r--r--ipalib/plugins/stageuser.py7
-rw-r--r--ipalib/plugins/user.py4
3 files changed, 8 insertions, 11 deletions
diff --git a/ipalib/plugins/baseuser.py b/ipalib/plugins/baseuser.py
index 9068ef0fd..bd66cf5a3 100644
--- a/ipalib/plugins/baseuser.py
+++ b/ipalib/plugins/baseuser.py
@@ -561,6 +561,14 @@ class baseuser_find(LDAPSearch):
"""
Prototype command plugin to be implemented by real plugin
"""
+ def args_options_2_entry(self, *args, **options):
+ newoptions = {}
+ self.common_enhance_options(newoptions, **options)
+ options.update(newoptions)
+
+ return super(baseuser_find, self).args_options_2_entry(
+ *args, **options)
+
def common_enhance_options(self, newoptions, **options):
# assure the manager attr is a dn, not just a bare uid
manager = options.get('manager')
diff --git a/ipalib/plugins/stageuser.py b/ipalib/plugins/stageuser.py
index 415dc6a3b..c0c4c87d7 100644
--- a/ipalib/plugins/stageuser.py
+++ b/ipalib/plugins/stageuser.py
@@ -449,13 +449,6 @@ class stageuser_find(baseuser_find):
member_attributes = ['memberof']
has_output_params = baseuser_find.has_output_params + stageuser_output_params
- def execute(self, *args, **options):
- newoptions = {}
- self.common_enhance_options(newoptions, **options)
- options.update(newoptions)
-
- return super(stageuser_find, self).execute(self, *args, **options)
-
def pre_callback(self, ldap, filter, attrs_list, base_dn, scope, *keys, **options):
assert isinstance(base_dn, DN)
diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py
index 9bd7bf7e5..206b380ef 100644
--- a/ipalib/plugins/user.py
+++ b/ipalib/plugins/user.py
@@ -730,10 +730,6 @@ class user_find(baseuser_find):
return ("(&(objectclass=posixaccount)(krbprincipalname=%s))"%\
getattr(context, 'principal'), base_dn, scope)
- newoptions = {}
- self.common_enhance_options(newoptions, **options)
- options.update(newoptions)
-
preserved = options.get('preserved', False)
if preserved is None:
base_dn = self.api.env.basedn