Exemple #1
0
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;
}
Exemple #2
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);
}