[Freeipa-devel] [PATCH] quick user search ui
Kevin McCarthy
kmccarth at redhat.com
Fri Aug 17 17:52:24 UTC 2007
Quick mockup of user search.
Changes funcs.py to now throw exception on no results.
Also contains a hack to update cn when givenName and sn are modified
(until we decide what our policy on that is).
-Kevin
-------------- next part --------------
# HG changeset patch
# User Kevin McCarthy <kmccarth at redhat.com>
# Date 1187373536 25200
# Node ID 9da05dd9abe18fdda85b1ca24a2ca806fb65e0c1
# Parent 78200f913e5cc38696d50abfe90a4af949aa15f1
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.
diff -r 78200f913e5c -r 9da05dd9abe1 ipa-server/ipa-gui/ipagui/controllers.py
--- a/ipa-server/ipa-gui/ipagui/controllers.py Fri Aug 17 11:39:45 2007 -0400
+++ b/ipa-server/ipa-gui/ipagui/controllers.py Fri Aug 17 10:58:56 2007 -0700
@@ -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 -r 78200f913e5c -r 9da05dd9abe1 ipa-server/ipa-gui/ipagui/templates/userlist.kid
--- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid Fri Aug 17 11:39:45 2007 -0400
+++ b/ipa-server/ipa-gui/ipagui/templates/userlist.kid Fri Aug 17 10:58:56 2007 -0700
@@ -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 -r 78200f913e5c -r 9da05dd9abe1 ipa-server/xmlrpc-server/funcs.py
--- a/ipa-server/xmlrpc-server/funcs.py Fri Aug 17 11:39:45 2007 -0400
+++ b/ipa-server/xmlrpc-server/funcs.py Fri Aug 17 10:58:56 2007 -0700
@@ -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:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2228 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20070817/f25052af/attachment.bin>
More information about the Freeipa-devel
mailing list