summaryrefslogtreecommitdiffstats
path: root/modules-available/vmstore/page.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/vmstore/page.inc.php')
-rw-r--r--modules-available/vmstore/page.inc.php12
1 files changed, 11 insertions, 1 deletions
diff --git a/modules-available/vmstore/page.inc.php b/modules-available/vmstore/page.inc.php
index 3314bfe2..c3d5da77 100644
--- a/modules-available/vmstore/page.inc.php
+++ b/modules-available/vmstore/page.inc.php
@@ -8,7 +8,7 @@ class Page_VmStore extends Page
{
User::load();
- if (!User::hasPermission('superadmin')) {
+ if (!User::isLoggedIn()) {
Message::addError('main.no-permission');
Util::redirect('?do=Main');
}
@@ -33,6 +33,10 @@ class Page_VmStore extends Page
if (isset($vmstore['storetype'])) {
$vmstore['pre-' . $vmstore['storetype']] = 'checked';
}
+ $vmstore['internalAllowed'] = User::hasPermission("choose.internal");
+ $vmstore['nfsAllowed'] = User::hasPermission("choose.nfs");
+ $vmstore['cifsAllowed'] = User::hasPermission("choose.cifs");
+ $vmstore['saveAllowed'] = $vmstore['internalAllowed'] || $vmstore['nfsAllowed'] || $vmstore['cifsAllowed'];
Render::addTemplate('page-vmstore', $vmstore);
}
@@ -47,6 +51,12 @@ class Page_VmStore extends Page
Message::addError('main.value-invalid', 'type', $storetype);
Util::redirect('?do=VmStore');
}
+ if (($storetype === 'internal' && !User::hasPermission("choose.internal")) ||
+ ($storetype === 'nfs' && !User::hasPermission("choose.nfs")) ||
+ ($storetype === 'cifs' && !User::hasPermission("choose.cifs"))) {
+ Message::addError('main.no-permission');
+ Util::redirect('?do=VmStore');
+ }
// Validate syntax of nfs/cifs
if ($storetype === 'nfs' && !preg_match('#^\S+:\S+$#is', $vmstore['nfsaddr'])) {
Message::addError('main.value-invalid', 'nfsaddr', $vmstore['nfsaddr']);