From f767e55495317619cd39f130bb1791e4871899bd Mon Sep 17 00:00:00 2001 From: frytimo Date: Thu, 15 Jan 2026 12:16:26 -0400 Subject: [PATCH] Add a category select list to the permissions page (#7698) --- core/groups/group_permissions.php | 37 ++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/core/groups/group_permissions.php b/core/groups/group_permissions.php index 2368d626d8..bb749527cb 100644 --- a/core/groups/group_permissions.php +++ b/core/groups/group_permissions.php @@ -57,6 +57,7 @@ $view = $_REQUEST['view'] ?? ''; // $action = $_POST['action'] ?? ''; $search = $_REQUEST['search'] ?? ''; + $category = $_REQUEST['category'] ?? ''; $group_permissions = $_POST['group_permissions'] ?? ''; //process permission reload @@ -92,11 +93,19 @@ //set message and redirect message::add($text['message-permissions_reloaded'],'positive'); - header('Location: group_permissions.php?group_uuid='.urlencode($_GET['group_uuid']).($view ? '&view='.urlencode($view) : null).($search ? '&search='.urlencode($search) : '')); + header('Location: group_permissions.php?group_uuid='.urlencode($_GET['group_uuid']).($view ? '&view='.urlencode($view) : null).($category ? '&category='.urlencode($category) : null).($search ? '&search='.urlencode($search) : '')); exit; } } +//get list of categories (application names) + if (!empty($category) && $category == 'all') { + $category = ''; + } + $sql = "select distinct application_name from v_permissions order by application_name asc"; + $categories = $database->select($sql, null, 'all'); + unset($sql); + //get the list $sql = "select "; $sql .= " distinct p.permission_name, \n"; @@ -111,6 +120,10 @@ $sql .= " and group_name = :group_name \n"; $sql .= " and g.group_uuid = :group_uuid \n"; $sql .= "where true \n"; + if (!empty($category)) { + $sql .= "and p.application_name = :category \n"; + $parameters['category'] = $category; + } if (!empty($search)) { $sql .= "and ("; $sql .= " lower(p.permission_name) like :search \n"; @@ -230,7 +243,7 @@ $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); - header('Location: group_permissions.php?group_uuid='.urlencode($group_uuid).($view ? '&view='.urlencode($view) : null).($search ? '&search='.urlencode($search) : '')); + header('Location: group_permissions.php?group_uuid='.urlencode($group_uuid).($view ? '&view='.urlencode($view) : null).($category ? '&category='.urlencode($category) : null).($search ? '&search='.urlencode($search) : '')); exit; } @@ -251,7 +264,7 @@ message::add($text['message-update']); //redirect - header('Location: group_permissions.php?group_uuid='.urlencode($group_uuid).($view ? '&view='.urlencode($view) : null).($search ? '&search='.urlencode($search) : '')); + header('Location: group_permissions.php?group_uuid='.urlencode($group_uuid).($view ? '&view='.urlencode($view) : null).($category ? '&category='.urlencode($category) : null).($search ? '&search='.urlencode($search) : '')); exit; } @@ -268,13 +281,24 @@ echo "
".$text['title-group_permissions']."
".escape($group_name)."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','style'=>'margin-right: 15px;','collapse'=>'hide-md-dn','link'=>'groups.php']); - echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$settings->get('theme', 'button_icon_reload'),'collapse'=>'hide-md-dn','link'=>'?group_uuid='.urlencode($group_uuid).'&action=reload'.($view ? '&view='.urlencode($view) : null).($search ? '&search='.urlencode($search) : '')]); + echo button::create(['type'=>'button','label'=>$text['button-reload'],'icon'=>$settings->get('theme', 'button_icon_reload'),'collapse'=>'hide-md-dn','link'=>'?group_uuid='.urlencode($group_uuid).'&action=reload'.($view ? '&view='.urlencode($view) : null).($category ? '&category='.urlencode($category) : null).($search ? '&search='.urlencode($search) : '')]); if (permission_exists('group_member_view')) { echo button::create(['type'=>'button','label'=>$text['button-members'],'icon'=>'users','collapse'=>'hide-md-dn','link'=>'group_members.php?group_uuid='.urlencode($group_uuid)]); } echo "