diff --git a/modules/HelpDesk/actions/ConvertFAQ.php b/modules/HelpDesk/actions/ConvertFAQ.php index 91f35af30dcaeadd9431e9ecbfce2228d49f6f68..fe850b7f171fb58b8806a6b3824b199926df3838 100644 --- a/modules/HelpDesk/actions/ConvertFAQ.php +++ b/modules/HelpDesk/actions/ConvertFAQ.php @@ -10,14 +10,14 @@ class HelpDesk_ConvertFAQ_Action extends Vtiger_Action_Controller { - public function checkPermission(Vtiger_Request $request) { - $recordPermission = Users_Privileges_Model::isPermitted('Faq', 'CreateView'); - - if(!$recordPermission) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'CreateView'); + $request->set('custom_module', 'Faq'); + return $permissions; } - + public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); diff --git a/modules/Vtiger/views/DashBoard.php b/modules/Vtiger/views/DashBoard.php index ee199225ad3d10e72ca0b3a6169ef16a190ed371..2f9b634fce2173cbf09d5118990e8b67c9262f77 100644 --- a/modules/Vtiger/views/DashBoard.php +++ b/modules/Vtiger/views/DashBoard.php @@ -12,13 +12,13 @@ class Vtiger_Dashboard_View extends Vtiger_Index_View { protected static $selectable_dashboards; - function checkPermission(Vtiger_Request $request) { - $moduleName = $request->getModule(); - if(!Users_Privileges_Model::isPermitted($moduleName, $actionName)) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $request->set('custom_module', 'Dashboard'); + return $permissions; } - + function preProcess(Vtiger_Request $request, $display=true) { parent::preProcess($request, false); $viewer = $this->getViewer($request); diff --git a/modules/Vtiger/views/Index.php b/modules/Vtiger/views/Index.php index f2956e7884c66738ff9ffba72255317d8a38f12d..8e9b597e866272642cef891a1ef6ceb2ed8838d0 100644 --- a/modules/Vtiger/views/Index.php +++ b/modules/Vtiger/views/Index.php @@ -14,6 +14,12 @@ class Vtiger_Index_View extends Vtiger_Basic_View { parent::__construct(); } + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + return $permissions; + } + public function preProcess (Vtiger_Request $request, $display=true) { parent::preProcess($request, false); @@ -22,17 +28,7 @@ class Vtiger_Index_View extends Vtiger_Basic_View { $moduleName = $request->getModule(); if(!empty($moduleName)) { $moduleModel = Vtiger_Module_Model::getInstance($moduleName); - $currentUser = Users_Record_Model::getCurrentUserModel(); - $userPrivilegesModel = Users_Privileges_Model::getInstanceById($currentUser->getId()); - $permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId()); $viewer->assign('MODULE', $moduleName); - - if(!$permission) { - $viewer->assign('MESSAGE', vtranslate('LBL_PERMISSION_DENIED')); - $viewer->view('OperationNotPermitted.tpl', $moduleName); - exit; - } - $linkParams = array('MODULE'=>$moduleName, 'ACTION'=>$request->get('view')); $linkModels = $moduleModel->getSideBarLinks($linkParams); diff --git a/modules/Vtiger/views/MassActionAjax.php b/modules/Vtiger/views/MassActionAjax.php index 8bc719064a9649716ada80316115c9139e52682f..9073a7810e802f68974a0f969a3dbd2c97d91ed7 100644 --- a/modules/Vtiger/views/MassActionAjax.php +++ b/modules/Vtiger/views/MassActionAjax.php @@ -19,6 +19,34 @@ class Vtiger_MassActionAjax_View extends Vtiger_IndexAjax_View { $this->exposeMethod('transferOwnership'); } + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + $mode = $request->getMode(); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + if(!empty($mode)) { + switch ($mode) { + case 'showMassEditForm': + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); + break; + case 'showAddCommentForm': + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'CreateView'); + $request->set('custom_module', 'ModComments'); + break; + case 'showComposeEmailForm': + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $request->set('custom_module', 'Emails'); + break; + case 'showSendSMSForm': + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'CreateView'); + $request->set('custom_module', 'SMSNotifier'); + break; + default: + break; + } + } + return $permissions; + } + function process(Vtiger_Request $request) { $mode = $request->get('mode'); if(!empty($mode)) {