[Freeipa-devel] [PATCH] user search client-side limit
Kevin McCarthy
kmccarth at redhat.com
Tue Sep 18 21:57:18 UTC 2007
Add searchlimit parameter to userlist function.
Add limit for the editgroup ajax search.
Minor UI clean for editgroup page.
-Kevin
-------------- next part --------------
# HG changeset patch
# User Kevin McCarthy <kmccarth at redhat.com>
# Date 1190152710 25200
# Node ID 88832dc9643b967ffed0aa4377512490accfe0e4
# Parent 364d56d319c1f6ec629d00a7b53585a534ed3962
Add client-side search limit parameter for user search.
Limit editgroup user ajax search.
Minor UI cleanup for editgroup.
diff -r 364d56d319c1 -r 88832dc9643b ipa-python/ipaclient.py
--- a/ipa-python/ipaclient.py Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-python/ipaclient.py Tue Sep 18 14:58:30 2007 -0700
@@ -91,11 +91,11 @@ class IPAClient:
result = self.transport.get_add_schema()
return result
- def find_users(self, criteria, sattrs=None):
+ def find_users(self, criteria, sattrs=None, searchlimit=0):
"""Return a list: counter followed by a User object for each user that
matches the criteria. If the results are truncated, counter will
be set to -1"""
- result = self.transport.find_users(criteria, sattrs)
+ result = self.transport.find_users(criteria, sattrs, searchlimit)
counter = result[0]
users = [counter]
diff -r 364d56d319c1 -r 88832dc9643b ipa-python/rpcclient.py
--- a/ipa-python/rpcclient.py Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-python/rpcclient.py Tue Sep 18 14:58:30 2007 -0700
@@ -150,7 +150,7 @@ class RPCClient:
return ipautil.unwrap_binary_data(result)
- def find_users (self, criteria, sattrs=None):
+ def find_users (self, criteria, sattrs=None, searchlimit=0):
"""Return a list: counter followed by a User object for each user that
matches the criteria. If the results are truncated, counter will
be set to -1"""
@@ -160,7 +160,7 @@ class RPCClient:
# None values are not allowed in XML-RPC
if sattrs is None:
sattrs = "__NONE__"
- result = server.find_users(criteria, sattrs)
+ result = server.find_users(criteria, sattrs, searchlimit)
except xmlrpclib.Fault, fault:
raise ipaerror.gen_exception(fault.faultCode, fault.faultString)
except socket.error, (value, msg):
diff -r 364d56d319c1 -r 88832dc9643b ipa-server/ipa-gui/ipagui/controllers.py
--- a/ipa-server/ipa-gui/ipagui/controllers.py Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/controllers.py Tue Sep 18 14:58:30 2007 -0700
@@ -214,16 +214,18 @@ class Root(controllers.RootController):
This method is used for ajax calls."""
client.set_principal(identity.current.user_name)
users = []
+ searchlimit = 100
uid = kw.get('uid')
if uid != None and len(uid) > 0:
try:
- users = client.find_users(uid.encode('utf-8'))
+ users = client.find_users(uid.encode('utf-8'), None, searchlimit)
counter = users[0]
users = users[1:]
except ipaerror.IPAError, e:
turbogears.flash("User list failed: " + str(e))
- return dict(users=users, uid=uid, fields=forms.user.UserFields())
+ return dict(users=users, uid=uid, fields=forms.user.UserFields(),
+ counter=counter)
@expose("ipagui.templates.usershow")
diff -r 364d56d319c1 -r 88832dc9643b ipa-server/ipa-gui/ipagui/static/css/style.css
--- a/ipa-server/ipa-gui/ipagui/static/css/style.css Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/static/css/style.css Tue Sep 18 14:58:30 2007 -0700
@@ -146,6 +146,16 @@ body {
.formtable th {
width: 20%;
text-align: right;
+}
+
+.floatlist {
+ float: right;
+ width: 50%;
+}
+
+.floatheader {
+ color: #885555;
+ font-weight: bold;
}
.small {
diff -r 364d56d319c1 -r 88832dc9643b ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
--- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid Tue Sep 18 14:58:30 2007 -0700
@@ -200,8 +200,8 @@
<div>
<div class="formsection">Group Members</div>
- <div style="float:right; width:50%">
- <div>To Remove:</div>
+ <div class="floatlist">
+ <div class="floatheader">To Remove:</div>
<div id="delmembers">
</div>
</div>
@@ -229,8 +229,8 @@
<div style="clear:both">
<div class="formsection">Add Persons</div>
- <div style="float:right; width:50%">
- <div>To Add:</div>
+ <div class="floatlist">
+ <div class="floatheader">To Add:</div>
<div id="newmembers">
</div>
</div>
diff -r 364d56d319c1 -r 88832dc9643b ipa-server/ipa-gui/ipagui/templates/userlistajax.kid
--- a/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid Tue Sep 18 14:58:30 2007 -0700
@@ -23,11 +23,14 @@
</div>
<script type="text/javascript">
if (results_counter == 0) {
- $('search-results-count').appendChild(document.createTextNode(
- "No results found for " + search_string));
+ var message = "No results found for " + search_string;
} else {
- $('search-results-count').appendChild(document.createTextNode(
- "" + results_counter + " results found:"));
+ var message = results_counter + " results found:";
}
+ $('search-results-count').appendChild(document.createTextNode(message));
+ </script>
+ <script py:if="counter < 0">
+ $('search-results-count').appendChild(document.createTextNode(
+ " (truncated)"));
</script>
</div>
diff -r 364d56d319c1 -r 88832dc9643b ipa-server/xmlrpc-server/funcs.py
--- a/ipa-server/xmlrpc-server/funcs.py Tue Sep 18 10:54:53 2007 -0700
+++ b/ipa-server/xmlrpc-server/funcs.py Tue Sep 18 14:58:30 2007 -0700
@@ -413,7 +413,7 @@ class IPAServer:
return users
- def find_users (self, criteria, sattrs=None, opts=None):
+ def find_users (self, criteria, sattrs=None, searchlimit=0, opts=None):
"""Returns a list: counter followed by the results.
If the results are truncated, counter will be set to -1."""
# Assume the list of fields to search will come from a central
@@ -435,13 +435,13 @@ class IPAServer:
try:
try:
exact_results = conn.getListAsync(self.basedn, self.scope,
- exact_match_filter, sattrs)
+ exact_match_filter, sattrs, 0, None, None, -1, searchlimit)
except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND):
exact_results = [0]
try:
partial_results = conn.getListAsync(self.basedn, self.scope,
- partial_match_filter, sattrs)
+ partial_match_filter, sattrs, 0, None, None, -1, searchlimit)
except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND):
partial_results = [0]
finally:
-------------- 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/20070918/5411c5f9/attachment.bin>
More information about the Freeipa-devel
mailing list