You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by jf...@apache.org on 2010/12/23 18:35:04 UTC
svn commit: r1052337 - /incubator/vcl/trunk/web/.ht-inc/groups.php
Author: jfthomps
Date: Thu Dec 23 17:35:04 2010
New Revision: 1052337
URL: http://svn.apache.org/viewvc?rev=1052337&view=rev
Log:
VCL-116
manage groups interface doesn't correctly handle user groups with editusergroupid set to NULL
added EDITGROUPERR
modified viewGroups: print 'None' as the editable by group if $usergroups[$id]['editgroup'] is empty
modified editOrAddGroup: add None to the list of user groups that can be selected as the editable by group if it is NULL and print a notice message; track if it was NULL for next step
modified processGroupInput: check that editgroupid was not submitted as 0 if it was not already NULL
modified updateGroup: updated query to set editgroupid to NULL if None was selected
modified confirmEditOrAddGroup: print None if editable by group was set to None
modified submitEditGroup: clear usersessiondata (unrelated, but some saves to usergroup data weren't being displayed on next page load)
Modified:
incubator/vcl/trunk/web/.ht-inc/groups.php
Modified: incubator/vcl/trunk/web/.ht-inc/groups.php
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/groups.php?rev=1052337&r1=1052336&r2=1052337&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/groups.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/groups.php Thu Dec 23 17:35:04 2010
@@ -34,6 +34,8 @@ define("TOTALMAXERR", 1 << 4);
define("MAXEXTENDERR", 1 << 5);
/// signifies an error with the submitted max overlapping reservations
define("MAXOVERLAPERR", 1 << 6);
+/// signifies an error with the submitted editing user group
+define("EDITGROUPERR", 1 << 7);
////////////////////////////////////////////////////////////////////////////////
///
@@ -169,8 +171,12 @@ function viewGroups() {
print " </TD>\n";
print " <TD valign=bottom>{$usergroups[$id]["name"]}</TD>\n";
print " <TD>{$usergroups[$id]["owner"]}</TD>\n";
- print " <TD>{$usergroups[$id]["editgroup"]}@";
- print "{$usergroups[$id]['editgroupaffiliation']}</TD>\n";
+ if(! empty($usergroups[$id]["editgroup"])) {
+ print " <TD>{$usergroups[$id]["editgroup"]}@";
+ print "{$usergroups[$id]['editgroupaffiliation']}</TD>\n";
+ }
+ else
+ print " <TD>None</TD>\n";
print " <TD align=center>{$usergroups[$id]["initialmaxtime"]}</TD>\n";
print " <TD align=center>{$usergroups[$id]["totalmaxtime"]}</TD>\n";
print " <TD align=center>{$usergroups[$id]["maxextendtime"]}</TD>\n";
@@ -411,16 +417,38 @@ function editOrAddGroup($state) {
print " </TR>\n";
print " <TR>\n";
print " <TH align=right>Editable by:</TH>\n";
- print " <TD>\n";
- if(! empty($data['editgroupid']) &&
- ! array_key_exists($data['editgroupid'], $affilusergroups)) {
+ print " <TD valign=\"top\">\n";
+ $groupwasnone = 0;
+ if($submitErr & EDITGROUPERR)
+ if($state == 0)
+ $data['editgroupid'] = $usergroups[$data['groupid']]['editgroupid'];
+ else {
+ $tmp = array_keys($affilusergroups);
+ $data['editgroupid'] = $tmp[0];
+ }
+ $notice = '';
+ if($state == 0 && empty($usergroups[$data['groupid']]["editgroup"])) {
+ $affilusergroups = array_reverse($affilusergroups, TRUE);
+ $affilusergroups[0] = array('name' => 'None');
+ $affilusergroups = array_reverse($affilusergroups, TRUE);
+ $groupwasnone = 1;
+ $notice = "<strong>Note:</strong> You are the only person that can<br>"
+ . "edit membership of this group. Select a<br>user group here "
+ . "to allow members of that<br>group to edit membership of this one.";
+ }
+ elseif(! array_key_exists($data['editgroupid'], $affilusergroups)) {
$affilusergroups[$data['editgroupid']] =
array('name' => getUserGroupName($data['editgroupid'], 1));
uasort($affilusergroups, "sortKeepIndex");
}
printSelectInput("editgroupid", $affilusergroups, $data["editgroupid"]);
print " </TD>\n";
- print " <TD></TD>";
+ print " <TD>";
+ if($submitErr & EDITGROUPERR)
+ printSubmitErr(EDITGROUPERR);
+ else
+ print $notice;
+ print "</TD>";
print " </TR>\n";
print " <TR>\n";
print " <TH align=right>Initial Max Time (minutes):</TH>\n";
@@ -484,7 +512,8 @@ function editOrAddGroup($state) {
else {
$cdata = array('type' => $data['type'],
'groupid' => $data['groupid'],
- 'isowner' => $data['isowner']);
+ 'isowner' => $data['isowner'],
+ 'groupwasnone' => $groupwasnone);
if($data['type'] == 'resource')
$cdata['resourcetypeid'] = $resourcetypeid;
else
@@ -583,6 +612,7 @@ function processGroupInput($checks=1) {
$return["totalmax"] = getContinuationVar('totalmax', processInputVar("totalmax", ARG_NUMERIC));
$return["maxextend"] = getContinuationVar('maxextend', processInputVar("maxextend", ARG_NUMERIC));
$return["overlap"] = getContinuationVar('overlap', processInputVar("overlap", ARG_NUMERIC, 0));
+ $groupwasnone = getContinuationVar('groupwasnone');
$affils = getAffiliations();
if(! array_key_exists($return['affiliationid'], $affils))
@@ -613,6 +643,10 @@ function processGroupInput($checks=1) {
$submitErr |= GRPOWNER;
$submitErrMsg[GRPOWNER] = "Submitted ID is not valid";
}
+ if($return["type"] == "user" && $return['editgroupid'] == 0 && ! $groupwasnone) {
+ $submitErr |= EDITGROUPERR;
+ $submitErrMsg[EDITGROUPERR] = "Invalid group was selected";
+ }
if($return["type"] == "user" && $return["initialmax"] < 30) {
$submitErr |= INITIALMAXERR;
$submitErrMsg[INITIALMAXERR] = "Initial max time must be at least 30 "
@@ -686,6 +720,8 @@ function checkForGroupName($name, $type,
////////////////////////////////////////////////////////////////////////////////
function updateGroup($data) {
if($data["type"] == "user") {
+ if($data['editgroupid'] == 0)
+ $data['editgroupid'] = 'NULL';
$ownerid = getUserlistID($data["owner"]);
$query = "UPDATE usergroup "
. "SET name = '{$data["name"]}', "
@@ -888,7 +924,9 @@ function confirmEditOrAddGroup($state) {
print " </TR>\n";
print " <TR>\n";
print " <TH align=right>Editable by:</TH>\n";
- if(! $user['showallgroups']) {
+ if($state == 0 && $data['editgroupid'] == 0)
+ $usergroups[0]['name'] = 'None';
+ elseif(! $user['showallgroups']) {
$tmp = explode('@', $usergroups[$data["editgroupid"]]["name"]);
if($tmp[1] == $user['affiliation'])
$usergroups[$data["editgroupid"]]["name"] = $tmp[0];
@@ -957,6 +995,7 @@ function submitEditGroup() {
updateGroup($data);
$_SESSION['userresources'] = array();
$_SESSION['nodeprivileges'] = array();
+ $_SESSION['usersessiondata'] = array();
#$_SESSION['cascadenodeprivileges'] = array(); // might need this uncommented
viewGroups();
}