function checkForGroupUsage($groupid, $type, &$msg = '') { global $user; $msgs = array(); if ($type == "user") { $name = getUserGroupName($groupid, 1); if ($name === 0) { return 0; } # resourcegroup.ownerusergroupid $query = "SELECT CONCAT(rt.name, '/', rg.name) AS name " . "FROM resourcegroup rg, " . "resourcetype rt " . "WHERE ownerusergroupid = {$groupid} AND " . "rg.resourcetypeid = rt.id"; $usedby = array(); $qh = doQuery($query, 310); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Owning User Group for Resource Groups</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # usergroup.editusergroupid $query = "SELECT CONCAT(ug.name, '@', a.name) AS name " . "FROM usergroup ug, " . "affiliation a " . "WHERE ug.editusergroupid = {$groupid} AND " . "ug.id != {$groupid} AND " . "ug.affiliationid = a.id"; $usedby = array(); $qh = doQuery($query, 313); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>'Editable by' Group for User Groups</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # userpriv.usergroupid $query = "SELECT DISTINCT privnodeid " . "FROM userpriv " . "WHERE usergroupid = {$groupid}"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = getNodePath($row['privnodeid']); } if (count($usedby)) { $msgs[] = "<h3>Assigned at Privilege Nodes</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # blockRequest.groupid $query = "SELECT name " . "FROM blockRequest " . "WHERE groupid = {$groupid} " . "AND status IN ('requested', 'accepted')"; $qh = doQuery($query, 311); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Assigned for Block Allocations</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # serverprofile.admingroupid $query = "SELECT name FROM serverprofile WHERE admingroupid = {$groupid}"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Admin User Group for Server Profiles</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # serverprofile.logingroupid $query = "SELECT name FROM serverprofile WHERE logingroupid = {$groupid}"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Access User Group for Server Profiles</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # serverrequest.admingroupid $query = "SELECT s.name " . "FROM serverrequest s, " . "request rq " . "WHERE s.admingroupid = {$groupid} AND " . "s.requestid = rq.id"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Admin User Group for Server Requests</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # serverrequest.logingroupid $query = "SELECT s.name " . "FROM serverrequest s, " . "request rq " . "WHERE s.logingroupid = {$groupid} AND " . "s.requestid = rq.id"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['name']; } if (count($usedby)) { $msgs[] = "<h3>Access User Group for Server Requests</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } if (count($msgs)) { $msg = "{$name} is currently in use in the following ways. It " . "cannot be deleted until it is no longer in use.<br><br>\n" . implode("<br>\n", $msgs); return 1; } return 0; } $name = getResourceGroupName($groupid); if (is_null($name)) { return 0; } # managementnode.imagelibgroupid $query = "SELECT hostname FROM managementnode WHERE imagelibgroupid = {$groupid}"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = $row['hostname']; } if (count($usedby)) { $msgs[] = "<h3>Management Node Image Library Group</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } # resourcepriv.resourcegroupid $query = "SELECT DISTINCT privnodeid FROM resourcepriv WHERE resourcegroupid = {$groupid}"; $qh = doQuery($query); $usedby = array(); while ($row = mysql_fetch_assoc($qh)) { $usedby[] = getNodePath($row['privnodeid']); } if (count($usedby)) { $msgs[] = "<h3>Assigned at Privilege Nodes</h3>\n" . implode("<br>\n", $usedby) . "<br>\n"; } if (count($msgs)) { $msg = "{$name} is currently in use in the following ways. It " . "cannot be deleted until it is no longer in use.<br><br>\n" . implode("<br>\n", $msgs); return 1; } return 0; }
function getMnsFromImage($imageid) { $comps = getMappedResources($imageid, 'image', 'computer'); if (empty($comps)) { return array(); } $inlist = implode(',', $comps); $query = "SELECT DISTINCT rgm.resourcegroupid " . "FROM resourcegroupmembers rgm, " . "resource r, " . "computer c " . "WHERE c.id = r.subid AND " . "r.resourcetypeid = 12 AND " . "r.id = rgm.resourceid AND " . "c.id in ({$inlist})"; $qh = doQuery($query); $compgroups = array(); while ($row = mysql_fetch_assoc($qh)) { $compgroups[] = $row['resourcegroupid']; } $mngrps = array(); foreach ($compgroups as $grpid) { $mngrpset = getResourceMapping('managementnode', 'computer', '', implode(',', $compgroups)); foreach ($mngrpset as $mngrpid => $compgrpset) { $mngrps[$mngrpid] = 1; } } $mngrpnames = array(); foreach (array_keys($mngrps) as $mnid) { $mngrpnames[] = getResourceGroupName($mnid); } $mns = getResourcesFromGroups($mngrpnames, 'managementnode', 0); $mnids = array(); foreach ($mns as $mnid => $name) { $mnids[$mnid] = 1; } return array_keys($mnids); }