Author: jfthomps
Date: Thu Apr  8 18:39:51 2010
New Revision: 932056

URL: http://svn.apache.org/viewvc?rev=932056&view=rev
Log:
VCL-93

shibauth/index.php: if $row['shibonly'] is false, we now call getUserlistID 
with $noadd set; if it returns NULL, we call updateShibUser to get the user 
added to the db without using LDAP

requests.php: modified viewRequestInfo and confirmDeleteRequest to set 
$noupdate when calling getUserInfo

privileges.php: modified userLookup to try calling getUserInfo with $noupdate 
set if first call to it returns NULL

images.php: modified addImage to set $noupdate when calling getUserInfo

utils.php:
-modified initGlobals - try calling getUserInfo with $noupdate set if first 
call to it returns NULL
-modified checkAccess - try calling getUserInfo with $noupdate set if first 
call to it returns NULL
-modified addOwnedResourceGroups - set $noupdate when calling getUserInfo
-modified getUserInfo - added $noupdate as an optional argument that will 
return existing user data even if lastupdated is expired

userpreferences.php: modified submitUserPrefs - set $noupdate when calling 
getUserInfo


VCL-139

utils.php: modified main - there were 2 identical conditionals for the 
preferredname, changed the second one to be for firstname

Modified:
    incubator/vcl/trunk/web/.ht-inc/images.php
    incubator/vcl/trunk/web/.ht-inc/privileges.php
    incubator/vcl/trunk/web/.ht-inc/requests.php
    incubator/vcl/trunk/web/.ht-inc/userpreferences.php
    incubator/vcl/trunk/web/.ht-inc/utils.php
    incubator/vcl/trunk/web/shibauth/index.php

Modified: incubator/vcl/trunk/web/.ht-inc/images.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/images.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/images.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/images.php Thu Apr  8 18:39:51 2010
@@ -2508,7 +2508,7 @@ function addImage($data) {
        $data['description'] = mysql_escape_string($data['description']);
        $data['usage'] = mysql_escape_string($data['usage']);
 
-       $ownerdata = getUserInfo($data['owner']);
+       $ownerdata = getUserInfo($data['owner'], 1);
        $ownerid = $ownerdata['id'];
        if(empty($data['maxconcurrent']) || ! 
is_numeric($data['maxconcurrent']))
                $data['maxconcurrent'] = 'NULL';

Modified: incubator/vcl/trunk/web/.ht-inc/privileges.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/privileges.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/privileges.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/privileges.php Thu Apr  8 18:39:51 2010
@@ -1113,8 +1113,11 @@ function userLookup() {
 
                $userdata = getUserInfo($userid);
                if(is_null($userdata)) {
-                       print "<font color=red>$userid not found in any known 
systems</font><br>\n";
-                       return;
+                       $userdata = getUserInfo($userid, 1);
+                       if(is_null($userdata)) {
+                               print "<font color=red>$userid not found in any 
known systems</font><br>\n";
+                               return;
+                       }
                }
                print "<TABLE>\n";
                if(! empty($userdata['firstname'])) {

Modified: incubator/vcl/trunk/web/.ht-inc/requests.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/requests.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/requests.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/requests.php Thu Apr  8 18:39:51 2010
@@ -2547,7 +2547,7 @@ function viewRequestInfo() {
                }
        }
        $states = getStates();
-       $userinfo = getUserInfo($request["userid"]);
+       $userinfo = getUserInfo($request["userid"], 1);
        print "<DIV align=center>\n";
        print "<H2>View Reservation</H2>\n";
        print "<table summary=\"\">\n";
@@ -3202,7 +3202,7 @@ function confirmDeleteRequest() {
                                                . $reservation["prettyimage"] . 
"</strong> that started ";
                        }
                        else {
-                               $userinfo = getUserInfo($request["userid"]);
+                               $userinfo = getUserInfo($request["userid"], 1);
                                $text = "Delete reservation by 
{$userinfo['unityid']}@"
                                      . "{$userinfo['affiliation']} for 
<strong>"
                                      . "{$reservation["prettyimage"]}</strong> 
that started ";

Modified: incubator/vcl/trunk/web/.ht-inc/userpreferences.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/userpreferences.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/userpreferences.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/userpreferences.php Thu Apr  8 18:39:51 2010
@@ -502,7 +502,7 @@ function submitUserPrefs() {
                       . "WHERE userid = {$user['id']}";
                doQuery($query, 101);
        }
-       $user = getUserInfo($user["id"]);
+       $user = getUserInfo($user["id"], 1);
        $_SESSION['user'] = $user;
        userpreferences();
 }

Modified: incubator/vcl/trunk/web/.ht-inc/utils.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/utils.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/utils.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/utils.php Thu Apr  8 18:39:51 2010
@@ -211,14 +211,17 @@ function initGlobals() {
        else {
                # get info about user
                if(! $user = getUserInfo($userid)) {
-                       $ERRORS[1] = "Failed to get user info from database.  
userid was $userid";
-                       abort(1);
+                       // if first call to getUserInfo fails, try calling with 
$noupdate set
+                       if(! $user = getUserInfo($userid, 1)) {
+                               $ERRORS[1] = "Failed to get user info from 
database.  userid was $userid";
+                               abort(1);
+                       }
                }
                if($user['adminlevel'] == 'developer' &&
                        array_key_exists('VCLTESTUSER', $_COOKIE)) {
                        $userid = $_COOKIE['VCLTESTUSER'];
                        if($userid != 
"{$user['unityid']...@{$user['affiliation']}") {
-                               if($testuser = getUserInfo($userid))
+                               if($testuser = getUserInfo($userid, 1))
                                        $user = $testuser;
                        }
                }
@@ -333,9 +336,12 @@ function checkAccess() {
                }
                $xmluser = processInputData($_SERVER['HTTP_X_USER'], 
ARG_STRING, 1);
                if(! $user = getUserInfo($xmluser)) {
-                       printXMLRPCerror(3);   # access denied
-                       dbDisconnect();
-                       exit;
+                       // if first call to getUserInfo fails, try calling with 
$noupdate set
+                       if(! $user = getUserInfo($xmluser, 1)) {
+                               printXMLRPCerror(3);   # access denied
+                               dbDisconnect();
+                               exit;
+                       }
                }
                $xmlpass = $_SERVER['HTTP_X_PASS'];
                if(get_magic_quotes_gpc())
@@ -670,7 +676,7 @@ function main() {
        if($authed) {
                if(! empty($user['lastname']) && ! 
empty($user['preferredname']))
                        print "Hello {$user["preferredname"]} 
{$user['lastname']}<br><br>\n";
-               elseif(! empty($user['lastname']) && ! 
empty($user['preferredname']))
+               elseif(! empty($user['lastname']) && ! 
empty($user['firstname']))
                        print "Hello {$user["firstname"]} 
{$user['lastname']}<br><br>\n";
                $tmp = array_values($user['groups']);
                if(count($tmp) == 1 && $tmp[0] == 'nodemo') {
@@ -1675,7 +1681,7 @@ function addOwnedResources(&$resources, 
 ///
 
////////////////////////////////////////////////////////////////////////////////
 function addOwnedResourceGroups(&$resourcegroups, $userid) {
-       $user = getUserInfo($userid);
+       $user = getUserInfo($userid, 1);
        $userid = $user["id"];
        $groupids = implode(',', array_keys($user["groups"]));
        if(empty($groupids))
@@ -2761,9 +2767,11 @@ function processInputData($data, $type, 
 
 
////////////////////////////////////////////////////////////////////////////////
 ///
-/// \fn getUserInfo($id)
+/// \fn getUserInfo($id, $noupdate)
 ///
 /// \param $id - unity ID for the user or user's id from database
+/// \param $noupdate - (optional, default=0) specify 1 to skip updating user's
+/// data if lastupdated timestamp is expired
 ///
 /// \return 0 if fail to fetch data or $user - an array with these elements:\n
 /// \b unityid - unity ID for the user\n
@@ -2799,7 +2807,7 @@ function processInputData($data, $type, 
 /// their name and unity id; fix information in db based on numeric unity id
 ///
 
////////////////////////////////////////////////////////////////////////////////
-function getUserInfo($id) {
+function getUserInfo($id, $noupdate=0) {
        $affilid = DEFAULT_AFFILID;
        if(! is_numeric($id))
                getAffilidAndLogin($id, $affilid);
@@ -2845,7 +2853,8 @@ function getUserInfo($id) {
                if((datetimeToUnix($user["lastupdated"]) > time() - SECINDAY) ||
                   $user['unityid'] == 'vclreload' ||
                   $user['affiliation'] == 'Local' ||
-                  $user['shibonly']) {
+                  $user['shibonly'] ||
+                  $noupdate) {
                        # get user's groups
                        $user["groups"] = getUsersGroups($user["id"], 1);
 

Modified: incubator/vcl/trunk/web/shibauth/index.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/shibauth/index.php?rev=932056&r1=932055&r2=932056&view=diff
==============================================================================
--- incubator/vcl/trunk/web/shibauth/index.php (original)
+++ incubator/vcl/trunk/web/shibauth/index.php Thu Apr  8 18:39:51 2010
@@ -177,8 +177,11 @@ if($row['shibonly']) {
        updateShibGroups($userdata['id'], $_SERVER['affiliation']);
        $usernid = $userdata['id'];
 }
-else
-       $usernid = getUserlistID($userid);
+else {
+       $usernid = getUserlistID($userid, 1);
+       if(is_null($usernid))
+               $usernid = updateShibUser($userid);
+}
 
 $affilid = getAffiliationID($affil);
 addLoginLog($userid, 'shibboleth', $affilid, 1);


Reply via email to