Author: jfthomps
Date: Tue Feb 21 18:38:28 2012
New Revision: 1291955

URL: http://svn.apache.org/viewvc?rev=1291955&view=rev
Log:
VCL-321
user lookup tool doesn't show user group affiliation

modified userLookup - added ability to look up users by "last, first" as well 
as userid; added affiliation to user groups; added user's userid and 
affiliation to output

Modified:
    incubator/vcl/trunk/web/.ht-inc/privileges.php

Modified: incubator/vcl/trunk/web/.ht-inc/privileges.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/privileges.php?rev=1291955&r1=1291954&r2=1291955&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/privileges.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/privileges.php Tue Feb 21 18:38:28 2012
@@ -1142,48 +1142,76 @@ function AJsubmitRenameNode() {
 function userLookup() {
        global $user;
        $userid = processInputVar("userid", ARG_STRING);
+       $affilid = processInputVar('affiliationid', ARG_NUMERIC, 
$user['affiliationid']);
        $force = processInputVar('force', ARG_NUMERIC, 0);
        print "<div align=center>\n";
        print "<H2>User Lookup</H2>\n";
        print "<FORM action=\"" . BASEURL . SCRIPT . "\" method=post>\n";
        print "<TABLE>\n";
        print "  <TR>\n";
-       print "    <TH>User ID:</TH>\n";
+       print "    <TH>Name (last, first) or User ID:</TH>\n";
        print "    <TD><INPUT type=text name=userid value=\"$userid\" 
size=25></TD>\n";
+       if(checkUserHasPerm('User Lookup (global)')) {
+               $affils = getAffiliations();
+               print "    <TD>\n";
+               print "@";
+               printSelectInput("affiliationid", $affils, $affilid);
+               print "    </TD>\n";
+       }
        print "  </TR>\n";
        print "  <TR>\n";
        print "    <TD colspan=2>\n";
        print "      <input type=checkbox id=force name=force value=1>\n";
-       print "      <label for=force>Attempt forcing an update from 
LDAP</label>\n";
+       print "      <label for=force>Attempt forcing an update from LDAP (User 
ID only)</label>\n";
        print "    </TD>\n";
        print "  </TR>\n";
        print "  <TR>\n";
-       print "    <TD></TD>\n";
-       print "    <TD align=right><INPUT type=submit value=Submit>\n";
+       print "    <TD colspan=3 align=center><INPUT type=submit 
value=Submit>\n";
        print "  </TR>\n";
        print "</TABLE>\n";
        $cont = addContinuationsEntry('submitUserLookup');
        print "<INPUT type=hidden name=continuation value=\"$cont\">\n";
-       print "</FORM>\n";
+       print "</FORM><br>\n";
        if(! empty($userid)) {
-               $loginid = $userid;
-               getAffilidAndLogin($loginid, $affilid);
-               if(empty($affilid)) {
-                       print "specified affiliation is unknown<br>\n";
-                       return;
+               if(preg_match('/,/', $userid)) {
+                       $mode = 'name';
+                       $force = 0;
                }
+               else
+                       $mode = 'userid';
                if(! checkUserHasPerm('User Lookup (global)') &&
                   $user['affiliationid'] != $affilid) {
-                       print "You are only allowed to look up users from your 
own affiliation.<br>\n";
+                       print "<font color=red>$userid not found</font><br>\n";
                        return;
                }
-               $query = "SELECT id "
-                      . "FROM user "
-                      . "WHERE unityid = '$loginid' AND "
-                      .       "affiliationid = $affilid";
+               if($mode == 'userid') {
+                       $query = "SELECT id "
+                              . "FROM user "
+                              . "WHERE unityid = '$userid' AND "
+                              .       "affiliationid = $affilid";
+                       $userid = "$userid@" . getAffiliationName($affilid);
+               }
+               else {
+                       $tmp = explode(',', $userid);
+                       $last = mysql_real_escape_string(trim($tmp[0]));
+                       $first = mysql_real_escape_string(trim($tmp[1]));
+                       $query = "SELECT CONCAT(u.unityid, '@', a.name) AS 
unityid "
+                              . "FROM user u, "
+                              .      "affiliation a "
+                              . "WHERE u.firstname = '$first' AND "
+                              .       "u.lastname = '$last' AND "
+                              .       "u.affiliationid = $affilid AND "
+                              .       "a.id = $affilid";
+               }
                $qh = doQuery($query, 101);
-               if(! mysql_num_rows($qh))
-                       print "<font color=red>$userid not currently found in 
VCL user database, will try to add...</font><br>\n";
+               if(! mysql_num_rows($qh)) {
+                       if($mode == 'name') {
+                               print "<font color=red>User not 
found</font><br>\n";
+                               return;
+                       }
+                       else
+                               print "<font color=red>$userid not currently 
found in VCL user database, will try to add...</font><br>\n";
+               }
                elseif($force) {
                        $_SESSION['userresources'] = array();
                        $row = mysql_fetch_assoc($qh);
@@ -1191,8 +1219,13 @@ function userLookup() {
                        $query = "UPDATE user SET lastupdated = '$newtime' 
WHERE id = {$row['id']}";
                        doQuery($query, 101);
                }
+               elseif($mode == 'name') {
+                       $row = mysql_fetch_assoc($qh);
+                       $userid = $row['unityid'];
+               }
 
                $userdata = getUserInfo($userid);
+               $userdata["groups"] = getUsersGroups($userdata["id"], 1, 1);
                if(is_null($userdata)) {
                        $userdata = getUserInfo($userid, 1);
                        if(is_null($userdata)) {
@@ -1201,6 +1234,12 @@ function userLookup() {
                        }
                }
                print "<TABLE>\n";
+               if(! empty($userdata['unityid'])) {
+                       print "  <TR>\n";
+                       print "    <TH align=right>User ID:</TH>\n";
+                       print "    <TD>{$userdata["unityid"]}</TD>\n";
+                       print "  </TR>\n";
+               }
                if(! empty($userdata['firstname'])) {
                        print "  <TR>\n";
                        print "    <TH align=right>First Name:</TH>\n";
@@ -1219,6 +1258,12 @@ function userLookup() {
                        print "    <TD>{$userdata["preferredname"]}</TD>\n";
                        print "  </TR>\n";
                }
+               if(! empty($userdata['affiliation'])) {
+                       print "  <TR>\n";
+                       print "    <TH align=right>Affiliation:</TH>\n";
+                       print "    <TD>{$userdata["affiliation"]}</TD>\n";
+                       print "  </TR>\n";
+               }
                if(! empty($userdata['email'])) {
                        print "  <TR>\n";
                        print "    <TH align=right>Email:</TH>\n";


Reply via email to