diff --git a/modules/Campaigns/actions/DetailAjax.php b/modules/Campaigns/actions/DetailAjax.php index 1edbfea49aa770aa128313282d433dfd5ba78295..31f8f17344c18577391db906d1ad804eaf9c908d 100644 --- a/modules/Campaigns/actions/DetailAjax.php +++ b/modules/Campaigns/actions/DetailAjax.php @@ -15,6 +15,23 @@ class Campaigns_DetailAjax_Action extends Vtiger_BasicAjax_Action { $this->exposeMethod('getRecordsCount'); } + public function requiresPermission(Vtiger_Request $request){ + $mode = $request->getMode(); + if(!empty($mode)) { + switch ($mode) { + case 'getRecordsCount': + $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + break; + default: + break; + } + } + return $permission; + } + + public function checkPermission(Vtiger_Request $request) { + parent::checkPermission($request); + } public function process(Vtiger_Request $request) { $mode = $request->get('mode'); if(!empty($mode)) { diff --git a/modules/Campaigns/actions/RelationAjax.php b/modules/Campaigns/actions/RelationAjax.php index f01f986b3e11765273d7e3ab801e2ba7de974f5b..3cfd4fa8d4ba54c066341dbe647562b70fa28703 100644 --- a/modules/Campaigns/actions/RelationAjax.php +++ b/modules/Campaigns/actions/RelationAjax.php @@ -16,6 +16,28 @@ class Campaigns_RelationAjax_Action extends Vtiger_RelationAjax_Action { $this->exposeMethod('updateStatus'); } + public function requiresPermission(Vtiger_Request $request){ + $mode = $request->getMode(); + if(!empty($mode)) { + switch ($mode) { + case 'addRelationsFromRelatedModuleViewId': + $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + break; + case 'updateStatus': + $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permission[] = array('module_parameter' => 'module', 'action' => 'EditView'); + break; + default: + break; + } + } + return $permission; + } + + public function checkPermission(Vtiger_Request $request) { + parent::checkPermission($request); + } + /** * Function to add relations using related module viewid * @param Vtiger_Request $request diff --git a/modules/Vtiger/actions/BasicAjax.php b/modules/Vtiger/actions/BasicAjax.php index 6a51d2cf784d602a08e2d3a68db0e3d90812eaf0..f2de60fc37dbe3ebe77cc1a00c92c5d8ecb1e6f9 100644 --- a/modules/Vtiger/actions/BasicAjax.php +++ b/modules/Vtiger/actions/BasicAjax.php @@ -10,10 +10,6 @@ class Vtiger_BasicAjax_Action extends Vtiger_Action_Controller { - function checkPermission(Vtiger_Request $request) { - return; - } - public function process(Vtiger_Request $request) { $searchValue = $request->get('search_value'); $searchModule = $request->get('search_module'); diff --git a/modules/Vtiger/views/RelatedList.php b/modules/Vtiger/views/RelatedList.php index 0e62c383f39743b645fbbb77f60c7eb436d0e3a2..a5a7552ec465994a691df913aecd102c57a316da 100644 --- a/modules/Vtiger/views/RelatedList.php +++ b/modules/Vtiger/views/RelatedList.php @@ -10,14 +10,14 @@ class Vtiger_RelatedList_View extends Vtiger_Index_View { - function checkPermission(Vtiger_Request $request) { - $relatedModuleName = $request->get('relatedModule'); - - $relatedModulePermission = Users_Privileges_Model::isPermitted($relatedModuleName, 'DetailView'); - if(!$relatedModulePermission) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } - return true; + public function requiresPermission(Vtiger_Request $request){ + $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + + return $permission; + } + + public function checkPermission(Vtiger_Request $request) { + parent::checkPermission($request); } function process(Vtiger_Request $request) {