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


Reply via email to