summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-08-17 10:58:56 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-08-17 10:58:56 -0700
commit8a0c3cb945acc7405cf66e730a55e42fe5effca3 (patch)
tree7c74bca55bc64c6ac206134049c16a29a3c4abcc
parent3184b5cd9760ddf71600f227efb909ab0a8252a7 (diff)
downloadfreeipa-8a0c3cb945acc7405cf66e730a55e42fe5effca3.tar.gz
freeipa-8a0c3cb945acc7405cf66e730a55e42fe5effca3.tar.xz
freeipa-8a0c3cb945acc7405cf66e730a55e42fe5effca3.zip
Change userlist into a quick search form.
Add hack to update cn using givenname+sn (for now). Change funcs.find_users() to not error if no results.
-rw-r--r--ipa-server/ipa-gui/ipagui/controllers.py16
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/userlist.kid50
-rw-r--r--ipa-server/xmlrpc-server/funcs.py3
3 files changed, 49 insertions, 20 deletions
diff --git a/ipa-server/ipa-gui/ipagui/controllers.py b/ipa-server/ipa-gui/ipagui/controllers.py
index dd2ecffb7..ae8b088b7 100644
--- a/ipa-server/ipa-gui/ipagui/controllers.py
+++ b/ipa-server/ipa-gui/ipagui/controllers.py
@@ -134,6 +134,11 @@ class Root(controllers.RootController):
set_ldap_value(new_user, 'sn', kw.get('sn'))
set_ldap_value(new_user, 'mail', kw.get('mail'))
set_ldap_value(new_user, 'telephonenumber', kw.get('telephonenumber'))
+ #
+ # this is a hack until we decide on the policy for names/cn/sn/givenName
+ #
+ set_ldap_value(new_user, 'sn',
+ "%s %s" % (kw.get('givenname'), kw.get('sn')))
orig_user = to_ldap_hash(orig_user)
new_user = to_ldap_hash(new_user)
@@ -148,11 +153,14 @@ class Root(controllers.RootController):
@expose("ipagui.templates.userlist")
- @paginate('users', limit=3, allow_limit_override=True)
- def userlist(self):
+ def userlist(self, **kw):
"""Retrieve a list of all users and display them in one huge list"""
- users = client.get_all_users()
- return dict(users=users)
+ users = None
+ uid = kw.get('uid')
+ if uid != None and len(uid) > 0:
+ users = client.find_users("*%s*" % uid)
+
+ return dict(users=users, fields=forms.user.UserFields())
@expose("ipagui.templates.usershow")
diff --git a/ipa-server/ipa-gui/ipagui/templates/userlist.kid b/ipa-server/ipa-gui/ipagui/templates/userlist.kid
index 7b5667fb5..f8535f351 100644
--- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/userlist.kid
@@ -6,21 +6,41 @@
<title>User Listing</title>
</head>
<body>
- <fieldset>
- <legend>People List</legend>
- <div>
- Page:
- <span py:for="page in tg.paginate.pages">
- <a py:if="page != tg.paginate.current_page"
- href="${tg.paginate.get_href(page)}">${page}</a>
- <b py:if="page == tg.paginate.current_page">${page}</b>
- </span>
- <p/>
- <span py:for="user in users">
- <a href="${tg.url('/usershow',uid=user.uid)}">${user.cn}</a>
- <br/>
- </span>
+ <div id="search">
+ <form action="${tg.url('/userlist')}" method="post">
+ Search by uid:
+ <input type="text" name="uid" />
+ <input type="submit" />
+ </form>
+ </div>
+ <div py:if='users != None'>
+ <h2>Results</h2>
+ <table py:if='len(users) > 0'>
+ <tr>
+ <th>
+ <label class="fieldlabel" py:content="fields.uid.label" />
+ </th>
+ <th>
+ Name
+ </th>
+ </tr>
+ <tr py:for="user in users">
+ <td>
+ <a href="${tg.url('/usershow',uid=user.uid)}">${user.uid}</a>
+ </td>
+ <td>
+ ${user.cn}
+ </td>
+ </tr>
+ </table>
+ <div py:if='len(users) == 0'>
+ No results found.
</div>
- </fieldset>
+ </div>
+
+ <!-- fix for visual artifact of my crappy ui -->
+ <div>
+ <br /><br /><br /><br />
+ </div>
</body>
</html>
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py
index ec099badc..df8bceaa7 100644
--- a/ipa-server/xmlrpc-server/funcs.py
+++ b/ipa-server/xmlrpc-server/funcs.py
@@ -337,7 +337,8 @@ class IPAServer:
except ldap.LDAPError, e:
raise xmlrpclib.Fault(1, e)
except ipaserver.ipaldap.NoSuchEntryError:
- raise xmlrpclib.Fault(2, "No such user")
+ results = []
+ # raise xmlrpclib.Fault(2, "No such user")
users = []
for u in results: