summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-02-14 14:30:18 +0100
committerSimon Rettberg2018-02-14 14:30:18 +0100
commitdb4cf34ba9782dd5709a79a2d9a8e0337661486c (patch)
tree6798964f8eeb3ccee662da604e76b98aea8a2485
parentGlobal: Only show "Warning" badge at the top if user can view event log, (diff)
downloadslx-admin-db4cf34ba9782dd5709a79a2d9a8e0337661486c.tar.gz
slx-admin-db4cf34ba9782dd5709a79a2d9a8e0337661486c.tar.xz
slx-admin-db4cf34ba9782dd5709a79a2d9a8e0337661486c.zip
[minilinux] Use new permission helpers
-rw-r--r--modules-available/minilinux/page.inc.php80
-rw-r--r--modules-available/minilinux/templates/filelist.html6
2 files changed, 41 insertions, 45 deletions
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 @@
<p>
{{lang_canUpdate1}} <b>{{title}}</b> {{lang_canUpdate2}}
</p>
- <button {{^allowedToUpdate}}disabled{{/allowedToUpdate}} class="btn btn-primary" onclick="slxUpdateAll(this, 'download-{{id}}')"><span class="glyphicon glyphicon-refresh"></span> {{lang_update}}<span></span></button>
+ <button {{perms.update.disabled}} class="btn btn-primary" onclick="slxUpdateAll(this, 'download-{{id}}')"><span class="glyphicon glyphicon-refresh"></span> {{lang_update}}<span></span></button>
{{/systemChanged}}
{{^systemChanged}}
<p>{{lang_systemUpdated}}</p>
@@ -35,8 +35,8 @@
{{#fileChanged}}<span class="glyphicon glyphicon-exclamation-sign"></span> <b>{{lang_outdated}}</b>{{/fileChanged}}
</div>
<div class="col-xs-2">
- {{#fileChanged}}<button {{^allowedToUpdate}}disabled{{/allowedToUpdate}} class="btn btn-primary btn-xs update-button" onclick="slxUpdate('{{uid}}', '{{id}}', '{{name}}')"><span class="glyphicon glyphicon-refresh"></span> {{lang_update}}</button> {{/fileChanged}}
- {{^fileChanged}}<button {{^allowedToUpdate}}disabled{{/allowedToUpdate}} class="btn btn-default btn-xs" onclick="slxUpdate('{{uid}}', '{{id}}', '{{name}}')"><span class="glyphicon glyphicon-download-alt"></span> {{lang_redownload}}</button> {{/fileChanged}}
+ {{#fileChanged}}<button {{perms.update.disabled}} class="btn btn-primary btn-xs update-button" onclick="slxUpdate('{{uid}}', '{{id}}', '{{name}}')"><span class="glyphicon glyphicon-refresh"></span> {{lang_update}}</button> {{/fileChanged}}
+ {{^fileChanged}}<button {{perms.update.disabled}} class="btn btn-default btn-xs" onclick="slxUpdate('{{uid}}', '{{id}}', '{{name}}')"><span class="glyphicon glyphicon-download-alt"></span> {{lang_redownload}}</button> {{/fileChanged}}
</div>
</div>
{{{download}}}