$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"; ?>

$lang["systemsetup"], 'href' => $baseurl_short . "pages/admin/admin_home.php", 'menu' => true ), array( 'title' => $lang["page-title_user_group_management"], 'href' => $baseurl_short . "pages/admin/admin_group_management.php" ), array( 'title' => $lang["page-title_user_group_management_edit"], 'href' => generateURL("{$baseurl_short}pages/admin/admin_group_management_edit.php", $url_params), ), array( 'title' => $lang["page-title_user_group_permissions_edit"] . " - " . escape($group["name"]) ) ); renderBreadcrumbs($links_trail); ?>

" onClick="return confirm('');">
"; $fieldsuffix = ""; } DrawOption("f" . $field["ref"], "   - " . $lang["can_see_field"] . " '" . $fieldprefix . lang_or_i18n_get_translated($field["title"], "fieldtitle-") . $fieldsuffix . "'" . (($field["name"] == "") ? "" : " (" . escape($field["name"]) . ")")); } else { # Add it to the 'done' list so it is discarded. $permissions_done[] = "f" . $field["ref"]; } } DrawOption("F*", $lang["can_edit_all_fields"], true, true); $fields = ps_query("select " . columns_in("resource_type_field") . " from resource_type_field order by active desc,order_by", array(), "schema"); foreach ($fields as $field) { if (in_array("F*", $permissions)) { # Render disabled fields with strikethrough $fieldprefix = ""; $fieldsuffix = ""; if ($field["active"] == 0) { $fieldprefix = ""; $fieldsuffix = ""; } DrawOption("F-" . $field["ref"], "   - " . $lang["can_edit_field"] . " '" . $fieldprefix . lang_or_i18n_get_translated($field["title"], "fieldtitle-") . $fieldsuffix . "'" . (($field["name"] == "") ? "" : " (" . escape($field["name"]) . ")"), false); } else { # Add it to the 'done' list so it is discarded. $permissions_done[] = "F-" . $field["ref"]; } } ?> $permissions)); # Add any 'loose' featured collections at top level of the tree that contain resources (so aren't in a category) $loose_fcs = array_values(array_filter(get_featured_collections(0, ["access_control" => false]), function ($fc) { return $fc["has_resources"] > 0; })); foreach ($loose_fcs as $loose_fc) { $description = $lang["can_see_featured_collection"] . i18n_get_translated($loose_fc["name"]); DrawOption('j' . $loose_fc["ref"], $description, false, false); } } DrawOption("J", $lang["display_only_resources_within_accessible_themes"]); # ---------- end of featured collection categories # ---------- End of Dash Tiles ?>
" >