From 8b1a4bcc06393ea1c15f9c0ebe8aaaa18a014107 Mon Sep 17 00:00:00 2001 From: Uma S <uma.s@vtiger.com> Date: Wed, 14 Aug 2019 18:33:32 +0530 Subject: [PATCH] Check permission addressed on Vtiger view files --- modules/Vtiger/views/BasicAjax.php | 7 ++++- modules/Vtiger/views/DashBoard.php | 30 +++++++++++-------- .../Vtiger/views/EmailsRelatedModulePopup.php | 8 +++++ modules/Vtiger/views/Export.php | 13 ++++---- modules/Vtiger/views/Extension.php | 17 ++++++----- modules/Vtiger/views/Import.php | 13 ++++---- modules/Vtiger/views/MiniListWizard.php | 12 ++++++++ 7 files changed, 62 insertions(+), 38 deletions(-) diff --git a/modules/Vtiger/views/BasicAjax.php b/modules/Vtiger/views/BasicAjax.php index 95e8a1ff7..daaf1bafe 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 2f9b634fc..f58497599 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 0636f752f..6665ae41d 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 ee38c3f77..78d078f6f 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 97156b65a..2fb2555fd 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 75ec101c4..076a7109b 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 1d73b07e5..b27dc270f 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); -- GitLab