diff --git a/modules/Vtiger/views/BasicAjax.php b/modules/Vtiger/views/BasicAjax.php index 95e8a1ff718623a9440c3adb51ca9332b80ac59c..daaf1bafe84ee253fbbbb46b305c08da43be4577 100644 --- a/modules/Vtiger/views/BasicAjax.php +++ b/modules/Vtiger/views/BasicAjax.php @@ -16,7 +16,12 @@ class Vtiger_BasicAjax_View extends Vtiger_Basic_View { $this->exposeMethod('showSearchResults'); } - function checkPermission() { } + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + + return $permissions; + } function preProcess(Vtiger_Request $request) { return true; diff --git a/modules/Vtiger/views/DashBoard.php b/modules/Vtiger/views/DashBoard.php index 2f9b634fce2173cbf09d5118990e8b67c9262f77..f5849759906b7a29c2b31aa55ad46878dddd9669 100644 --- a/modules/Vtiger/views/DashBoard.php +++ b/modules/Vtiger/views/DashBoard.php @@ -14,8 +14,12 @@ class Vtiger_Dashboard_View extends Vtiger_Index_View { public function requiresPermission(\Vtiger_Request $request) { $permissions = parent::requiresPermission($request); - $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); - $request->set('custom_module', 'Dashboard'); + if($request->get('module') != 'Dashboard'){ + $request->set('custom_module', 'Dashboard'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + }else{ + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + } return $permissions; } @@ -30,17 +34,17 @@ class Vtiger_Dashboard_View extends Vtiger_Index_View { $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId()); if($permission) { - // TODO : Need to optimize the widget which are retrieving twice - $dashboardTabs = $dashBoardModel->getActiveTabs(); - if ($request->get("tabid")) { - $tabid = $request->get("tabid"); - } else { - // If no tab, then select first tab of the user - $tabid = $dashboardTabs[0]["id"]; - } - $dashBoardModel->set("tabid", $tabid); - $widgets = $dashBoardModel->getSelectableDashboard(); - self::$selectable_dashboards = $widgets; + // TODO : Need to optimize the widget which are retrieving twice + $dashboardTabs = $dashBoardModel->getActiveTabs(); + if ($request->get("tabid")) { + $tabid = $request->get("tabid"); + } else { + // If no tab, then select first tab of the user + $tabid = $dashboardTabs[0]["id"]; + } + $dashBoardModel->set("tabid", $tabid); + $widgets = $dashBoardModel->getSelectableDashboard(); + self::$selectable_dashboards = $widgets; } else { $widgets = array(); } diff --git a/modules/Vtiger/views/EmailsRelatedModulePopup.php b/modules/Vtiger/views/EmailsRelatedModulePopup.php index 0636f752f5ada4c3e2acb2a0a742136fae3788c8..6665ae41da7041d768ee2003ca0bd81a0b8496c1 100644 --- a/modules/Vtiger/views/EmailsRelatedModulePopup.php +++ b/modules/Vtiger/views/EmailsRelatedModulePopup.php @@ -10,6 +10,14 @@ class Vtiger_EmailsRelatedModulePopup_View extends Vtiger_Popup_View { + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'src_module', 'action' => 'DetailView'); + + return $permissions; + } + function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); if($moduleName == 'Users') { diff --git a/modules/Vtiger/views/Export.php b/modules/Vtiger/views/Export.php index ee38c3f77ec96a64d27e4a6e1f66c3c974fd668a..78d078f6fcae741178ee4eda1c0e5c82a9a21fe3 100644 --- a/modules/Vtiger/views/Export.php +++ b/modules/Vtiger/views/Export.php @@ -10,14 +10,11 @@ class Vtiger_Export_View extends Vtiger_Index_View { - function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - $moduleModel = Vtiger_Module_Model::getInstance($moduleName); - - $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); - if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Export')) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'Export'); + + return $permissions; } function process(Vtiger_Request $request) { diff --git a/modules/Vtiger/views/Extension.php b/modules/Vtiger/views/Extension.php index 97156b65a7a1dbea983dde67ea74d1e87fd96a5a..2fb2555fdda83adf5923c7b91dae7406406be970 100644 --- a/modules/Vtiger/views/Extension.php +++ b/modules/Vtiger/views/Extension.php @@ -10,20 +10,21 @@ class Vtiger_Extension_View extends Vtiger_List_View { - public function checkPermission(Vtiger_Request $request) { + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'extensionModule', 'action' => 'DetailView'); + + return $permissions; + } + + public function checkPermission(Vtiger_Request $request) { $moduleName = $request->get('extensionModule'); + parent::checkPermission($request); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); if (empty($moduleModel)) { throw new AppException(vtranslate('LBL_HANDLER_NOT_FOUND')); } - - $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); - $permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId()); - if (!$permission) { - throw new AppException(vtranslate($moduleName, $moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE')); - } - return true; } diff --git a/modules/Vtiger/views/Import.php b/modules/Vtiger/views/Import.php index 75ec101c4d300600dfdc7c2ff22fe98591b365c8..076a7109ba869f7857156b82a789df40705b8908 100644 --- a/modules/Vtiger/views/Import.php +++ b/modules/Vtiger/views/Import.php @@ -26,14 +26,11 @@ class Vtiger_Import_View extends Vtiger_Index_View { $this->exposeMethod('updateSavedMapping'); } - function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - $moduleModel = Vtiger_Module_Model::getInstance($moduleName); - - $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); - if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Import')) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + + $permissions[] = array('module_parameter' => 'module', 'action' => 'Import'); + return $permissions; } function process(Vtiger_Request $request) { diff --git a/modules/Vtiger/views/MiniListWizard.php b/modules/Vtiger/views/MiniListWizard.php index 1d73b07e50cd32ec4df3a5470b7175efab34de9d..b27dc270fc81e69e56094fa697d40525ffaa7da5 100644 --- a/modules/Vtiger/views/MiniListWizard.php +++ b/modules/Vtiger/views/MiniListWizard.php @@ -10,6 +10,18 @@ class Vtiger_MiniListWizard_View extends Vtiger_Index_View { + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + if($request->get('module') != 'Dashboard'){ + $request->set('custom_module', 'Dashboard'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + }else{ + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + } + + return $permissions; + } + function process (Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $viewer = $this->getViewer($request);