/** * 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'); } }
/** * 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; }
/** * 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; }