Author: jfthomps
Date: Fri Jan 20 18:21:45 2017
New Revision: 1779664
URL: http://svn.apache.org/viewvc?rev=1779664&view=rev
Log:
VCL-1006 - performance improvements for 2.5
privileges.php:
-added conditionals to skip configAdmin user privilege in several places in
these functions: viewNodes, selectNode, and getUserPrivRowHTML
-changed uses of array_key_exists to isset in these functions:
printUserPrivRow, getUserPrivRowHTML, getResourcePrivRowHTML,
getNodePrivileges, getNodeCascadePrivileges, AJchangeUserPrivs,
AJchangeUserGroupPrivs, AJsubmitAddUserGroupPriv, and AJsubmitAddResourcePriv
-reverted a few places that were mistakingly changed from in_array to isset in
these functions: AJchangeResourcePrivs, AJsubmitAddUserPriv,
AJsubmitAddUserGroupPriv, AJsubmitAddResourcePriv, and checkUserHasPriv
-modified AJchangeResourcePrivs: fixed issue preventing setting a resource
attribute at a node where the same attribute was being blocked from being
cascaded down
xmlrpcWrappers.php:
-changed uses of array_key_exists to isset in XMLRPCgetResourceGroupPrivs and
_XMLRPCchangeResourceGroupPriv_sub
utils.php:
-removed places where subarrays were created by calling array() in these
functions since it is unnecessary: getImages, getChildNodes,
getResourceGroupMemberships, getResourceGroupMembers, findAvailableTimes
-changed uses of array_key_exists to isset in these functions: getImages,
getServerProfiles, getServerProfileImages, getImageConnectMethods,
getImageConnectMethodTexts, getProductionRevisionid, removeNoCheckout,
getUserResources, getUserResourcesUp, addNodeUserResourcePrivs,
addOwnedResources, addOwnedResourceGroups, getParentNodes, getChildNodes,
getUserGroups, getResourceGroupMembers, getUserUnityID, checkUserHasPerm,
findAvailableTimes, selectInputHTML, prettyDatetime, getMaintItemsForTimeTable,
getNodeInfo, and sortKeepIndex
-changed uses of foreach(array_keys(...) as $) to foreach(... as $ => $tmp) in
these functions: getUserResourcesDown, addNodeUserResourcePrivs
-modified getImageConnectMethods: split query to get all methods from a single
query to a temporary table with 3 individual queries due to slowness caused by
the OR's in the conditional of the "LEFT JOIN connectmethodmap"
Modified:
vcl/trunk/web/.ht-inc/privileges.php
vcl/trunk/web/.ht-inc/utils.php
vcl/trunk/web/.ht-inc/xmlrpcWrappers.php
Modified: vcl/trunk/web/.ht-inc/privileges.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/privileges.php?rev=1779664&r1=1779663&r2=1779664&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/privileges.php (original)
+++ vcl/trunk/web/.ht-inc/privileges.php Fri Jan 20 18:21:45 2017
@@ -364,8 +364,11 @@ function viewNodes() {
print " <TD></TD>\n";
print " <TH class=\"privBlock\" bgcolor=gray style=\"color:
black;\">Block<br>Cascaded<br>Rights</TH>\n";
print " <TH class=\"privCascade\" bgcolor=\"#008000\" style=\"color:
black;\">Cascade<br>to Child<br>Nodes</TH>\n";
- foreach($usertypes["users"] as $type)
+ foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
print " <TH
class=\"privheader\"><div><span>$type</span></div></TH>\n";
+ }
print " </TR>\n";
print " <TR>\n";
print " <TD><INPUT type=text id=newuser name=newuser size=15";
@@ -384,6 +387,8 @@ function viewNodes() {
# normal rights
$j = 1;
foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
print " <TD align=center id=usercell0:$j><INPUT
type=checkbox ";
print "dojoType=dijit.form.CheckBox name=\"$type\"
id=userck0:$j></TD>\n";
$j++;
@@ -428,8 +433,11 @@ function viewNodes() {
print " <TD></TD>\n";
print " <TH class=\"privBlock\" bgcolor=gray style=\"color:
black;\">Block<br>Cascaded<br>Rights</TH>\n";
print " <TH class=\"privCascade\" bgcolor=\"#008000\" style=\"color:
black;\">Cascade<br>to Child<br>Nodes</TH>\n";
- foreach($usertypes["users"] as $type)
+ foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
print " <TH
class=\"privheader\"><div><span>$type</span></div></TH>\n";
+ }
print " </TR>\n";
print " <TR>\n";
print " <TD>\n";
@@ -450,6 +458,8 @@ function viewNodes() {
# normal rights
$j = 1;
foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
print " <TD align=center id=usergrpcell0:$j><INPUT
type=checkbox ";
print "dojoType=dijit.form.CheckBox name=\"$type\"
id=usergrpck0:$j></TD>\n";
$j++;
@@ -889,8 +899,11 @@ function selectNode() {
$text .= " <TD></TD>";
$text .= " <TH class=\"privBlock\" bgcolor=gray
style=\"color: black;\">Block<br>Cascaded<br>Rights</TH>";
$text .= " <TH class=\"privCascade\" bgcolor=\"#008000\"
style=\"color: black;\">Cascade<br>to Child<br>Nodes</TH>";
- foreach($usertypes["users"] as $type)
+ foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
$text .= " <TH
class=\"privheader\"><div><span>$type</span></div></TH>";
+ }
$text .= " </TR>";
$users = array_unique(array_merge(array_keys($privs["users"]),
array_keys($cascadePrivs["users"])));
@@ -937,8 +950,11 @@ function selectNode() {
$text .= " <TD></TD>";
$text .= " <TH class=\"privBlock\" bgcolor=gray
style=\"color: black;\">Block<br>Cascaded<br>Rights</TH>";
$text .= " <TH class=\"privCascade\" bgcolor=\"#008000\"
style=\"color: black;\">Cascade<br>to Child<br>Nodes</TH>";
- foreach($usertypes["users"] as $type)
+ foreach($usertypes["users"] as $type) {
+ if($type == 'configAdmin')
+ continue;
$text .= " <TH
class=\"privheader\"><div><span>$type</span></div></TH>";
+ }
$text .= " </TR>";
$groupids =
array_unique(array_merge(array_keys($privs["usergroups"]),
array_keys($cascadePrivs["usergroups"])));
@@ -2171,7 +2187,7 @@ function printUserPrivRow($privname, $ro
$disabled = '';
# block rights
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 'user' &&
isset($privs[$privname]['block'])) ||
($usergroup == 'group' &&
@@ -2198,7 +2214,7 @@ function printUserPrivRow($privname, $ro
print "$count, 1, $usergroup);\" $checked $disabled></TD>\n";
#cascade rights
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 1 &&
isset($privs[$privname]['cascade'])) ||
($usergroup == 2 &&
@@ -2221,17 +2237,17 @@ function printUserPrivRow($privname, $ro
$checked = "";
$value = "";
$cascaded = 0;
- if(array_key_exists($privname, $cascadeprivs) &&
+ if(isset($cascadeprivs[$privname]) &&
(($usergroup == 1 &&
isset($cascadeprivs[$privname][$type])) ||
($usergroup == 2 &&
isset($cascadeprivs[$privname]['privs'][$type])))) {
- $bgcolor = "class=\"privCascade\" bgcolor=\"#008000\"";
+ $bgcolor = "class=\"privCascade\"";
$checked = "checked";
$value = "value=cascade";
$cascaded = 1;
}
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 1 &&
isset($privs[$privname][$type])) ||
($usergroup == 2 &&
@@ -2304,7 +2320,7 @@ function getUserPrivRowHTML($privname, $
$disabled = '';
# block rights
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 'user' &&
isset($privs[$privname]["block"])) ||
($usergroup == 'group' &&
@@ -2328,7 +2344,7 @@ function getUserPrivRowHTML($privname, $
$text .= "(this.checked, $rownum, $count, 1, $usergroup)\"></TD>";
#cascade rights
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 1 &&
isset($privs[$privname]["cascade"])) ||
($usergroup == 2 &&
@@ -2345,21 +2361,23 @@ function getUserPrivRowHTML($privname, $
# normal rights
$j = 1;
foreach($types as $type) {
+ if($type == 'configAdmin')
+ continue;
$bgcolor = "";
$checked = "";
$value = "";
$cascaded = 0;
- if(array_key_exists($privname, $cascadeprivs) &&
+ if(isset($cascadeprivs[$privname]) &&
(($usergroup == 1 &&
isset($cascadeprivs[$privname][$type])) ||
($usergroup == 2 &&
isset($cascadeprivs[$privname]['privs'][$type])))) {
- $bgcolor = "class=\"privCascade\" bgcolor=\"#008000\"";
+ $bgcolor = "class=\"privCascade\"";
$checked = "checked";
$value = "value=cascade";
$cascaded = 1;
}
- if(array_key_exists($privname, $privs) &&
+ if(isset($privs[$privname]) &&
(($usergroup == 1 &&
isset($privs[$privname][$type])) ||
($usergroup == 2 &&
@@ -2483,8 +2501,7 @@ function getResourcePrivRowHTML($privnam
$disabled = '';
# block rights
- if(array_key_exists($privname, $privs) &&
- isset($privs[$privname]["block"])) {
+ if(isset($privs[$privname]["block"])) {
$checked = "checked";
$blocked = 1;
}
@@ -2500,8 +2517,7 @@ function getResourcePrivRowHTML($privnam
$text .= "(this.checked, $rownum, $count, 1, 3)\"></TD>\n";
#cascade rights
- if(array_key_exists($privname, $privs) &&
- isset($privs[$privname]["cascade"]))
+ if(isset($privs[$privname]["cascade"]))
$checked = "checked";
else
$checked = "";
@@ -2520,15 +2536,13 @@ function getResourcePrivRowHTML($privnam
$checked = "";
$value = "";
$cascaded = 0;
- if(array_key_exists($privname, $cascadeprivs) &&
- isset($cascadeprivs[$privname][$type])) {
- $bgcolor = "class=\"privCascade\" bgcolor=\"#008000\"";
+ if(isset($cascadeprivs[$privname][$type])) {
+ $bgcolor = "class=\"privCascade\"";
$checked = "checked";
$value = "value=cascade";
$cascaded = 1;
}
- if(array_key_exists($privname, $privs) &&
- isset($privs[$privname][$type])) {
+ if(isset($privs[$privname][$type])) {
if($cascaded) {
$value = "value=cascadesingle";
}
@@ -2671,7 +2685,7 @@ function jsonGetResourceGroupMembers() {
function getNodePrivileges($node, $type="all", $privs=0) {
global $user;
$key = getKey(array($node, $type, $privs));
- if(array_key_exists($key, $_SESSION['nodeprivileges']))
+ if(isset($_SESSION['nodeprivileges'][$key]))
return $_SESSION['nodeprivileges'][$key];
if(! $privs)
$privs = array("resources" => array(),
@@ -2692,16 +2706,14 @@ function getNodePrivileges($node, $type=
. "ORDER BY p.privnodeid";
$qh = doQuery($query, 350);
while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row['privnodeid'],
$resourcedata))
- $resourcedata[$row['privnodeid']] = array();
$resourcedata[$row['privnodeid']][] = $row;
}
}
if($type == "resources" || $type == "all") {
- if(array_key_exists($node, $resourcedata)) {
+ if(isset($resourcedata[$node])) {
foreach($resourcedata[$node] as $data) {
$name =
"{$data["type"]}/{$data["name"]}/{$data["id"]}";
- $privs["resources"][$name][] =
$data["privtype"];
+ $privs["resources"][$name][$data["privtype"]] =
1;
}
}
}
@@ -2739,7 +2751,7 @@ function getNodePrivileges($node, $type=
. "ORDER BY g.name";
$qh = doQuery($query, 352);
while($row = mysql_fetch_assoc($qh)) {
- if(array_key_exists($row["id"], $privs["usergroups"]))
+ if(isset($privs["usergroups"][$row["id"]]))
$privs["usergroups"][$row["id"]]['privs'][$row['priv']] = 1;
else
$privs["usergroups"][$row["id"]] = array('id'
=> $row['id'],
@@ -2797,7 +2809,7 @@ function getNodePrivileges($node, $type=
////////////////////////////////////////////////////////////////////////////////
function getNodeCascadePrivileges($node, $type="all", $privs=0) {
$key = getKey(array($node, $type, $privs));
- if(array_key_exists($key, $_SESSION['cascadenodeprivileges']))
+ if(isset($_SESSION['cascadenodeprivileges'][$key]))
return $_SESSION['cascadenodeprivileges'][$key];
if(! $privs)
$privs = array("resources" => array(),
@@ -2822,7 +2834,7 @@ function getNodeCascadePrivileges($node,
. "p.type = 'block'";
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row['privnodeid'],
$allblockdata))
+ if(! isset($allblockdata[$row['privnodeid']]))
$allblockdata[$row['privnodeid']] = array();
# TODO adding the id at the end will fix the bug where
blocking cascaded resource
# privileges are only blocked at the node and the
block is not cascaded to
@@ -2836,7 +2848,7 @@ function getNodeCascadePrivileges($node,
$inlist = implode(',', $nodelist);
$blockdata = array();
foreach($nodelist as $nodeid) {
- if(array_key_exists($nodeid, $allblockdata))
+ if(isset($allblockdata[$nodeid]))
$blockdata[$nodeid] = $allblockdata[$nodeid];
}
@@ -2861,7 +2873,7 @@ function getNodeCascadePrivileges($node,
. "p2.type = 'cascade'";
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row['privnodeid'],
$allcascadedata))
+ if(! isset($allcascadedata[$row['privnodeid']]))
$allcascadedata[$row['privnodeid']] = array();
$allcascadedata[$row['privnodeid']][] =
array('name' =>
"{$row["type"]}/{$row["name"]}/{$row["id"]}",
@@ -2872,7 +2884,7 @@ function getNodeCascadePrivileges($node,
# get all privs for users with cascaded privs
$cascadedata = array();
foreach($nodelist as $nodeid) {
- if(array_key_exists($nodeid, $allcascadedata))
+ if(isset($allcascadedata[$nodeid]))
$cascadedata[$nodeid] = $allcascadedata[$nodeid];
}
@@ -2882,13 +2894,13 @@ function getNodeCascadePrivileges($node,
while(count($mynodelist)) {
$mynode = array_pop($mynodelist);
# get all resource groups with block set at this node
and remove any cascaded privs
- if(array_key_exists($mynode, $blockdata)) {
+ if(isset($blockdata[$mynode])) {
foreach($blockdata[$mynode] as $name)
unset($privs["resources"][$name]);
}
# get all privs for users with cascaded privs
- if(array_key_exists($mynode, $cascadedata)) {
+ if(isset($cascadedata[$mynode])) {
foreach($cascadedata[$mynode] as $data) {
$privs["resources"][$data['name']][$data["type"]] = 1;
}
@@ -3078,8 +3090,7 @@ function AJchangeUserPrivs() {
if($newprivval == 'true') {
// if $newuser already has $newpriv cascaded to it, do nothing
- if(array_key_exists($newuser, $cascadePrivs['users']) &&
- isset($cascadePrivs['users'][$newuser][$newpriv]))
+ if(isset($cascadePrivs['users'][$newuser][$newpriv]))
return;
// add priv
$adds = array($newpriv);
@@ -3136,8 +3147,7 @@ function AJchangeUserGroupPrivs() {
if($newprivval == 'true') {
// if $newusergrp already has $newpriv cascaded to it, do
nothing
- if(array_key_exists($newusergrp, $cascadePrivs['usergroups']) &&
-
isset($cascadePrivs['usergroups'][$newusergrp]['privs'][$newpriv]))
+
if(isset($cascadePrivs['usergroups'][$newusergrp]['privs'][$newpriv]))
return;
// add priv
$adds = array($newpriv);
@@ -3150,7 +3160,7 @@ function AJchangeUserGroupPrivs() {
}
updateUserOrGroupPrivs($newusergrpid, $node, $adds, $removes, "group");
$_SESSION['dirtyprivs'] = 1;
- if(array_key_exists($newusergrpid, $user['groups']) &&
+ if(isset($user['groups'][$newusergrpid]) &&
in_array($newpriv, array('nodeAdmin', 'block', 'cascade')))
print "refreshNodeDropData();";
}
@@ -3176,7 +3186,7 @@ function AJchangeResourcePrivs() {
$newprivval = processInputVar('value', ARG_STRING);
$allprivs = getResourcePrivs();
- if(! isset($allprivs[$newpriv])) {
+ if(! in_array($newpriv, $allprivs)) {
$text = "Invalid resource privilege submitted.";
print "alert('$text');";
return;
@@ -3211,13 +3221,14 @@ function AJchangeResourcePrivs() {
return;
}
- # get cascade privs at this node
+ # get privs at this node
+ $privs = getNodePrivileges($node, 'resources');
$cascadePrivs = getNodeCascadePrivileges($node, "resources");
if($newprivval == 'true') {
// if $resourcegrp already has $newpriv cascaded to it, do
nothing
- if(array_key_exists($resourcegrp, $cascadePrivs['resources']) &&
- isset($cascadePrivs['resources'][$resourcegrp][$newpriv]))
+ if(isset($cascadePrivs['resources'][$resourcegrp][$newpriv]) &&
+ ! isset($privs['resources'][$resourcegrp]['block']))
return;
// add priv
$adds = array($newpriv);
@@ -3262,7 +3273,7 @@ function AJsubmitAddUserPriv() {
array_push($usertypes["users"], "cascade");
$newuserprivs = array();
foreach($usertypes["users"] as $type) {
- if(isset($perms[$type]))
+ if(in_array($type, $perms))
array_push($newuserprivs, $type);
}
if(empty($newuserprivs) || (count($newuserprivs) == 1 &&
@@ -3317,7 +3328,7 @@ function AJsubmitAddUserGroupPriv() {
array_push($usertypes["users"], "cascade");
$newgroupprivs = array();
foreach($usertypes["users"] as $type) {
- if(isset($perms[$type]))
+ if(in_array($type, $perms))
array_push($newgroupprivs, $type);
}
if(empty($newgroupprivs) || (count($newgroupprivs) == 1 &&
@@ -3331,7 +3342,7 @@ function AJsubmitAddUserGroupPriv() {
clearPrivCache();
print "refreshPerms(); ";
print "addUserGroupPaneHide(); ";
- if(array_key_exists($newgroupid, $user['groups']) &&
+ if(isset($user['groups'][$newgroupid]) &&
(isset($perms['nodeAdmin']) ||
isset($perms['cascade']) ||
isset($perms['block'])))
@@ -3370,7 +3381,7 @@ function AJsubmitAddResourcePriv() {
}
list($newtype, $tmp) = explode('/', $groupdata[$newgroupid]['name']);
- if(! array_key_exists($newgroupid, $resourcegroups[$newtype])) {
+ if(! isset($resourcegroups[$newtype][$newgroupid])) {
$text = "You do not have rights to manage the specified
resource group.";
print "addResourceGroupPaneHide(); ";
print "alert('$text');";
@@ -3381,11 +3392,11 @@ function AJsubmitAddResourcePriv() {
$privtypes = getResourcePrivs();
$newgroupprivs = array();
foreach($privtypes as $type) {
- if(isset($perms[$type]))
+ if(in_array($type, $perms))
array_push($newgroupprivs, $type);
}
if(empty($newgroupprivs) || (count($newgroupprivs) == 1 &&
- isset($newgroupprivs["cascade"]))) {
+ in_array("cascade", $newgroupprivs))) {
$text = "<font color=red>No resource group privileges were
specified</font>";
print setAttribute('addResourceGroupPrivStatus', 'innerHTML',
$text);
return;
@@ -3417,7 +3428,7 @@ function AJsubmitAddResourcePriv() {
function checkUserHasPriv($priv, $uid, $node, $privs=0, $cascadePrivs=0) {
global $user;
$key = getKey(array($priv, $uid, $node, $privs, $cascadePrivs));
- if(array_key_exists($key, $_SESSION['userhaspriv']))
+ if(isset($_SESSION['userhaspriv'][$key]))
return $_SESSION['userhaspriv'][$key];
if($user["id"] != $uid) {
$_user = getUserInfo($uid, 0, 1);
@@ -3438,12 +3449,9 @@ function checkUserHasPriv($priv, $uid, $
}
// if user (has $priv at this node) ||
# (has cascaded $priv && ! have block at this node) return 1
- if((array_key_exists($affilUserid, $privs["users"]) &&
- isset($privs["users"][$affilUserid][$priv])) ||
- ((array_key_exists($affilUserid, $cascadePrivs["users"]) &&
- isset($cascadePrivs["users"][$affilUserid][$priv])) &&
- (! array_key_exists($affilUserid, $privs["users"]) ||
- ! isset($privs["users"][$affilUserid]['block'])))) {
+ if(isset($privs["users"][$affilUserid][$priv]) ||
+ (isset($cascadePrivs["users"][$affilUserid][$priv]) &&
+ ! isset($privs["users"][$affilUserid]['block']))) {
$_SESSION['userhaspriv'][$key] = 1;
return 1;
}
@@ -3451,12 +3459,9 @@ function checkUserHasPriv($priv, $uid, $
foreach($_user["groups"] as $groupid => $groupname) {
// if group (has $priv at this node) ||
# (has cascaded $priv && ! have block at this node) return 1
- if((array_key_exists($groupid, $privs["usergroups"]) &&
- isset($privs["usergroups"][$groupid]['privs'][$priv])) ||
- ((array_key_exists($groupid, $cascadePrivs["usergroups"]) &&
-
isset($cascadePrivs["usergroups"][$groupid]['privs'][$priv])) &&
- (! array_key_exists($groupid, $privs["usergroups"]) ||
- (!
isset($privs["usergroups"][$groupid]['privs']['block']))))) {
+ if(isset($privs["usergroups"][$groupid]['privs'][$priv]) ||
+
(isset($cascadePrivs["usergroups"][$groupid]['privs'][$priv]) &&
+ ! isset($privs["usergroups"][$groupid]['privs']['block']))) {
$_SESSION['userhaspriv'][$key] = 1;
return 1;
}
Modified: vcl/trunk/web/.ht-inc/utils.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/utils.php?rev=1779664&r1=1779663&r2=1779664&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/utils.php (original)
+++ vcl/trunk/web/.ht-inc/utils.php Fri Jan 20 18:21:45 2017
@@ -1306,8 +1306,6 @@ function getImages($includedeleted=0, $i
while($row = mysql_fetch_assoc($qh)) {
$id = $row['imageid'];
unset($row['imageid']);
- if(! array_key_exists($id, $allrevisiondata))
- $allrevisiondata[$id] = array();
$allrevisiondata[$id][$row['id']] = $row;
}
$query = "SELECT i.id AS id,"
@@ -1374,7 +1372,7 @@ function getImages($includedeleted=0, $i
if($row['addomainid'] != NULL)
$imagelist[$includedeleted][$row['id']]['adauthenabled'] = 1;
if($row["imagemetaid"] != NULL) {
- if(array_key_exists($row['imagemetaid'], $allmetadata))
{
+ if(isset($allmetadata[$row['imagemetaid']])) {
$metaid = $row['imagemetaid'];
$imagelist[$includedeleted][$row['id']]['checkuser'] =
$allmetadata[$metaid]['checkuser'];
$imagelist[$includedeleted][$row['id']]['rootaccess'] =
$allmetadata[$metaid]['rootaccess'];
@@ -1394,7 +1392,7 @@ function getImages($includedeleted=0, $i
else
$imagelist[$includedeleted][$row["id"]]["imagemetaid"] = NULL;
}
- if(array_key_exists($row['id'], $allrevisiondata))
+ if(isset($allrevisiondata[$row['id']]))
$imagelist[$includedeleted][$row['id']]['imagerevision'] =
$allrevisiondata[$row['id']];
$imagelist[$includedeleted][$row['id']]['connectmethods'] =
getImageConnectMethods($row['id']);
}
@@ -1431,7 +1429,7 @@ function getImages($includedeleted=0, $i
////////////////////////////////////////////////////////////////////////////////
function getServerProfiles($id=0) {
$key = getKey(array('getServerProfiles', $id));
- if(array_key_exists($key, $_SESSION['usersessiondata']))
+ if(isset($_SESSION['usersessiondata'][$key]))
return $_SESSION['usersessiondata'][$key];
$fixeddata = array();
@@ -1475,7 +1473,7 @@ function getServerProfiles($id=0) {
$profiles = array();
while($row = mysql_fetch_assoc($qh)) {
$profiles[$row['id']] = $row;
- if(array_key_exists($row['id'], $fixeddata)) {
+ if(isset($fixeddata[$row['id']])) {
$profiles[$row['id']]['netmask'] =
$fixeddata[$row['id']]['netmask'];
$profiles[$row['id']]['router'] =
$fixeddata[$row['id']]['router'];
$profiles[$row['id']]['dns'] = implode(',',
$fixeddata[$row['id']]['dns']);
@@ -1504,7 +1502,7 @@ function getServerProfiles($id=0) {
////////////////////////////////////////////////////////////////////////////////
function getServerProfileImages($userid) {
$key = getKey(array('getServerProfileImages', $userid));
- if(array_key_exists($key, $_SESSION['usersessiondata']))
+ if(isset($_SESSION['usersessiondata'][$key]))
return $_SESSION['usersessiondata'][$key];
$resources = getUserResources(array('serverCheckOut',
'serverProfileAdmin'),
array('available', 'administer'));
@@ -1621,7 +1619,7 @@ function getImageNotes($imageid) {
////////////////////////////////////////////////////////////////////////////////
function getImageConnectMethods($imageid, $revisionid=0, $nostatic=0) {
$key = getKey(array('getImageConnectMethods', (int)$imageid,
(int)$revisionid));
- if(array_key_exists($key, $_SESSION['usersessiondata']))
+ if(isset($_SESSION['usersessiondata'][$key]))
return $_SESSION['usersessiondata'][$key];
if($revisionid == 0)
$revisionid = getProductionRevisionid($imageid, $nostatic);
@@ -1633,54 +1631,68 @@ function getImageConnectMethods($imageid
static $allmethods = array();
if($nostatic)
$allmethods = array();
+
if(empty($allmethods)) {
- $query = "SELECT DISTINCT c.id, "
- . "c.description, "
- . "cm.disabled, "
- . "i.id AS imageid, "
- . "cm.imagerevisionid AS
cmimagerevisionid, "
- . "ir.id AS imagerevisionid, "
- . "ir.imagename "
- . "FROM image i "
- . "LEFT JOIN OS o ON (o.id = i.OSid) "
- . "LEFT JOIN OStype ot ON (ot.name = o.type) "
- . "LEFT JOIN imagerevision ir ON (ir.imageid = i.id) "
- . "LEFT JOIN connectmethodmap cm ON (cm.OStypeid = ot.id
OR "
- . "cm.OSid = o.id OR "
- . "cm.imagerevisionid =
ir.id) "
- . "LEFT JOIN connectmethod c ON (cm.connectmethodid =
c.id) "
- . "WHERE cm.autoprovisioned IS NULL "
- . "ORDER BY i.id, "
- . "cm.disabled, "
- . "c.description";
+ $query = "DROP TEMPORARY TABLE IF EXISTS imageconnectmethods";
+ doQuery($query);
+ $query = "CREATE TEMPORARY TABLE imageconnectmethods ( "
+ . "imageid smallint(5) unsigned NOT NULL, "
+ . "imagerevisionid mediumint(8) unsigned NOT NULL, "
+ . "connectmethodid tinyint unsigned NOT NULL, "
+ . "description varchar(255) NOT NULL, "
+ . "disabled tinyint(1) unsigned NOT NULL, "
+ . "UNIQUE KEY (imagerevisionid, connectmethodid,
disabled) "
+ . ") ENGINE=MEMORY";
+ doQuery($query, 101);
+
+ $qbase = "INSERT IGNORE INTO imageconnectmethods "
+ . "SELECT DISTINCT i.id, "
+ . "ir.id, "
+ . "c.id, "
+ . "c.description, "
+ . "cm.disabled "
+ . "FROM image i "
+ . "LEFT JOIN OS o ON (o.id = i.OSid) "
+ . "LEFT JOIN OStype ot ON (ot.name = o.type) "
+ . "LEFT JOIN imagerevision ir ON (ir.imageid = i.id) "
+ . "LEFT JOIN connectmethodmap cm ON (%s) "
+ . "LEFT JOIN connectmethod c ON (cm.connectmethodid =
c.id) "
+ . "WHERE cm.autoprovisioned IS NULL "
+ . "HAVING c.id IS NOT NULL "
+ . "ORDER BY i.id, "
+ . "cm.disabled, "
+ . "c.description";
+ $query = sprintf($qbase, "cm.OStypeid = ot.id");
+ doQuery($query);
+ $query = sprintf($qbase, "cm.OSid = o.id");
+ doQuery($query);
+ $query = sprintf($qbase, "cm.imagerevisionid = ir.id");
+ doQuery($query);
+
+ $query = "SELECT imageid, "
+ . "imagerevisionid, "
+ . "connectmethodid, "
+ . "description, "
+ . "disabled "
+ . "FROM imageconnectmethods "
+ . "ORDER BY imagerevisionid, "
+ . "connectmethodid, "
+ . "disabled";
+
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh)) {
- $_imageid = $row['imageid'];
- $_revid = $row['imagerevisionid'];
- unset($row['imageid']);
- unset($row['imagerevisionid']);
- if(! array_key_exists($_imageid, $allmethods))
- $allmethods[$_imageid] = array();
- if(! array_key_exists($_revid, $allmethods[$_imageid]))
- $allmethods[$_imageid][$_revid] = array();
- $allmethods[$_imageid][$_revid][] = $row;
+ if($row['disabled'] &&
+
isset($allmethods[$row['imageid']][$row['imagerevisionid']][$row['connectmethodid']]))
+
unset($allmethods[$row['imageid']][$row['imagerevisionid']][$row['connectmethodid']]);
+ else
+
$allmethods[$row['imageid']][$row['imagerevisionid']][$row['connectmethodid']]
= $row['description'];
}
}
- if(! array_key_exists($imageid, $allmethods) ||
- ! array_key_exists($revisionid, $allmethods[$imageid])) {
+ if(! isset($allmethods[$imageid][$revisionid])) {
$_SESSION['usersessiondata'][$key] = array();
return array();
}
- $methods = array();
- foreach($allmethods[$imageid][$revisionid] as $data) {
- if($data['disabled']) {
- if(array_key_exists($data['id'], $methods))
- unset($methods[$data['id']]);
- }
- else
- $methods[$data['id']] = $data['description'];
- }
-
+ $methods = $allmethods[$imageid][$revisionid];
$_SESSION['usersessiondata'][$key] = $methods;
return $methods;
}
@@ -1746,7 +1758,7 @@ function getImageConnectMethodTexts($ima
$qh = doQuery($query, 101);
while($row = mysql_fetch_assoc($qh)) {
if($row['disabled']) {
- if(array_key_exists($row['id'], $methods))
+ if(isset($methods[$row['id']]))
unset($methods[$row['id']]);
}
else
@@ -1845,7 +1857,7 @@ function getProductionRevisionid($imagei
if($nostatic)
$alldata = array();
if(! empty($alldata))
- if(array_key_exists($imageid, $alldata))
+ if(isset($alldata[$imageid]))
return $alldata[$imageid];
else
return '';
@@ -1874,7 +1886,7 @@ function getProductionRevisionid($imagei
function removeNoCheckout($images) {
$allimages = getImages();
foreach(array_keys($images) as $id) {
- if(array_key_exists($id, $allimages) && !
$allimages[$id]["forcheckout"])
+ if(isset($allimages[$id]) && ! $allimages[$id]["forcheckout"])
unset($images[$id]);
}
return $images;
@@ -1927,7 +1939,7 @@ function getUserResources($userprivs, $r
if(isset($userprivs['managementnodeAdmin']))
$userprivs[] = 'mgmtNodeAdmin';
$key = getKey(array($userprivs, $resourceprivs, $onlygroups,
$includedeleted, $userid, $groupid));
- if(array_key_exists($key, $_SESSION['userresources']))
+ if(isset($_SESSION['userresources'][$key]))
return $_SESSION['userresources'][$key];
#FIXME this whole function could be much more efficient
$bygroup = 0;
@@ -1970,11 +1982,8 @@ function getUserResources($userprivs, $r
. "u.userid = $userid AND "
. "t.name IN ('block','cascade',$inlist)";
$qh = doQuery($query);
- while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row['privnodeid'], $privdataset['user']))
- $privdataset['user'][$row['privnodeid']] = array();
+ while($row = mysql_fetch_assoc($qh))
$privdataset['user'][$row['privnodeid']][] = $row['name'];
- }
$query = "SELECT t.name, "
. "u.usergroupid, "
. "u.privnodeid "
@@ -1992,11 +2001,8 @@ function getUserResources($userprivs, $r
. "ORDER BY u.privnodeid, "
. "u.usergroupid";
$qh = doQuery($query, 101);
- while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row['privnodeid'],
$privdataset['usergroup']))
- $privdataset['usergroup'][$row['privnodeid']] = array();
+ while($row = mysql_fetch_assoc($qh))
$privdataset['usergroup'][$row['privnodeid']][] = array('name'
=> $row['name'], 'groupid' => $row['usergroupid']);
- }
# travel up tree looking at privileges granted at parent nodes
foreach($startnodes as $nodeid) {
@@ -2030,7 +2036,7 @@ function getUserResources($userprivs, $r
foreach($resourceprivs as $priv) {
if(isset($nodeprivs[$nodeid]["resources"][$resourceid][$priv])) {
list($type, $name, $id) = explode('/',
$resourceid);
- if(! array_key_exists($type,
$resourcegroups))
+ if(! isset($resourcegroups[$type]))
$resourcegroups[$type] =
array();
if(!
isset($resourcegroups[$type][$name]))
$resourcegroups[$type][$id] =
$name;
@@ -2041,10 +2047,9 @@ function getUserResources($userprivs, $r
foreach(array_keys($nodeprivs[$nodeid]["cascaderesources"]) as
$resourceid) {
foreach($resourceprivs as $priv) {
if(isset($nodeprivs[$nodeid]["cascaderesources"][$resourceid][$priv]) &&
- ! (array_key_exists($resourceid,
$nodeprivs[$nodeid]["resources"]) &&
-
isset($nodeprivs[$nodeid]["resources"][$resourceid]["block"]))) {
+ !
(isset($nodeprivs[$nodeid]["resources"][$resourceid]["block"]))) {
list($type, $name, $id) = explode('/',
$resourceid);
- if(! array_key_exists($type,
$resourcegroups))
+ if(! isset($resourcegroups[$type]))
$resourcegroups[$type] =
array();
if(!
isset($resourcegroups[$type][$name]))
$resourcegroups[$type][$id] =
$name;
@@ -2070,7 +2075,7 @@ function getUserResources($userprivs, $r
if(! $bygroup)
addOwnedResources($resources, $includedeleted, $userid);
$noimageid = getImageId('noimage');
- if(array_key_exists($noimageid, $resources['image']))
+ if(isset($resources['image'][$noimageid]))
unset($resources['image'][$noimageid]);
$_SESSION['userresources'][$key] = $resources;
return $resources;
@@ -2102,7 +2107,7 @@ function getUserResourcesUp(&$nodeprivs,
$lastid = 0;
while(count($nodelist)) {
$id = array_pop($nodelist);
- if(array_key_exists($id, $nodeprivs))
+ if(isset($nodeprivs[$id]))
continue;
addNodeUserResourcePrivs($nodeprivs, $id, $lastid, $userid,
$resourceprivs, $privdataset);
@@ -2131,7 +2136,7 @@ function getUserResourcesDown(&$nodepriv
$resourceprivs, $privdataset) {
# FIXME can we check for cascading and if not there, don't descend?
$children = getChildNodes($nodeid);
- foreach(array_keys($children) as $id) {
+ foreach($children as $id => $tmp) {
addNodeUserResourcePrivs($nodeprivs, $id, $nodeid, $userid,
$resourceprivs, $privdataset);
getUserResourcesDown($nodeprivs, $id, $userid, $resourceprivs,
$privdataset);
}
@@ -2164,7 +2169,7 @@ function addNodeUserResourcePrivs(&$node
# add permissions for user
$block = 0;
- if(array_key_exists($id, $privdataset['user'])) {
+ if(isset($privdataset['user'][$id])) {
foreach($privdataset['user'][$id] as $name) {
if($name != 'block')
$nodeprivs[$id]['user'][$name] = 1;
@@ -2198,23 +2203,22 @@ function addNodeUserResourcePrivs(&$node
"block" => 0);
foreach($resourceprivs as $priv)
$basearray[$priv] = 0;
- if(array_key_exists($id, $privdataset['usergroup'])) {
+ if(isset($privdataset['usergroup'][$id])) {
foreach($privdataset['usergroup'][$id] as $data) {
- if(! array_key_exists($data["groupid"],
$nodeprivs[$id]))
+ if(! isset($nodeprivs[$id][$data["groupid"]]))
$nodeprivs[$id][$data["groupid"]] = $basearray;
$nodeprivs[$id][$data["groupid"]][$data["name"]] = 1;
}
}
# add groups from $lastid if it is not 0
- $groupkeys = array_keys($nodeprivs[$id]);
if($lastid) {
- foreach(array_keys($nodeprivs[$lastid]) as $groupid) {
- if(isset($groupkeys[$groupid]))
+ foreach($nodeprivs[$lastid] as $groupid => $tmp) {
+ if(isset($nodeprivs[$id][$groupid]))
continue;
$nodeprivs[$id][$groupid] = $basearray;
}
}
- foreach(array_keys($nodeprivs[$id]) as $groupid) {
+ foreach($nodeprivs[$id] as $groupid => $tmp) {
if(! is_numeric($groupid))
continue;
// if don't have anything in $resourceprivs, set cascade = 0
@@ -2230,7 +2234,7 @@ function addNodeUserResourcePrivs(&$node
// if group not blocking at this node, and group had cascade at
previous
# node
if($lastid && ! $nodeprivs[$id][$groupid]["block"] &&
- array_key_exists($groupid, $nodeprivs[$lastid]) &&
+ isset($nodeprivs[$lastid][$groupid]) &&
$nodeprivs[$lastid][$groupid]["cascade"]) {
# set cascade = 1
$nodeprivs[$id][$groupid]["cascade"] = 1;
@@ -2336,7 +2340,7 @@ function addOwnedResources(&$resources,
$query .= " AND deleted = 0";
$qh = doQuery($query, 101);
while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row["id"], $resources[$type]))
+ if(! isset($resources[$type][$row["id"]]))
$resources[$type][$row["id"]] = $row[$field];
}
}
@@ -2370,7 +2374,7 @@ function addOwnedResourceGroups(&$resour
. "g.ownerusergroupid IN ($groupids)";
$qh = doQuery($query, 101);
while($row = mysql_fetch_assoc($qh)) {
- if(! array_key_exists($row["id"],
$resourcegroups[$row["type"]]))
+ if(! isset($resourcegroups[$row["type"]][$row["id"]]))
$resourcegroups[$row["type"]][$row["id"]] =
$row["name"];
}
}
@@ -2647,7 +2651,7 @@ function encryptDataAsymmetric($data, $p
////////////////////////////////////////////////////////////////////////////////
function getParentNodes($node) {
global $nodeparents;
- if(array_key_exists($node, $nodeparents))
+ if(isset($nodeparents[$node]))
return $nodeparents[$node];
$nodelist = array();
@@ -2676,7 +2680,7 @@ function getParentNodes($node) {
////////////////////////////////////////////////////////////////////////////////
function getChildNodes($parent=DEFAULT_PRIVNODE) {
global $cache;
- if(! array_key_exists('nodes', $cache))
+ if(! isset($cache['nodes']))
# call getNodeInfo to populate $cache['nodes']
getNodeInfo($parent);
@@ -2684,12 +2688,10 @@ function getChildNodes($parent=DEFAULT_P
if(empty($allnodes)) {
foreach($cache['nodes'] as $id => $node) {
unset($node['id']);
- if(! array_key_exists($node['parent'], $allnodes))
- $allnodes[$node['parent']] = array();
$allnodes[$node['parent']][$id] = $node;
}
}
- if(array_key_exists($parent, $allnodes))
+ if(isset($allnodes[$parent]))
return $allnodes[$parent];
else
return array();
@@ -2730,7 +2732,7 @@ function getChildNodes($parent=DEFAULT_P
function getUserGroups($groupType=0, $affiliationid=0) {
global $user;
$key = getKey(array($groupType, $affiliationid,
$user['showallgroups']));
- if(array_key_exists($key, $_SESSION['usersessiondata']))
+ if(isset($_SESSION['usersessiondata'][$key]))
return $_SESSION['usersessiondata'][$key];
$return = array();
$query = "SELECT ug.id, "
@@ -2965,14 +2967,8 @@ function getResourceGroupMemberships($ty
. "gm.resourceid = r.id AND "
. "r.resourcetypeid = t.id";
$qh = doQuery($query, 282);
- while($row = mysql_fetch_assoc($qh)) {
- if(array_key_exists($row["id"], $return[$type])) {
- array_push($return[$type][$row["id"]],
$row["groupid"]);
- }
- else {
- $return[$type][$row["id"]] =
array($row["groupid"]);
- }
- }
+ while($row = mysql_fetch_assoc($qh))
+ $return[$type][$row["id"]][] = $row["groupid"];
}
return $return;
}
@@ -3004,7 +3000,7 @@ function getResourceGroupMemberships($ty
////////////////////////////////////////////////////////////////////////////////
function getResourceGroupMembers($type="all") {
$key = getKey(array('getResourceGroupMembers', $type));
- if(array_key_exists($key, $_SESSION['userresources']))
+ if(isset($_SESSION['userresources'][$key]))
return $_SESSION['userresources'][$key];
$return = array();
@@ -3076,14 +3072,10 @@ function getResourceGroupMembers($type="
. $orders;
$qh = doQuery($query, 282);
while($row = mysql_fetch_assoc($qh)) {
- if(array_key_exists('deleted', $row) && $row['deleted'] == 1)
+ if(isset($row['deleted']) && $row['deleted'] == 1)
continue;
- if(array_key_exists('deleted2', $row) && $row['deleted2'] == 1)
+ if(isset($row['deleted2']) && $row['deleted2'] == 1)
continue;
- if(! array_key_exists($row['resourcetype'], $return))
- $return[$row['resourcetype']] = array();
- if(! array_key_exists($row['resourcegroupid'],
$return[$row['resourcetype']]))
- $return[$row['resourcetype']][$row['resourcegroupid']]
= array();
$return[$row['resourcetype']][$row['resourcegroupid']][$row['resourceid']] =
array('subid' => $row['subid'],
'name' => $row[$row['resourcetype']]);
@@ -3258,9 +3250,9 @@ function getAffiliations() {
////////////////////////////////////////////////////////////////////////////////
function getUserUnityID($userid) {
global $cache;
- if(! array_key_exists('unityids', $cache))
+ if(! isset($cache['unityids']))
$cache['unityids'] = array();
- if(array_key_exists($userid, $cache['unityids']))
+ if(isset($cache['unityids'][$userid]))
return $cache['unityids'][$userid];
$query = "SELECT unityid FROM user WHERE id = $userid";
$qh = doQuery($query, 101);
@@ -3837,7 +3829,7 @@ function getUsersGroupPerms($usergroupid
function checkUserHasPerm($perm, $userid=0) {
global $user;
if($userid == 0) {
- if(is_array($user) && array_key_exists('groupperms', $user))
+ if(isset($user['groupperms']))
$perms = $user['groupperms'];
else
return 0;
@@ -7865,8 +7857,6 @@ function findAvailableTimes($start, $end
if($row['duration'] > $reqduration)
$row['duration'] = $reqduration;
$row['endts'] = $row['startts'] +
$row['duration'];
- if(! array_key_exists($row['compid'], $slots))
- $slots[$row['compid']] = array();
$slots[$row['compid']][] = $row;
if($row['startts'] < $minstart)
$minstart = $row['startts'];
@@ -7923,8 +7913,6 @@ function findAvailableTimes($start, $end
$row['duration'] = $reqduration;
$row['start'] = $startdt;
$row['startts'] = $start;
- if(! array_key_exists($row['compid'], $slots))
- $slots[$row['compid']] = array();
$slots[$row['compid']][] = $row;
if($row['endts'] > $maxend)
$maxend = $row['endts'];
@@ -7980,8 +7968,6 @@ function findAvailableTimes($start, $end
}
$row['endts'] = $row['startts'] + $reqduration;
$row['duration'] = $reqduration;
- if(! array_key_exists($row['compid'], $slots))
- $slots[$row['compid']] = array();
$slots[$row['compid']][] = $row;
if($row['endts'] > $maxend)
$maxend = $row['endts'];
@@ -8011,7 +7997,7 @@ function findAvailableTimes($start, $end
$query .= "bc.computerid IN ($newincompids)";
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh)) {
- if(array_key_exists($row['compid'], $slots))
+ if(isset($slots[$row['compid']]))
fATremoveOverlaps($slots, $row['compid'],
$row['start'], $row['end'], 0);
}
@@ -8040,7 +8026,7 @@ function findAvailableTimes($start, $end
$query .= "s.fixedIP = '$mac'";
$qh = doQuery($query);
while($row = mysql_fetch_assoc($qh)) {
- if(array_key_exists($row['compid'], $slots))
+ if(isset($slots[$row['compid']]))
fATremoveOverlaps($slots, $row['compid'],
$row['start'], $row['end'], 0);
}
}
@@ -8081,7 +8067,7 @@ function findAvailableTimes($start, $end
$imgdata[$imageid]['maxconcurrent'], $ignorestates,
$extendonly, $reqid))
continue;
- if(array_key_exists($data['startts'], $options)) {
+ if(isset($options[$data['startts']])) {
if($data['duration'] >
$options[$data['startts']]['duration']) {
$options[$data['startts']]['duration']
= $data['duration'];
if(checkUserHasPerm('View Debug
Information'))
@@ -9141,11 +9127,11 @@ function selectInputHTML($name, $dataArr
$h .= " <option value=\"$id\" selected=\"selected\">";
else
$h .= " <option value=\"$id\">";
- if(is_array($dataArr[$id]) && array_key_exists("prettyname",
$dataArr[$id]))
+ if(isset($dataArr[$id]['prettyname']))
$h .= $dataArr[$id]["prettyname"] . "</option>\n";
- elseif(is_array($dataArr[$id]) && array_key_exists("name",
$dataArr[$id]))
+ elseif(isset($dataArr[$id]['name']))
$h .= $dataArr[$id]["name"] . "</option>\n";
- elseif(is_array($dataArr[$id]) && array_key_exists("hostname",
$dataArr[$id]))
+ elseif(isset($dataArr[$id]['hostname']))
$h .= $dataArr[$id]["hostname"] . "</option>\n";
else
$h .= $dataArr[$id] . "</option>\n";
@@ -9442,7 +9428,7 @@ function prettyDatetime($stamp, $showyea
global $locale;
if(! preg_match('/^[\d]+$/', $stamp))
$stamp = datetimeToUnix($stamp);
- if(! $notzoffset && array_key_exists('tzoffset',
$_SESSION['persistdata']))
+ if(! $notzoffset && isset($_SESSION['persistdata']['tzoffset']))
$stamp += $_SESSION['persistdata']['tzoffset'] * 60;
if($showyear)
$return = strftime('%A, %b %-d, %Y, %l:%M %P',
$stamp);
@@ -9832,7 +9818,7 @@ function getMaintItems($id=0) {
////////////////////////////////////////////////////////////////////////////////
function getMaintItemsForTimeTable($start, $end) {
$key = getKey(array('getMaintItemsForTimeTable', $start, $end));
- if(array_key_exists($key, $_SESSION['usersessiondata']))
+ if(isset($_SESSION['usersessiondata'][$key]))
return $_SESSION['usersessiondata'][$key];
$startdt = unixToDatetime($start);
$enddt = unixToDatetime($end);
@@ -11057,14 +11043,14 @@ function getConfigSubimages($configs) {
////////////////////////////////////////////////////////////////////////////////
function getNodeInfo($nodeid) {
global $cache;
- if(! array_key_exists('nodes', $cache))
+ if(! isset($cache['nodes']))
$cache['nodes'] = array();
- if(array_key_exists($nodeid, $cache['nodes']))
+ if(isset($cache['nodes'][$nodeid]))
return $cache['nodes'][$nodeid];
$qh = doQuery("SELECT id, parent, name FROM privnode", 330);
while($row = mysql_fetch_assoc($qh))
$cache['nodes'][$row['id']] = $row;
- if(array_key_exists($nodeid, $cache['nodes']))
+ if(isset($cache['nodes'][$nodeid]))
return $cache['nodes'][$nodeid];
else
return NULL;
@@ -11112,7 +11098,7 @@ function getNodePath($nodeid) {
////////////////////////////////////////////////////////////////////////////////
function sortKeepIndex($a, $b) {
if(is_array($a)) {
- if(array_key_exists("prettyname", $a)) {
+ if(isset($a["prettyname"])) {
if(preg_match('/[0-9]-[0-9]/', $a['prettyname']) ||
preg_match('/\.edu$|\.com$|\.net$|\.org$/',
$a['prettyname']) ||
preg_match('/[0-9]-[0-9]/', $b['prettyname']) ||
@@ -11120,7 +11106,7 @@ function sortKeepIndex($a, $b) {
return compareDashedNumbers($a["prettyname"],
$b["prettyname"]);
return strcasecmp($a["prettyname"], $b["prettyname"]);
}
- elseif(array_key_exists("name", $a)) {
+ elseif(isset($a["name"])) {
if(preg_match('/[0-9]-[0-9]/', $a['name']) ||
preg_match('/\.edu$|\.com$|\.net$|\.org$/',
$a['name']) ||
preg_match('/[0-9]-[0-9]/', $b['name']) ||
Modified: vcl/trunk/web/.ht-inc/xmlrpcWrappers.php
URL:
http://svn.apache.org/viewvc/vcl/trunk/web/.ht-inc/xmlrpcWrappers.php?rev=1779664&r1=1779663&r2=1779664&view=diff
==============================================================================
--- vcl/trunk/web/.ht-inc/xmlrpcWrappers.php (original)
+++ vcl/trunk/web/.ht-inc/xmlrpcWrappers.php Fri Jan 20 18:21:45 2017
@@ -2130,17 +2130,14 @@ function XMLRPCgetResourceGroupPrivs($na
$np = getNodePrivileges($nodeid, 'resources');
$cnp = getNodeCascadePrivileges($nodeid, 'resources');
$key = "$type/$name/$groupid";
- if(array_key_exists($key, $np['resources']) &&
- (in_array('block', $np['resources'][$key]) ||
- ! array_key_exists($key, $cnp['resources'])))
- $privs = $np['resources'][$key];
- elseif(array_key_exists($key, $cnp['resources']) &&
- array_key_exists($key, $np['resources'])) {
+ if(isset($np['resources'][$key]['block']) || !
isset($cnp['resources'][$key]))
+ $privs = array_keys($np['resources'][$key]);
+ elseif(isset($cnp['resources'][$key]) &&
isset($np['resources'][$key])) {
$allprivs = array_merge($cnp['resources'][$key],
$np['resources'][$key]);
- $privs = array_unique($allprivs);
+ $privs = array_keys($allprivs);
}
- elseif(array_key_exists($key, $cnp['resources']))
- $privs = $cnp['resources'][$key];
+ elseif(isset($cnp['resources'][$key]))
+ $privs = array_keys($cnp['resources'][$key]);
else
$privs = array();
return array('status' => 'success',
@@ -2283,10 +2280,8 @@ function _XMLRPCchangeResourceGroupPriv_
$key = "$type/$name/$groupid";
$cnp = getNodeCascadePrivileges($nodeid, "resources");
$np = getNodePrivileges($nodeid, 'resources');
- if(array_key_exists($key, $cnp['resources']) &&
- (! array_key_exists($key, $np['resources']) ||
- ! in_array('block', $np['resources'][$key]))) {
- $intersect = array_intersect($cnp['resources'][$key],
$changeperms);
+ if(isset($cnp['resources'][$key]) && !
isset($np['resources'][$key]['block'])) {
+ $intersect =
array_intersect(array_keys($cnp['resources'][$key]), $changeperms);
if(count($intersect)) {
return array('status' => 'error',
'errorcode' => 80,
@@ -2295,7 +2290,9 @@ function _XMLRPCchangeResourceGroupPriv_
}
if($mode == 'remove') {
- $diff = array_diff($np['resources'][$key], $changeperms);
+ if(! isset($np['resources'][$key]))
+ return array('status' => 'success');
+ $diff = array_diff(array_keys($np['resources'][$key]),
$changeperms);
if(count($diff) == 1 && in_array("cascade", $diff))
$changeperms[] = 'cascade';
}