diff options
author | Kevin McCarthy <kmccarth@redhat.com> | 2007-09-25 11:25:48 -0700 |
---|---|---|
committer | Kevin McCarthy <kmccarth@redhat.com> | 2007-09-25 11:25:48 -0700 |
commit | 24c22a2ebc3852e880c18b7c572954f0f99ada1d (patch) | |
tree | 5c1eb4d2dee88338fc04f808ef57ebfaf1429dc8 | |
parent | 1725397a53ad133001b3c558904302cc91832b77 (diff) | |
download | freeipa-24c22a2ebc3852e880c18b7c572954f0f99ada1d.tar.gz freeipa-24c22a2ebc3852e880c18b7c572954f0f99ada1d.tar.xz freeipa-24c22a2ebc3852e880c18b7c572954f0f99ada1d.zip |
Misc small fixes:
- Members of groups are clickable
- Combine name and uid into a single column in find users
- Remove license plate from searching
- Mailto links on user emails
- Add timelimit to finds. This is experimental...
- Fix usersearch to only search on objectClass=Person
- Change search to use get parameter
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/grouplist.kid | 2 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/groupshow.kid | 4 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/userlist.kid | 20 | ||||
-rw-r--r-- | ipa-server/ipa-gui/ipagui/templates/usershow.kid | 2 | ||||
-rw-r--r-- | ipa-server/ipaserver/ipaldap.py | 3 | ||||
-rw-r--r-- | ipa-server/xmlrpc-server/funcs.py | 30 |
6 files changed, 37 insertions, 24 deletions
diff --git a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid index a63beb82..c867ecba 100644 --- a/ipa-server/ipa-gui/ipagui/templates/grouplist.kid +++ b/ipa-server/ipa-gui/ipagui/templates/grouplist.kid @@ -7,7 +7,7 @@ </head> <body> <div id="search"> - <form action="${tg.url('/grouplist')}" method="post"> + <form action="${tg.url('/grouplist')}" method="get"> <input id="criteria" type="text" name="criteria" value="${criteria}" /> <input type="submit" value="Find Groups"/> </form> diff --git a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid index 48fd3663..2df5b220 100644 --- a/ipa-server/ipa-gui/ipagui/templates/groupshow.kid +++ b/ipa-server/ipa-gui/ipagui/templates/groupshow.kid @@ -37,8 +37,10 @@ <?python member_name = "%s %s" % (member.get('givenname', ''), member.get('sn', '')) + member_uid = member.get('uid') ?> - ${member_name} (${member.get('uid')}) + <a href="${tg.url('usershow', uid=member_uid)}" + >${member_name}</a> (${member_uid}) </div> <br/> diff --git a/ipa-server/ipa-gui/ipagui/templates/userlist.kid b/ipa-server/ipa-gui/ipagui/templates/userlist.kid index be73c67f..c78199ef 100644 --- a/ipa-server/ipa-gui/ipagui/templates/userlist.kid +++ b/ipa-server/ipa-gui/ipagui/templates/userlist.kid @@ -8,7 +8,7 @@ <body> <script type="text/javascript" charset="utf-8" src="${tg.url('/static/javascript/tablekit.js')}"></script> <div id="search"> - <form action="${tg.url('/userlist')}" method="post"> + <form action="${tg.url('/userlist')}" method="get"> <input id="uid" type="text" name="uid" value="${uid}" /> <input type="submit" value="Find People"/> </form> @@ -22,10 +22,7 @@ <thead> <tr> <th> - ${fields.uid.label} - </th> - <th> - Name + Person </th> <th> Phone @@ -36,18 +33,14 @@ <th> Title </th> - <th> - License Plate - </th> </tr> </thead> <tbody> <tr py:for="user in users"> <td> - <a href="${tg.url('/usershow',uid=user.uid)}">${user.uid}</a> - </td> - <td> - ${user.givenName} ${user.sn} + <a href="${tg.url('/usershow',uid=user.uid)}" + >${user.givenName} ${user.sn}</a> + (${user.uid}) </td> <td> ${user.telephoneNumber} @@ -58,9 +51,6 @@ <td> ${user.title} </td> - <td> - ${user.carLicense} - </td> </tr> </tbody> </table> diff --git a/ipa-server/ipa-gui/ipagui/templates/usershow.kid b/ipa-server/ipa-gui/ipagui/templates/usershow.kid index a71f683d..ce83f594 100644 --- a/ipa-server/ipa-gui/ipagui/templates/usershow.kid +++ b/ipa-server/ipa-gui/ipagui/templates/usershow.kid @@ -70,7 +70,7 @@ else: <th> <label class="fieldlabel" py:content="fields.mail.label" />: </th> - <td>${user.get("mail")}</td> + <td><a href="mailto:${user.get('mail')}">${user.get("mail")}</a></td> </tr> <tr> <th> diff --git a/ipa-server/ipaserver/ipaldap.py b/ipa-server/ipaserver/ipaldap.py index 3dcb836d..b05201cb 100644 --- a/ipa-server/ipaserver/ipaldap.py +++ b/ipa-server/ipaserver/ipaldap.py @@ -343,7 +343,8 @@ class IPAdmin(SimpleLDAPObject): for result in result_list: entries.append(result) type, result_list = self.result(msgid, 0) - except (ldap.ADMINLIMIT_EXCEEDED, ldap.SIZELIMIT_EXCEEDED), e: + except (ldap.ADMINLIMIT_EXCEEDED, ldap.SIZELIMIT_EXCEEDED, + ldap.TIMELIMIT_EXCEEDED), e: partial = 1 except ldap.LDAPError, e: raise ipaerror.gen_exception(ipaerror.LDAP_DATABASE_ERROR, None, e) diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py index 604839e4..8506111b 100644 --- a/ipa-server/xmlrpc-server/funcs.py +++ b/ipa-server/xmlrpc-server/funcs.py @@ -451,10 +451,14 @@ class IPAServer: 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.""" + + # TODO - retrieve from config + timelimit = 2 + # Assume the list of fields to search will come from a central # configuration repository. A good format for that would be # a comma-separated list of fields - search_fields_conf_str = "uid,givenName,sn,telephoneNumber,ou,carLicense,title" + search_fields_conf_str = "uid,givenName,sn,telephoneNumber,ou,title" search_fields = string.split(search_fields_conf_str, ",") criteria = self.__safe_filter(criteria) @@ -466,17 +470,27 @@ class IPAServer: (exact_match_filter, partial_match_filter) = self.__generate_match_filters( search_fields, criteria_words) + # + # further constrain search to just the objectClass + # TODO - need to parameterize this into generate_match_filters, + # and work it into the field-specification search feature + # + exact_match_filter = "(&(objectClass=person)%s)" % exact_match_filter + partial_match_filter = "(&(objectClass=person)%s)" % partial_match_filter + conn = self.getConnection(opts) try: try: exact_results = conn.getListAsync(self.basedn, self.scope, - exact_match_filter, sattrs, 0, None, None, -1, searchlimit) + exact_match_filter, sattrs, 0, None, None, timelimit, + 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, 0, None, None, -1, searchlimit) + partial_match_filter, sattrs, 0, None, None, timelimit, + searchlimit) except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): partial_results = [0] finally: @@ -654,6 +668,10 @@ class IPAServer: """Return a list containing a User object for each existing group that matches the criteria. """ + + # TODO - retrieve from config + timelimit = 2 + # Assume the list of fields to search will come from a central # configuration repository. A good format for that would be # a comma-separated list of fields @@ -684,13 +702,15 @@ class IPAServer: try: try: exact_results = conn.getListAsync(self.basedn, self.scope, - exact_match_filter, sattrs, 0, None, None, -1, searchlimit) + exact_match_filter, sattrs, 0, None, None, timelimit, + 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, 0, None, None, -1, searchlimit) + partial_match_filter, sattrs, 0, None, None, timelimit, + searchlimit) except ipaerror.exception_for(ipaerror.LDAP_NOT_FOUND): partial_results = [0] finally: |