From 3ddf56c399746efe3c56194b7be522a92caefb59 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Tue, 16 Jan 2018 17:50:22 +0100 Subject: [minilinux] implemented permission-system. you can't see the side without any permission. there are only 2 permissions: show the side and update content (which includes the show permission). --- modules-available/minilinux/page.inc.php | 80 ++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 36 deletions(-) (limited to 'modules-available/minilinux/page.inc.php') diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index 2623500b..df4f14a3 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -7,7 +7,12 @@ class Page_MiniLinux extends Page { User::load(); - if (!User::hasPermission('superadmin')) { + if (!User::isLoggedIn()) { + Message::addError('main.no-permission'); + Util::redirect('?do=Main'); + } + + if (!(User::hasPermission("show") || User::hasPermission("update"))) { Message::addError('main.no-permission'); Util::redirect('?do=Main'); } @@ -81,48 +86,51 @@ class Page_MiniLinux extends Page $system['version'] = $selected['version']; } $data['versions'] = array_values($versionNumbers); + $data['allowedToUpdate'] = User::hasPermission("update"); echo Render::parse('filelist', $data); return; case 'download': - $id = Request::post('id'); - $name = Request::post('name'); - if (!$id || !$name || strpos("$id$name", '/') !== false) { - echo "Invalid download request"; - return; - } - $file = false; - $gpg = 'missing'; - foreach ($data['systems'] as &$system) { - if ($system['id'] !== $id) continue; - foreach ($system['versions'] as &$version) { - if ($version['version'] != $selectedVersion) continue; - foreach ($version['files'] as &$f) { - if ($f['name'] !== $name) continue; - $file = $f; - if (!empty($f['gpg'])) $gpg = $f['gpg']; - break; + if (User::hasPermission("update")) { + $id = Request::post('id'); + $name = Request::post('name'); + if (!$id || !$name || strpos("$id$name", '/') !== false) { + echo "Invalid download request"; + return; + } + $file = false; + $gpg = 'missing'; + foreach ($data['systems'] as &$system) { + if ($system['id'] !== $id) continue; + foreach ($system['versions'] as &$version) { + if ($version['version'] != $selectedVersion) continue; + foreach ($version['files'] as &$f) { + if ($f['name'] !== $name) continue; + $file = $f; + if (!empty($f['gpg'])) $gpg = $f['gpg']; + break; + } } } - } - if ($file === false) { - echo "Nonexistent system/file: $id / $name"; - return; - } - $task = Taskmanager::submit('DownloadFile', array( - 'url' => CONFIG_REMOTE_ML . '/' . $id . '/' . $selectedVersion . '/' . $name, - 'destination' => CONFIG_HTTP_DIR . '/' . $id . '/' . $name, - 'gpg' => $gpg - )); - if (!isset($task['id'])) { - echo 'Error launching download task: ' . $task['statusCode']; + if ($file === false) { + echo "Nonexistent system/file: $id / $name"; + return; + } + $task = Taskmanager::submit('DownloadFile', array( + 'url' => CONFIG_REMOTE_ML . '/' . $id . '/' . $selectedVersion . '/' . $name, + 'destination' => CONFIG_HTTP_DIR . '/' . $id . '/' . $name, + 'gpg' => $gpg + )); + if (!isset($task['id'])) { + echo 'Error launching download task: ' . $task['statusCode']; + return; + } + Property::setDownloadTask($file['md5'], $task['id']); + echo Render::parse('download', array( + 'name' => $name, + 'task' => $task['id'] + )); return; } - Property::setDownloadTask($file['md5'], $task['id']); - echo Render::parse('download', array( - 'name' => $name, - 'task' => $task['id'] - )); - return; } } -- cgit v1.2.3-55-g7522 From db4cf34ba9782dd5709a79a2d9a8e0337661486c Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 14 Feb 2018 14:30:18 +0100 Subject: [minilinux] Use new permission helpers --- modules-available/minilinux/page.inc.php | 80 ++++++++++------------ .../minilinux/templates/filelist.html | 6 +- 2 files changed, 41 insertions(+), 45 deletions(-) (limited to 'modules-available/minilinux/page.inc.php') diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index 710ffd15..6a331e1e 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -12,10 +12,7 @@ class Page_MiniLinux extends Page Util::redirect('?do=Main'); } - if (!(User::hasPermission("show") || User::hasPermission("update"))) { - Message::addError('main.no-permission'); - Util::redirect('?do=Main'); - } + User::assertPermission('show'); } protected function doRender() @@ -87,51 +84,50 @@ class Page_MiniLinux extends Page $system['version'] = $selected['version']; } $data['versions'] = array_values($versionNumbers); - $data['allowedToUpdate'] = User::hasPermission("update"); + Permission::addGlobalTags($data['perms'], null, ['update']); echo Render::parse('filelist', $data); return; case 'download': - if (User::hasPermission("update")) { - $id = Request::post('id'); - $name = Request::post('name'); - if (!$id || !$name || strpos("$id$name", '/') !== false) { - echo "Invalid download request"; - return; - } - $file = false; - $gpg = 'missing'; - foreach ($data['systems'] as &$system) { - if ($system['id'] !== $id) continue; - foreach ($system['versions'] as &$version) { - if ($version['version'] != $selectedVersion) continue; - foreach ($version['files'] as &$f) { - if ($f['name'] !== $name) continue; - $file = $f; - if (!empty($f['gpg'])) $gpg = $f['gpg']; - break; - } + User::assertPermission('update'); + $id = Request::post('id'); + $name = Request::post('name'); + if (!$id || !$name || strpos("$id$name", '/') !== false) { + echo "Invalid download request"; + return; + } + $file = false; + $gpg = 'missing'; + foreach ($data['systems'] as &$system) { + if ($system['id'] !== $id) continue; + foreach ($system['versions'] as &$version) { + if ($version['version'] != $selectedVersion) continue; + foreach ($version['files'] as &$f) { + if ($f['name'] !== $name) continue; + $file = $f; + if (!empty($f['gpg'])) $gpg = $f['gpg']; + break; } } - if ($file === false) { - echo "Nonexistent system/file: $id / $name"; - return; - } - $task = Taskmanager::submit('DownloadFile', array( - 'url' => CONFIG_REMOTE_ML . '/' . $id . '/' . $selectedVersion . '/' . $name, - 'destination' => CONFIG_HTTP_DIR . '/' . $id . '/' . $name, - 'gpg' => $gpg - )); - if (!isset($task['id'])) { - echo 'Error launching download task: ' . $task['statusCode']; - return; - } - Property::setDownloadTask($file['md5'], $task['id']); - echo Render::parse('download', array( - 'name' => $name, - 'task' => $task['id'] - )); + } + if ($file === false) { + echo "Nonexistent system/file: $id / $name"; return; } + $task = Taskmanager::submit('DownloadFile', array( + 'url' => CONFIG_REMOTE_ML . '/' . $id . '/' . $selectedVersion . '/' . $name, + 'destination' => CONFIG_HTTP_DIR . '/' . $id . '/' . $name, + 'gpg' => $gpg + )); + if (!isset($task['id'])) { + echo 'Error launching download task: ' . $task['statusCode']; + return; + } + Property::setDownloadTask($file['md5'], $task['id']); + echo Render::parse('download', array( + 'name' => $name, + 'task' => $task['id'] + )); + return; } } diff --git a/modules-available/minilinux/templates/filelist.html b/modules-available/minilinux/templates/filelist.html index 34138c14..8df868d2 100644 --- a/modules-available/minilinux/templates/filelist.html +++ b/modules-available/minilinux/templates/filelist.html @@ -18,7 +18,7 @@

{{lang_canUpdate1}} {{title}} {{lang_canUpdate2}}

- + {{/systemChanged}} {{^systemChanged}}

{{lang_systemUpdated}}

@@ -35,8 +35,8 @@ {{#fileChanged}} {{lang_outdated}}{{/fileChanged}}
- {{#fileChanged}} {{/fileChanged}} - {{^fileChanged}} {{/fileChanged}} + {{#fileChanged}} {{/fileChanged}} + {{^fileChanged}} {{/fileChanged}}
{{{download}}} -- cgit v1.2.3-55-g7522 From 49a2b4662fbc8950a28a22ff7b09f30f30c8b338 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 27 Mar 2018 15:35:28 +0200 Subject: [minilinux] permission 'show' => 'view' Refs #3338 --- modules-available/minilinux/lang/de/permissions.json | 2 +- modules-available/minilinux/lang/de/template-tags.json | 5 +++-- modules-available/minilinux/lang/en/permissions.json | 2 +- modules-available/minilinux/lang/en/template-tags.json | 5 +++-- modules-available/minilinux/page.inc.php | 2 +- modules-available/minilinux/permissions/permissions.json | 2 +- 6 files changed, 10 insertions(+), 8 deletions(-) (limited to 'modules-available/minilinux/page.inc.php') diff --git a/modules-available/minilinux/lang/de/permissions.json b/modules-available/minilinux/lang/de/permissions.json index 372ffc88..29012620 100644 --- a/modules-available/minilinux/lang/de/permissions.json +++ b/modules-available/minilinux/lang/de/permissions.json @@ -1,4 +1,4 @@ { - "show": "Zeige Komponenten des Minilinux. Wird nicht benötigt, wenn Nutzer eine der anderen Rechte hat.", + "view": "Zeige Komponenten des Minilinux. Wird nicht benötigt, wenn Nutzer eine der anderen Rechte hat.", "update": "Aktualisieren von Komponenten des Minilinux." } \ No newline at end of file diff --git a/modules-available/minilinux/lang/de/template-tags.json b/modules-available/minilinux/lang/de/template-tags.json index 18a8b7af..60a11db9 100644 --- a/modules-available/minilinux/lang/de/template-tags.json +++ b/modules-available/minilinux/lang/de/template-tags.json @@ -1,5 +1,4 @@ { - "lang_uptodate": "Aktuell", "lang_canUpdate1": "Mindestens eine Komponente von", "lang_canUpdate2": "kann aktualisiert werden. F\u00fcr einen reibungslosen Betrieb wird empfohlen, alle Komponenten auf dem aktuellen Stand zu halten.", "lang_configurationPackageNotFound": "Keine Konfigurationspakete gefunden!", @@ -10,5 +9,7 @@ "lang_outdated": "Veraltet", "lang_redownload": "Erneut herunterladen", "lang_systemUpdated": "Das System ist auf dem aktuellen Stand.", - "lang_update": "Aktualisieren" + "lang_update": "Aktualisieren", + "lang_updateAll": "Alle Module aktualisieren", + "lang_uptodate": "Aktuell" } \ No newline at end of file diff --git a/modules-available/minilinux/lang/en/permissions.json b/modules-available/minilinux/lang/en/permissions.json index 878388b0..b8389e62 100644 --- a/modules-available/minilinux/lang/en/permissions.json +++ b/modules-available/minilinux/lang/en/permissions.json @@ -1,4 +1,4 @@ { - "show": "Show list of minilinux components. Not needed if User has any of the other permissions.", + "view": "Show list of minilinux components. Not needed if User has any of the other permissions.", "update": "Update minilinux components." } \ No newline at end of file diff --git a/modules-available/minilinux/lang/en/template-tags.json b/modules-available/minilinux/lang/en/template-tags.json index aef15c03..48ba0c15 100644 --- a/modules-available/minilinux/lang/en/template-tags.json +++ b/modules-available/minilinux/lang/en/template-tags.json @@ -1,5 +1,4 @@ { - "lang_uptodate": "Up to date", "lang_canUpdate1": "At least one component of", "lang_canUpdate2": "Can be updated. For a smooth operation, it is recommended to keep all components up to date.", "lang_configurationPackageNotFound": "Configuration package not found!", @@ -10,5 +9,7 @@ "lang_outdated": "Outdated", "lang_redownload": "Download again", "lang_systemUpdated": "The system is up to date.", - "lang_update": "Update" + "lang_update": "Update", + "lang_updateAll": "Update all modules", + "lang_uptodate": "Up to date" } \ No newline at end of file diff --git a/modules-available/minilinux/page.inc.php b/modules-available/minilinux/page.inc.php index 6a331e1e..2488b2dc 100644 --- a/modules-available/minilinux/page.inc.php +++ b/modules-available/minilinux/page.inc.php @@ -12,7 +12,7 @@ class Page_MiniLinux extends Page Util::redirect('?do=Main'); } - User::assertPermission('show'); + User::assertPermission('view'); } protected function doRender() diff --git a/modules-available/minilinux/permissions/permissions.json b/modules-available/minilinux/permissions/permissions.json index 650f7e71..b018ee72 100644 --- a/modules-available/minilinux/permissions/permissions.json +++ b/modules-available/minilinux/permissions/permissions.json @@ -1,5 +1,5 @@ { - "show": { + "view": { "location-aware": false }, "update": { -- cgit v1.2.3-55-g7522