Beispiel #1
0
/**
* Delete a group
*
* @param    int     $grp_id     id of group to delete
* @return   string              HTML redirect
*
*/
function deleteGroup($grp_id)
{
    global $_CONF, $_TABLES, $_USER;
    if (!SEC_inGroup('Root') && DB_getItem($_TABLES['groups'], 'grp_name', "grp_id = {$grp_id}") == 'Root') {
        COM_accessLog("User {$_USER['username']} tried to delete the Root group with insufficient privileges.");
        return COM_refresh($_CONF['site_admin_url'] . '/group.php');
    }
    $GroupAdminGroups = SEC_getUserGroups();
    if (!in_array($grp_id, $GroupAdminGroups) && !SEC_groupIsRemoteUserAndHaveAccess($grp_id, $GroupAdminGroups)) {
        COM_accessLog("User {$_USER['username']} tried to delete group {$grp_id} with insufficient privileges.");
        return COM_refresh($_CONF['site_admin_url'] . '/group.php');
    }
    DB_delete($_TABLES['access'], 'acc_grp_id', $grp_id);
    DB_delete($_TABLES['group_assignments'], 'ug_grp_id', $grp_id);
    DB_delete($_TABLES['group_assignments'], 'ug_main_grp_id', $grp_id);
    DB_delete($_TABLES['groups'], 'grp_id', $grp_id);
    PLG_groupChanged($grp_id, 'delete');
    if (isset($_REQUEST['chk_showall']) && $_REQUEST['chk_showall'] == 1) {
        return COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=50&chk_showall=1');
    } else {
        return COM_refresh($_CONF['site_admin_url'] . '/group.php?msg=50');
    }
}
Beispiel #2
0
/**
 * used in the user editor in admin/user.php
 *
 * @param  string $fieldName
 * @param  string $fieldValue
 * @param  array  $A
 * @param  array  $icon_arr
 * @param  string $selected
 * @return string
 */
function ADMIN_getListField_usergroups($fieldName, $fieldValue, $A, $icon_arr, $selected = '')
{
    global $thisUsersGroups;
    $retval = false;
    if (!is_array($thisUsersGroups)) {
        $thisUsersGroups = SEC_getUserGroups();
    }
    if (in_array($A['grp_id'], $thisUsersGroups) || SEC_groupIsRemoteUserAndHaveAccess($A['grp_id'], $thisUsersGroups)) {
        switch ($fieldName) {
            case 'checkbox':
                $checked = '';
                if (is_array($selected) && in_array($A['grp_id'], $selected)) {
                    $checked = ' checked="checked"';
                }
                if ($A['grp_name'] === 'All Users' || $A['grp_name'] === 'Logged-in Users' || $A['grp_name'] === 'Remote Users') {
                    $retval = '<input type="checkbox" disabled="disabled"' . $checked . XHTML . '>';
                    if (!empty($checked)) {
                        $retval .= '<input type="hidden" name="groups[]" value="' . $A['grp_id'] . '"' . $checked . XHTML . '>';
                    }
                } else {
                    $retval = '<input type="checkbox" name="groups[]" value="' . $A['grp_id'] . '"' . $checked . XHTML . '>';
                }
                break;
            case 'grp_name':
                $retval = ucwords($fieldValue);
                break;
            default:
                $retval = $fieldValue;
                break;
        }
    }
    return $retval;
}
Beispiel #3
0
/**
 * returns field data for list of groups in the admin user editor group panel
 *
 */
function USER_getGroupListField($fieldname, $fieldvalue, $A, $icon_arr, $al_selected = '')
{
    global $_TABLES, $thisUsersGroups;
    $retval = false;
    if (!is_array($thisUsersGroups)) {
        $thisUsersGroups = SEC_getUserGroups();
    }
    if (is_array($al_selected)) {
        $selected = $al_selected[1];
        $uid = (int) $al_selected[0];
    }
    if (in_array($A['grp_id'], $thisUsersGroups) || SEC_groupIsRemoteUserAndHaveAccess($A['grp_id'], $thisUsersGroups)) {
        switch ($fieldname) {
            case 'checkbox':
                $checked = '';
                if (is_array($selected) && in_array($A['grp_id'], $selected)) {
                    $checked = ' checked="checked"';
                    if ($uid != '' && $uid > 0) {
                        $tresult = DB_query("SELECT COUNT(*) AS count FROM {$_TABLES['group_assignments']} WHERE ug_uid=" . $uid . " AND ug_main_grp_id=" . $A['grp_id']);
                        list($gcount) = DB_fetchArray($tresult);
                        if ($gcount < 1) {
                            $checked = ' checked="checked" disabled="disabled"';
                        }
                    }
                }
                if ($A['grp_name'] == 'All Users' || $A['grp_name'] == 'Logged-in Users' || $A['grp_name'] == 'Remote Users') {
                    $retval = '<input type="checkbox" disabled="disabled"' . $checked . '/>' . '<input type="hidden" name="groups[]" value="' . $A['grp_id'] . '"' . $checked . '/>';
                } else {
                    if ($A['grp_gl_core'] > 0 && !($A['account_type'] & LOCAL_USER)) {
                        $checked = ' disabled="disabled"';
                    }
                    $retval = '<input type="checkbox" name="groups[]" value="' . $A['grp_id'] . '"' . $checked . '/>';
                }
                break;
            case 'grp_name':
                $retval = ucwords($fieldvalue);
                break;
            default:
                $retval = $fieldvalue;
                break;
        }
    }
    return $retval;
}