$ref, ]; if ($offset) { $url_params['offset'] = $offset; } if ($order_by) { $url_params['orderby'] = $order_by; } if ($filter_by_parent) { $url_params['filterbyparent'] = $filter_by_parent; } if ($find) { $url_params['find'] = $find; } if ($filter_by_permissions) { $url_params['filterbypermissions'] = $filter_by_permissions; } $admin_group_permissions_url = generateURL("{$baseurl_short}pages/admin/admin_group_permissions.php", $url_params); if ($save !== '' && $copy_from === '' && enforcePostRequest(getval('ajax', '') == 'true')) { $group = get_usergroup($ref); if ( $group !== false && isset($group['inherit']) && is_array($group['inherit']) && in_array('permissions', $group['inherit']) ) { ajax_unauthorized(); } $permissions = trim_array(explode(',', (string) $group['permissions'])); $permissions_to_add = $permissions_to_remove = []; $processing_permissions = $_POST['permissions'] ?? []; foreach ($processing_permissions as $perm) { if (!isset($perm['permission'], $perm['reverse'], $perm['checked'])) { ajax_send_response(400, ajax_response_fail(ajax_build_message($lang['error_invalid_input']))); } $permission = $perm['permission']; $reverse = $perm['reverse'] == 1; $checked = $perm['checked'] === 'true'; if ( // Normal permissions (!$reverse && $checked) // Negative permissions || ($reverse && !$checked) ) { $permissions_to_add[] = base64_decode($permission); } else { $permissions_to_remove[] = base64_decode($permission); } } $perms = array_values(array_unique( array_diff( array_merge($permissions, $permissions_to_add), $permissions_to_remove ) )); $perms_csv = join(',', $perms); save_usergroup($ref, array('permissions' => $perms_csv)); log_activity(null, LOG_CODE_EDITED, $perms_csv, 'usergroup', 'permissions', $ref, null, null, null, true); ajax_send_response(200, ajax_response_ok_no_data()); } elseif ($save !== '' && $copy_from !== '' && enforcePostRequest(getval('ajax', '') == 'true')) { copy_usergroup_permissions($copy_from, $ref); } $group = get_usergroup($ref); if (isset($group['inherit']) && is_array($group['inherit']) && in_array("permissions", $group['inherit'])) { exit($lang["error-permissiondenied"]); } $permissions = trim_array(explode(",", (string)$group["permissions"])); $permissions_done = array(); include "../../include/header.php"; ?>