diff options
Diffstat (limited to 'modules-available/vmstore/page.inc.php')
-rw-r--r-- | modules-available/vmstore/page.inc.php | 12 |
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']); |