summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ipalib/plugins/baseldap.py9
-rw-r--r--ipalib/plugins/user.py5
-rw-r--r--tests/test_xmlrpc/test_user_plugin.py14
3 files changed, 21 insertions, 7 deletions
diff --git a/ipalib/plugins/baseldap.py b/ipalib/plugins/baseldap.py
index 044e00e08..4b80c6d06 100644
--- a/ipalib/plugins/baseldap.py
+++ b/ipalib/plugins/baseldap.py
@@ -256,6 +256,7 @@ class LDAPObject(Object):
search_attributes = []
search_attributes_config = None
default_attributes = []
+ search_display_attributes = [] # attributes displayed in LDAPSearch
hidden_attributes = ['objectclass', 'aci']
# set rdn_attribute only if RDN attribute differs from primary key!
rdn_attribute = ''
@@ -1362,11 +1363,15 @@ class LDAPSearch(CallbackInterface, crud.Search):
search_kw = self.args_options_2_entry(**options)
+ if self.obj.search_display_attributes:
+ defattrs = self.obj.search_display_attributes
+ else:
+ defattrs = self.obj.default_attributes
if options.get('all', False):
- attrs_list = ['*'] + self.obj.default_attributes
+ attrs_list = ['*'] + defattrs
else:
attrs_list = list(
- set(self.obj.default_attributes + search_kw.keys())
+ set(defattrs + search_kw.keys())
)
if self.obj.search_attributes:
diff --git a/ipalib/plugins/user.py b/ipalib/plugins/user.py
index efd9e278a..a058ff7ed 100644
--- a/ipalib/plugins/user.py
+++ b/ipalib/plugins/user.py
@@ -86,6 +86,11 @@ class user(LDAPObject):
'telephonenumber', 'title', 'memberof', 'nsaccountlock',
'memberofindirect',
]
+ search_display_attributes = [
+ 'uid', 'givenname', 'sn', 'homedirectory', 'loginshell',
+ 'mail', 'telephonenumber', 'title', 'nsaccountlock',
+ 'uidnumber', 'gidnumber',
+ ]
uuid_attribute = 'ipauniqueid'
attribute_members = {
'memberof': ['group', 'netgroup', 'role'],
diff --git a/tests/test_xmlrpc/test_user_plugin.py b/tests/test_xmlrpc/test_user_plugin.py
index 4d9970219..597b3b9ba 100644
--- a/tests/test_xmlrpc/test_user_plugin.py
+++ b/tests/test_xmlrpc/test_user_plugin.py
@@ -184,8 +184,9 @@ class test_user(Declarative):
loginshell=[u'/bin/sh'],
sn=[u'User1'],
uid=[user1],
- memberof_group=[u'ipausers'],
nsaccountlock=[u'False'],
+ uidnumber=[fuzzy_digits],
+ gidnumber=[fuzzy_digits],
),
],
summary=u'1 user matched',
@@ -208,8 +209,9 @@ class test_user(Declarative):
loginshell=[u'/bin/bash'],
sn=[u'Administrator'],
uid=[u'admin'],
- memberof_group=[u'admins'],
nsaccountlock=[u'False'],
+ uidnumber=[fuzzy_digits],
+ gidnumber=[fuzzy_digits],
),
dict(
dn=u'uid=tuser1,cn=users,cn=accounts,' + api.env.basedn,
@@ -218,8 +220,9 @@ class test_user(Declarative):
loginshell=[u'/bin/sh'],
sn=[u'User1'],
uid=[user1],
- memberof_group=[u'ipausers'],
nsaccountlock=[u'False'],
+ uidnumber=[fuzzy_digits],
+ gidnumber=[fuzzy_digits],
),
],
summary=u'2 users matched',
@@ -242,8 +245,9 @@ class test_user(Declarative):
loginshell=[u'/bin/bash'],
sn=[u'Administrator'],
uid=[u'admin'],
- memberof_group=[u'admins'],
nsaccountlock=[u'False'],
+ uidnumber=[fuzzy_digits],
+ gidnumber=[fuzzy_digits],
),
],
summary=u'1 user matched',
@@ -459,7 +463,7 @@ class test_user(Declarative):
uid=[user2],
memberof_group=[u'ipausers'],
nsaccountlock=[u'False'],
- manager=user1,
+ manager=[user1],
),
summary=u'Modified user "%s"' % user2,
value=user2,