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/04/22 17:01:40 UTC

svn commit: r936884 - in /incubator/vcl/trunk/web/.ht-inc: images.php utils.php

Author: jfthomps
Date: Thu Apr 22 15:01:39 2010
New Revision: 936884

URL: http://svn.apache.org/viewvc?rev=936884&view=rev
Log:
VCL-125
VCL-325

images.php:
-added in patch attached to VCL-125 by Andy Kurth to add control of rootaccess field in imagemeta table
  -modified editOrAddImage, confirmEditOrAddImage, viewImageDetails (tweaked this part to always show rootaccess field, also modified to always show checkuser field), processInputVar, updateImage, addImage
-modified subimageDialogContent: if there were duplicate subimages, only one of them was showing up which was introduced when I made the images sorted; corrected to still sort, but show all subimages
-modified AJremSubimage: moved code to check for and delete imagemeta entry to separate function in utils.php
-modified updateImage: added call to checkClearImageMeta to get the imagemeta entry cleared if all values set to defaults

utils.php:
-added in patch attached to VCL-125 by Andy Kurth to add control of rootaccess field in imagemeta table
  -modified getImages to include rootaccess field
-added checkClearImageMeta

Modified:
    incubator/vcl/trunk/web/.ht-inc/images.php
    incubator/vcl/trunk/web/.ht-inc/utils.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=936884&r1=936883&r2=936884&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/images.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/images.php Thu Apr 22 15:01:39 2010
@@ -936,6 +936,16 @@ function editOrAddImage($state) {
 	printSelectInput("checkuser", $yesno, $default);
 	print "    </TD>\n";
 	print "  </TR>\n";
+	print "  <TR>\n";
+	print "    <TH align=right>Users have administrative access:</TH>\n";
+	if(array_key_exists("rootaccess", $data) && ! $data["rootaccess"])
+		$default = 0;
+	else
+		$default = 1;
+	print "    <TD>\n";
+	printSelectInput("rootaccess", $yesno, $default);
+	print "    </TD>\n";
+	print "  </TR>\n";
 	# finally just limited access so only high level access people see this
 	# because it confused too many people
 	if($user["adminlevel"] == "developer") {
@@ -1133,11 +1143,12 @@ function subimageDialogContent() {
 	if(array_key_exists("subimages", $image) && count($image["subimages"])) {
 		$subimages = array();
 		foreach($image["subimages"] as $imgid)
-			$subimages[$imgid] = $images[$imgid]['prettyname'];
+			$subimages[] = array('id' => $imgid,
+			                     'name' => $images[$imgid]['prettyname']);
 		uasort($subimages, "sortKeepIndex");
 		$content .= "<select id=cursubimagesel multiple size=10>";
-		foreach($subimages as $imgid => $name) {
-			$content .= "<option value=$imgid>$name</option>";
+		foreach($subimages as $img) {
+			$content .= "<option value={$img['id']}>{$img['name']}</option>";
 			$subimgcnt++;
 		}
 	}
@@ -1285,40 +1296,14 @@ function AJremSubimage() {
 	$qh = doQuery($query, 101);
 	$row = mysql_fetch_row($qh);
 	if($row[0] == 0) {
-		# get defaults for imagemeta table
-		$query = "DESC imagemeta";
-		$qh = doQuery($query, 101);
-		$defaults = array();
-		while($row = mysql_fetch_assoc($qh))
-			$defaults[$row['Field']] = $row['Default'];
-		# get imagemeta data
-		$query = "SELECT * FROM imagemeta WHERE id = $imagemetaid";
-		$qh = doQuery($query, 101);
-		$row = mysql_fetch_assoc($qh);
-		$alldefaults = 1;
-		foreach($row as $field => $val) {
-			if($field == 'id' || $field == 'subimages')
-				continue;
-			if($defaults[$field] != $val) {
-				$alldefaults = 0;
-				break;
-			}
-		}
-		// if all default values, delete imagemeta entry
-		if($alldefaults) {
-			$query = "DELETE FROM imagemeta WHERE id = $imagemetaid";
-			doQuery($query, 101);
-			$query = "UPDATE image SET imagemetaid = NULL WHERE id = $imageid";
-			doQuery($query, 101);
+		$rc = checkClearImageMeta($imagemetaid, $imageid, 'subimages');
+		if($rc)
 			$imagemetaid = NULL;
-			$subimages = array();
-		}
-		# otherwise, just set subimages to 0
 		else {
 			$query = "UPDATE imagemeta SET subimages = 0 WHERE id = $imagemetaid";
 			doQuery($query, 101);
-			$subimages = array();
 		}
+		$subimages = array();
 	}
 	# rebuild list of subimages
 	else {
@@ -1490,6 +1475,13 @@ function confirmEditOrAddImage($state) {
 	else
 		print "    <TD>No</TD>\n";
 	print "  </TR>\n";
+	print "  <TR>\n";
+	print "    <TH align=right>Users have administrative access:</TH>\n";
+	if($data["rootaccess"])
+		print "    <TD>Yes</TD>\n";
+	else
+		print "    <TD>No</TD>\n";
+	print "  </TR>\n";
 	if($user["adminlevel"] == "developer" || $user['adminlevel'] == 'full') {
 		print "  <TR>\n";
 		print "    <TH align=right>User group allowed to log in:</TH>\n";
@@ -2163,15 +2155,22 @@ function viewImageDetails() {
 	else
 		print "    <TD>no</TD>\n";
 	print "  </TR>\n";
-	if(array_key_exists("checkuser", $images[$imageid])) {
-		print "  <TR>\n";
-		print "    <TH align=right>Check for logged in user:</TH>\n";
-		if($images[$imageid]["checkuser"])
-			print "    <TD>yes</TD>\n";
-		else
-			print "    <TD>no</TD>\n";
-		print "  </TR>\n";
-	}
+	print "  <TR>\n";
+	print "    <TH align=right>Check for logged in user:</TH>\n";
+	if(array_key_exists("checkuser", $images[$imageid]) &&
+		$images[$imageid]["checkuser"] == 0)
+		print "    <TD>no</TD>\n";
+	else
+		print "    <TD>yes</TD>\n";
+	print "  </TR>\n";
+	print "  <TR>\n";
+	print "    <TH align=right>Users have administrative access:</TH>\n";
+	if(array_key_exists("rootaccess", $images[$imageid]) &&
+		$images[$imageid]["rootaccess"] == 0)
+		print "    <TD>no</TD>\n";
+	else
+		print "    <TD>yes</TD>\n";
+	print "  </TR>\n";
 	if(! empty($images[$imageid]["usergroupid"])) {
 		print "  <TR>\n";
 		print "    <TH align=right>User group allowed to log in:</TH>\n";
@@ -2431,6 +2430,7 @@ function processImageInput($checks=1) {
 	$return["reloadtime"] = processInputVar("reloadtime", ARG_NUMERIC, 10);
 	$return["forcheckout"] = processInputVar("forcheckout", ARG_NUMERIC, 1);
 	$return["checkuser"] = processInputVar("checkuser", ARG_NUMERIC, 1);
+	$return["rootaccess"] = processInputVar("rootaccess", ARG_NUMERIC, 1);
 	$return["usergroupid"] = processInputVar("usergroupid", ARG_NUMERIC);
 	$return["sysprep"] = processInputVar("sysprep", ARG_NUMERIC, 1);
 	$return["description"] = processInputVar("description", ARG_STRING);
@@ -2568,14 +2568,18 @@ function updateImage($data) {
 	$qh = doQuery($query, 200);
 	$return = mysql_affected_rows($GLOBALS["mysql_link_vcl"]);
 	if(empty($imgdata[$data["imageid"]]["imagemetaid"]) &&
-	   ($data["checkuser"] == 0 || $data["usergroupid"] != 0)) {
+	   ($data["checkuser"] == 0 ||
+	   $data["usergroupid"] != 0 ||
+	   $data['rootaccess'] == 0)) {
 		if($data["usergroupid"] == 0)
 			$data["usergroupid"] = "NULL";
 		$query = "INSERT INTO imagemeta "
 		       .        "(checkuser, "
-		       .        "usergroupid) "
+		       .        "usergroupid, "
+		       .        "rootaccess) "
 		       . "VALUES ({$data["checkuser"]}, "
-		       .        "{$data["usergroupid"]})";
+		       .        "{$data["usergroupid"]}, "
+		       .        "{$data["rootaccess"]})";
 		doQuery($query, 101);
 		$qh = doQuery("SELECT LAST_INSERT_ID() FROM imagemeta", 101);
 		if(! $row = mysql_fetch_row($qh))
@@ -2586,16 +2590,20 @@ function updateImage($data) {
 		       . "WHERE id = {$data["imageid"]}";
 		doQuery($query, 101);
 	}
-	elseif(! empty($imgdata[$data["imageid"]]["imagemetaid"]) &&
-	   ($data["checkuser"] != $imgdata[$data["imageid"]]["checkuser"] ||
-	   $data["usergroupid"] != $imgdata[$data["imageid"]]["usergroupid"])) {
-		if($data["usergroupid"] == 0)
-			$data["usergroupid"] = "NULL";
-		$query = "UPDATE imagemeta "
-		       . "SET checkuser = {$data["checkuser"]}, "
-		       .     "usergroupid = {$data["usergroupid"]} "
-		       . "WHERE id = {$imgdata[$data["imageid"]]["imagemetaid"]}";
-		doQuery($query, 101);
+	elseif(! empty($imgdata[$data["imageid"]]["imagemetaid"])) {
+	  if($data["checkuser"] != $imgdata[$data["imageid"]]["checkuser"] ||
+	   $data["rootaccess"] != $imgdata[$data["imageid"]]["rootaccess"] ||
+	   $data["usergroupid"] != $imgdata[$data["imageid"]]["usergroupid"]) {
+			if($data["usergroupid"] == 0)
+				$data["usergroupid"] = "NULL";
+			$query = "UPDATE imagemeta "
+			       . "SET checkuser = {$data["checkuser"]}, "
+			       .     "rootaccess = {$data["rootaccess"]}, "
+			       .     "usergroupid = {$data["usergroupid"]} "
+			       . "WHERE id = {$imgdata[$data["imageid"]]["imagemetaid"]}";
+			doQuery($query, 101);
+		}
+	  checkClearImageMeta($imgdata[$data['imageid']]['imagemetaid'], $data['imageid']);
 	}
 	return $return;
 }
@@ -2666,19 +2674,24 @@ function addImage($data) {
 	$imagemetaid = 0;
 	if($data['checkuser'] != 0 && $data['checkuser'] != 1)
 		$data['checkuser'] = 1;
+	if($data['rootaccess'] != 0 && $data['rootaccess'] != 1)
+		$data['rootaccess'] = 1;
 	if(! is_numeric($data['usergroupid']) || $data['usergroupid'] <= 0)
 		$data['usergroupid'] = "NULL";
 	if($data['sysprep'] != 0 && $data['sysprep'] != 1)
 		$data['sysprep'] = 1;
 	if($data['checkuser'] == 0 ||
+	   $data['rootaccess'] == 0 ||
 	   (is_numeric($data['usergroupid']) && $data['usergroupid'] > 0) ||
 	   $data['sysprep'] == 0) {
 		$query = "INSERT INTO imagemeta "
 		       .        "(checkuser, "
+		       .        "rootaccess, "
 		       .        "usergroupid, "
 		       .        "sysprep) "
 		       . "VALUES "
 		       .        "({$data['checkuser']}, "
+		       .        "{$data['rootaccess']}, "
 		       .        "{$data['usergroupid']}, "
 		       .        "{$data['sysprep']})";
 		doQuery($query, 101);

Modified: incubator/vcl/trunk/web/.ht-inc/utils.php
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/utils.php?rev=936884&r1=936883&r2=936884&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/utils.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/utils.php Thu Apr 22 15:01:39 2010
@@ -1096,6 +1096,7 @@ function getImages($includedeleted=0, $i
 		$imagelist[$row["id"]] = $row;
 		if($row["imagemetaid"] != NULL) {
 			$query2 = "SELECT i.checkuser, "
+			        .        "i.rootaccess, "
 			        .        "i.subimages, "
 			        .        "i.usergroupid, "
 			        .        "u.name AS usergroup, "
@@ -1108,6 +1109,7 @@ function getImages($includedeleted=0, $i
 			$qh2 = doQuery($query2, 101);
 			if($row2 = mysql_fetch_assoc($qh2)) {
 				$imagelist[$row["id"]]["checkuser"] = $row2["checkuser"];
+				$imagelist[$row["id"]]["rootaccess"] = $row2["rootaccess"];
 				$imagelist[$row["id"]]["usergroupid"] = $row2["usergroupid"];
 				if(! empty($row2['affiliation']))
 					$imagelist[$row["id"]]["usergroup"] = "{$row2["usergroup"]}@{$row2['affiliation']}";
@@ -1228,6 +1230,52 @@ function getImageNotes($imageid) {
 
 ////////////////////////////////////////////////////////////////////////////////
 ///
+/// \fn checkClearImageMeta($imagemetaid, $imageid, $ignorefield)
+///
+/// \param $imagemetaid - id from imagemeta table
+/// \param $imageid - id from image table
+/// \param $ignorefield - (optional, default='') field to ignore being different
+/// from default
+///
+/// \return 0 if imagemeta entry was not deleted, 1 if it was
+///
+/// \brief checks to see if all values of the imagemeta table are defaults, and
+/// if so, deletes the entry and sets imagemetaid to NULL in image table
+///
+////////////////////////////////////////////////////////////////////////////////
+function checkClearImageMeta($imagemetaid, $imageid, $ignorefield='') {
+	# get defaults for imagemeta table
+	$query = "DESC imagemeta";
+	$qh = doQuery($query, 101);
+	$defaults = array();
+	while($row = mysql_fetch_assoc($qh))
+		$defaults[$row['Field']] = $row['Default'];
+	# get imagemeta data
+	$query = "SELECT * FROM imagemeta WHERE id = $imagemetaid";
+	$qh = doQuery($query, 101);
+	$row = mysql_fetch_assoc($qh);
+	$alldefaults = 1;
+	foreach($row as $field => $val) {
+		if($field == 'id' || $field == $ignorefield)
+			continue;
+		if($defaults[$field] != $val) {
+			$alldefaults = 0;
+			break;
+		}
+	}
+	// if all default values, delete imagemeta entry
+	if($alldefaults) {
+		$query = "DELETE FROM imagemeta WHERE id = $imagemetaid";
+		doQuery($query, 101);
+		$query = "UPDATE image SET imagemetaid = NULL WHERE id = $imageid";
+		doQuery($query, 101);
+		return 1;
+	}
+	return 0;
+}
+
+////////////////////////////////////////////////////////////////////////////////
+///
 /// \fn getProductionRevisionid($imageid)
 ///
 /// \param $imageid