summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin McCarthy <kmccarth@redhat.com>2007-09-18 14:58:30 -0700
committerKevin McCarthy <kmccarth@redhat.com>2007-09-18 14:58:30 -0700
commit6b3d1e85da1397324fa7e8dc25706129ff8ed6fc (patch)
treebf15328822d13b8b2379ba42660be9d10d2d7f6c
parentc4998d3902ab17e73d29255db38f9c4cc33863d6 (diff)
downloadfreeipa-6b3d1e85da1397324fa7e8dc25706129ff8ed6fc.tar.gz
freeipa-6b3d1e85da1397324fa7e8dc25706129ff8ed6fc.tar.xz
freeipa-6b3d1e85da1397324fa7e8dc25706129ff8ed6fc.zip
Add client-side search limit parameter for user search.
Limit editgroup user ajax search. Minor UI cleanup for editgroup.
-rw-r--r--ipa-python/ipaclient.py4
-rw-r--r--ipa-python/rpcclient.py4
-rw-r--r--ipa-server/ipa-gui/ipagui/controllers.py6
-rw-r--r--ipa-server/ipa-gui/ipagui/static/css/style.css10
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/groupeditform.kid8
-rw-r--r--ipa-server/ipa-gui/ipagui/templates/userlistajax.kid11
-rw-r--r--ipa-server/xmlrpc-server/funcs.py6
7 files changed, 32 insertions, 17 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py
index fcfb29f1d..4e293b013 100644
--- a/ipa-python/ipaclient.py
+++ b/ipa-python/ipaclient.py
@@ -93,11 +93,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 --git a/ipa-python/rpcclient.py b/ipa-python/rpcclient.py
index e0d6e2ee7..96c8976c8 100644
--- a/ipa-python/rpcclient.py
+++ b/ipa-python/rpcclient.py
@@ -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 --git a/ipa-server/ipa-gui/ipagui/controllers.py b/ipa-server/ipa-gui/ipagui/controllers.py
index fd661eebb..dcf65530c 100644
--- a/ipa-server/ipa-gui/ipagui/controllers.py
+++ b/ipa-server/ipa-gui/ipagui/controllers.py
@@ -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 --git a/ipa-server/ipa-gui/ipagui/static/css/style.css b/ipa-server/ipa-gui/ipagui/static/css/style.css
index 6199affbc..b3ed830d1 100644
--- a/ipa-server/ipa-gui/ipagui/static/css/style.css
+++ b/ipa-server/ipa-gui/ipagui/static/css/style.css
@@ -148,6 +148,16 @@ body {
text-align: right;
}
+.floatlist {
+ float: right;
+ width: 50%;
+}
+
+.floatheader {
+ color: #885555;
+ font-weight: bold;
+}
+
.small {
font-size: small;
}
diff --git a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
index 5c2fea744..9e388ee70 100644
--- a/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/groupeditform.kid
@@ -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 --git a/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid b/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid
index a2d6a921d..e62fb8b91 100644
--- a/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid
+++ b/ipa-server/ipa-gui/ipagui/templates/userlistajax.kid
@@ -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 &lt; 0">
+ $('search-results-count').appendChild(document.createTextNode(
+ " (truncated)"));
</script>
</div>
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py
index 66fabf4be..7d61f130e 100644
--- a/ipa-server/xmlrpc-server/funcs.py
+++ b/ipa-server/xmlrpc-server/funcs.py
@@ -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: