summaryrefslogtreecommitdiffstats
path: root/modules-available/systemstatus/page.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/systemstatus/page.inc.php')
-rw-r--r--modules-available/systemstatus/page.inc.php6
1 files changed, 5 insertions, 1 deletions
diff --git a/modules-available/systemstatus/page.inc.php b/modules-available/systemstatus/page.inc.php
index 05a98e94..238537d8 100644
--- a/modules-available/systemstatus/page.inc.php
+++ b/modules-available/systemstatus/page.inc.php
@@ -33,7 +33,8 @@ class Page_SystemStatus extends Page
$service = Request::post('service', Request::REQUIRED, 'string');
$task = Taskmanager::submit('Systemctl', ['operation' => $action, 'service' => $service]);
$extra = '';
- $cmp = preg_replace('/\.service$|@.*$/', '', $service);
+ $cmp = preg_replace('/(@.*|\.service)$/', '', $service);
+ User::assertPermission("restart.$cmp");
if ($cmp === 'dmsd') {
$extra = '#id-DmsdLog_pane';
} elseif ($cmp === 'ldadp') {
@@ -292,11 +293,14 @@ class Page_SystemStatus extends Page
protected function showJournal($service, $permission)
{
+ $cmp = preg_replace('/(@.*|\.service)$/', '', $service);
User::assertPermission($permission);
$output = [
'name' => $service,
'service' => $service,
'task' => Taskmanager::submit('Systemctl', ['operation' => 'journal', 'service' => $service]),
+ 'restart_disabled' => User::hasPermission('restart.' . $cmp)
+ ? '' : 'disabled',
];
echo Render::parse('ajax-journal', ['modules' => [$output]]);
}