diff options
Diffstat (limited to 'modules-available/vmstore/page.inc.php')
-rw-r--r-- | modules-available/vmstore/page.inc.php | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/modules-available/vmstore/page.inc.php b/modules-available/vmstore/page.inc.php index c3d5da77..1e0cc619 100644 --- a/modules-available/vmstore/page.inc.php +++ b/modules-available/vmstore/page.inc.php @@ -8,10 +8,7 @@ class Page_VmStore extends Page { User::load(); - if (!User::isLoggedIn()) { - Message::addError('main.no-permission'); - Util::redirect('?do=Main'); - } + User::assertPermission('edit'); $action = Request::post('action'); @@ -33,30 +30,25 @@ 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); } private function setStore() { $vmstore = array(); - foreach (array('storetype', 'nfsaddr', 'cifsaddr', 'cifsuser', 'cifspasswd', 'cifsuserro', 'cifspasswdro') as $key) { + foreach (array('storetype', 'nfsaddr', 'nfsopts', 'cifsaddr', 'cifsuser', 'cifspasswd', 'cifsuserro', 'cifspasswdro', 'cifsopts') as $key) { $vmstore[$key] = trim(Request::post($key, '', 'string')); + // Remove rw setting + if ($key === 'cifsopts' || $key === 'nfsopts') { + $vmstore[$key] = preg_replace('/\s+,\s+/', ',', $vmstore[$key]); + $vmstore[$key] = preg_replace('/^rw,|,rw$/', '', str_replace(',rw,', ',', $vmstore[$key])); + } } $storetype = $vmstore['storetype']; if (!in_array($storetype, array('internal', 'nfs', 'cifs'))) { 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']); |