diff --git a/core/groups/group_permissions.php b/core/groups/group_permissions.php index 14c08d2ea9..8b5856d3ab 100644 --- a/core/groups/group_permissions.php +++ b/core/groups/group_permissions.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2018 - 2020 + Portions created by the Initial Developer are Copyright (C) 2018-2020 the Initial Developer. All Rights Reserved. Contributor(s): @@ -185,36 +185,43 @@ if (isset($sql_search)) { $sql .= "where ".$sql_search; } - $sql .= "order by application_name asc "; + $sql .= "order by application_name asc, permission_name asc "; $database = new database; - $group_permissions = $database->select($sql, $parameters, 'all'); + $application_permissions = $database->select($sql, $parameters, 'all'); + if (is_array($application_permissions) && @sizeof($application_permissions) != 0) { + foreach ($application_permissions as $x => $row) { + $array[$row['application_uuid']]['name'] = $row['application_name']; + $array[$row['application_uuid']]['permissions'][$x]['uuid'] = $row['permission_uuid']; + $array[$row['application_uuid']]['permissions'][$x]['name'] = $row['permission_name']; + $array[$row['application_uuid']]['permissions'][$x]['description'] = $row['permission_description']; + $array[$row['application_uuid']]['permissions'][$x]['assigned'] = $row['permission_assigned']; + } + $application_permissions = $array; + unset($array); + } unset($sql, $parameters); - //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //include the header + $document['title'] = $text['title-group_permissions']; require_once "resources/header.php"; //show the content - echo "
\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "
\n"; echo "
".$text['title-group_permissions']." (".escape($group_name).")
\n"; echo "
\n"; - echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','link'=>'groups.php']); - echo ""; - echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search','style'=> null]); - if ($paging_controls_mini != '') { - echo "".$paging_controls_mini."\n"; + echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$_SESSION['theme']['button_icon_back'],'id'=>'btn_back','collapse'=>'hide-sm-dn','link'=>'groups.php']); + echo "\n"; + echo "\n"; + echo ""; + echo button::create(['label'=>$text['button-search'],'icon'=>$_SESSION['theme']['button_icon_search'],'type'=>'submit','id'=>'btn_search','collapse'=>'hide-sm-dn','style'=>($search != '' ? 'display: none;' : null)]); + echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','collapse'=>'hide-sm-dn','link'=>'group_permissions.php?group_uuid='.urlencode($group_uuid),'style'=>($search == '' ? 'display: none;' : null)]); + if (permission_exists('group_permission_edit')) { + echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','collapse'=>'hide-sm-dn','style'=>'margin-left: 15px;','onclick'=>"document.getElementById('form_list').submit();"]); } - - echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'id'=>'btn_save','name'=>'action','value'=>'save','style'=>'margin-left: 15px;']); + echo " \n"; echo "
\n"; echo "
\n"; echo "
\n"; @@ -222,66 +229,56 @@ echo $text['description-group_permissions']."\n"; echo "

\n"; - echo "\n"; - if (is_array($group_permissions) && @sizeof($group_permissions) != 0) { - $x = 0; - foreach ($group_permissions as $row) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $checked = ($row['permission_assigned'] === true) ? " checked=\"checked\"" : $checked = ''; + if (is_array($application_permissions) && @sizeof($application_permissions) != 0) { + foreach ($application_permissions as $application_uuid => $application) { - $application_name = $row['application_name']; - $application_name = strtolower($application_name); + //output application heading + if (is_array($application['permissions']) && @sizeof($application['permissions']) != 0) { - $label_application_name = $row['application_name']; - $label_application_name = str_replace("_", " ", $label_application_name); - $label_application_name = str_replace("-", " ", $label_application_name); - $label_application_name = ucwords($label_application_name); + $application_name = strtolower($application['name']); + $label_application_name = ucwords(str_replace(['_','-'], ' ', $application['name'])); + + echo "".escape($label_application_name)."
\n"; + + echo "
\n"; + echo "\n"; + if (permission_exists('group_permission_edit')) { + echo " \n"; + } + echo "\n"; + echo "\n"; + + //output permissions + foreach ($application['permissions'] as $x => $permission) { + echo "\n"; + if (permission_exists('group_permission_edit')) { + echo " \n"; + } + echo " \n"; + echo "\n"; + } + + echo "
\n"; + echo " \n"; + echo " ".$text['label-group_name']."
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " ".escape($permission['name'])."
\n"; - if ($previous_application_name !== $row['application_name']) { - echo " "; - echo "  \n"; - echo " "; - echo " "; - echo " ".escape($label_application_name)."\n"; - echo " "; - echo "\n"; - if (permission_exists('group_permission_add') || permission_exists('group_permission_edit') || permission_exists('group_permission_delete')) { - echo " \n"; - echo " \n"; - echo " \n"; } - echo th_order_by('group_name', $text['label-group_name'], $order_by, $order); - if (permission_exists('group_permission_edit') && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') { - echo "  \n"; - } - echo "\n"; - - } - echo "\n"; - if (permission_exists('group_permission_add') || permission_exists('group_permission_edit') || permission_exists('group_permission_delete')) { - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - echo " \n"; - } - echo " ".escape($row['permission_name'])."\n"; - //echo " ".escape($row['group_name'])."\n"; - echo "\n"; - - //set the previous category - $previous_application_name = $row['application_name']; - $x++; } - unset($group_permissions); + unset($application_permissions); } - echo "\n"; - echo "
\n"; - echo "
".$paging_controls."
\n"; echo "\n"; //include the footer require_once "resources/footer.php"; -?> +?> \ No newline at end of file