diff --git a/modules/Accounts/actions/TransferOwnership.php b/modules/Accounts/actions/TransferOwnership.php index a8816b1ea7321761688f2bb561e9c1262df599a8..b77146e98334bb6d505e3cdf665926ed7a78a2f5 100644 --- a/modules/Accounts/actions/TransferOwnership.php +++ b/modules/Accounts/actions/TransferOwnership.php @@ -12,6 +12,7 @@ class Accounts_TransferOwnership_Action extends Vtiger_Action_Controller { var $transferRecordIds = Array(); public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record'); return $permissions; } diff --git a/modules/Accounts/views/AccountHierarchy.php b/modules/Accounts/views/AccountHierarchy.php index c07916e7a3507dfad2d00b1eae69af44e42d962c..37e4035d0e03fdcfd86def10a14d2551a2486259 100644 --- a/modules/Accounts/views/AccountHierarchy.php +++ b/modules/Accounts/views/AccountHierarchy.php @@ -10,7 +10,8 @@ class Accounts_AccountHierarchy_View extends Vtiger_View_Controller { - public function requiresPermission(\Vtiger_Request $request) { + public function requiresPermission(Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); return $permissions; } diff --git a/modules/Calendar/actions/ActivityReminder.php b/modules/Calendar/actions/ActivityReminder.php index fe1b4aee5eb5f009f48b01ff8196c96e5614cba3..073aaa0efca070ee7379811c7a0a86f0c8fa64cd 100644 --- a/modules/Calendar/actions/ActivityReminder.php +++ b/modules/Calendar/actions/ActivityReminder.php @@ -16,22 +16,23 @@ class Calendar_ActivityReminder_Action extends Vtiger_Action_Controller{ } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'getReminders': - $permission[] = array('module_parameter' => 'module', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView'); break; case 'postpone': - $permission[] = array('module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView', 'record_parameter' => 'record'); break; default: break; } } - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) { diff --git a/modules/Calendar/actions/CalendarActions.php b/modules/Calendar/actions/CalendarActions.php index aac5e9e412786db62048c3c69466ffa2012ac08b..71a0bc953bffd57ece3e90277894801bb6819bfb 100644 --- a/modules/Calendar/actions/CalendarActions.php +++ b/modules/Calendar/actions/CalendarActions.php @@ -15,17 +15,18 @@ class Calendar_CalendarActions_Action extends Vtiger_BasicAjax_Action { } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'fetchAgendaViewEventDetails': - $permission[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'id'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'id'); break; default: break; } } - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) { diff --git a/modules/Calendar/actions/CalendarUserActions.php b/modules/Calendar/actions/CalendarUserActions.php index 22fed381088f4203a74f4da1a667c2b02579ae2e..274692da74d227f2ec65124fc383f9475e62b921 100755 --- a/modules/Calendar/actions/CalendarUserActions.php +++ b/modules/Calendar/actions/CalendarUserActions.php @@ -19,26 +19,27 @@ class Calendar_CalendarUserActions_Action extends Vtiger_Action_Controller{ } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'deleteUserCalendar': - $permission[] = array('module_parameter' => 'module', 'action' => 'EditView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); break; case 'deleteCalendarView': - $permission[] = array('module_parameter' => 'module', 'action' => 'EditView'); - $permission[] = array('module_parameter' => 'module', 'action' => 'Delete'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'Delete'); break; case 'addUserCalendar': case 'addCalendarView': - $permission[] = array('module_parameter' => 'module', 'action' => 'EditView'); - $permission[] = array('module_parameter' => 'module', 'action' => 'CreateView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'CreateView'); break; default: break; } } - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) { diff --git a/modules/Calendar/actions/DeleteAjax.php b/modules/Calendar/actions/DeleteAjax.php index d3012c7c97d691b6cb8f048a458f67eba2657412..75310db9f1e76278f9a46a97e2e2d5c8b764b1a1 100644 --- a/modules/Calendar/actions/DeleteAjax.php +++ b/modules/Calendar/actions/DeleteAjax.php @@ -10,18 +10,23 @@ class Calendar_DeleteAjax_Action extends Vtiger_DeleteAjax_Action { + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + $moduleParameter = $request->get('sourceModule'); + if (!$moduleParameter) { + $moduleParameter = 'module'; + }else{ + $moduleParameter = 'sourceModule'; + } + $permissions[] = array('module_parameter' => $moduleParameter, 'action' => 'Delete', 'record_parameter'=>'record'); + return $permissions; + } + function checkPermission(Vtiger_Request $request) { $sourceModule = $request->get('sourceModule'); - if (!$sourceModule) { - $sourceModule = $request->getModule(); - } $record = $request->get('record'); - - $currentUserPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); - if (!$currentUserPrivilegesModel->isPermitted($sourceModule, 'Delete', $record)) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } - + parent::checkPermission($request); + if ($record) { $activityModulesList = array('Calendar', 'Events'); $recordEntityName = getSalesEntityType($record); @@ -30,6 +35,7 @@ class Calendar_DeleteAjax_Action extends Vtiger_DeleteAjax_Action { throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); } } + return true; } public function process(Vtiger_Request $request) { diff --git a/modules/Campaigns/actions/DetailAjax.php b/modules/Campaigns/actions/DetailAjax.php index 5a75e4dfd191fd842e29050c3a452d75c8f0ddec..e2ce901efea70806d95d2c6fcffcb272fc26cb47 100644 --- a/modules/Campaigns/actions/DetailAjax.php +++ b/modules/Campaigns/actions/DetailAjax.php @@ -16,17 +16,18 @@ class Campaigns_DetailAjax_Action extends Vtiger_BasicAjax_Action { } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'getRecordsCount': - $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); break; default: break; } } - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) { diff --git a/modules/Campaigns/actions/RelationAjax.php b/modules/Campaigns/actions/RelationAjax.php index 0af2bbfb26e19f677259e544392aa1e5709e8e3a..c490c0e146b8676a2659edcc1c1bd0dc51ac3848 100644 --- a/modules/Campaigns/actions/RelationAjax.php +++ b/modules/Campaigns/actions/RelationAjax.php @@ -17,21 +17,22 @@ class Campaigns_RelationAjax_Action extends Vtiger_RelationAjax_Action { } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'addRelationsFromRelatedModuleViewId': - $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); break; case 'updateStatus': - $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); - $permission[] = array('module_parameter' => 'module', 'action' => 'EditView'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); break; default: break; } } - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) { diff --git a/modules/Vtiger/actions/RelationAjax.php b/modules/Vtiger/actions/RelationAjax.php index 039a172577b1ddf08962523a97848f882fd3e6aa..d78069c745f4adc8b7f7e65259cb1ea8a03287a4 100644 --- a/modules/Vtiger/actions/RelationAjax.php +++ b/modules/Vtiger/actions/RelationAjax.php @@ -17,7 +17,31 @@ class Vtiger_RelationAjax_Action extends Vtiger_Action_Controller { $this->exposeMethod('getRelatedRecordInfo'); } - function checkPermission(Vtiger_Request $request) { } + public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); + $mode = $request->getMode(); + if(!empty($mode)) { + switch ($mode) { + case 'addRelation': + case 'deleteRelation': + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'src_record'); + $permissions[] = array('module_parameter' => 'related_module', 'action' => 'DetailView'); + break; + case 'getRelatedListPageCount': + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + case 'getRelatedRecordInfo': + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'id'); + default: + break; + } + } + return $permissions; + } + + function checkPermission(Vtiger_Request $request) { + return parent::checkPermission($request); + } function preProcess(Vtiger_Request $request) { return true; diff --git a/modules/Vtiger/actions/Save.php b/modules/Vtiger/actions/Save.php index 874dc78468a3cea39fe76d24fa68c23f9b0428d8..6f15add1323b1671fde392fb657bf639a23ae6e4 100644 --- a/modules/Vtiger/actions/Save.php +++ b/modules/Vtiger/actions/Save.php @@ -11,10 +11,21 @@ class Vtiger_Save_Action extends Vtiger_Action_Controller { public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $moduleParameter = $request->get('source_module'); + if (!$moduleParameter) { + $moduleParameter = 'module'; + }else{ + $moduleParameter = 'source_module'; + } $record = $request->get('record'); + if (!$record) { + $recordParameter = ''; + }else{ + $recordParameter = 'record'; + } $actionName = ($record) ? 'EditView' : 'CreateView'; - $permissions[] = array('module_parameter' => 'module', 'action' => $actionName, 'record_parameter' => 'record'); - $permissions[] = array('module_parameter' => 'module', 'action' => 'Save', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => $moduleParameter, 'action' => $actionName, 'record_parameter' => $recordParameter); return $permissions; } diff --git a/modules/Vtiger/views/Detail.php b/modules/Vtiger/views/Detail.php index 33852d1fd5dd827efba62004c29525f8739d9468..a512ea1a3ca537f59a7c5d82367354e76559816e 100644 --- a/modules/Vtiger/views/Detail.php +++ b/modules/Vtiger/views/Detail.php @@ -27,32 +27,33 @@ class Vtiger_Detail_View extends Vtiger_Index_View { } public function requiresPermission(Vtiger_Request $request){ + $permissions = parent::requiresPermission($request); $mode = $request->getMode(); if(!empty($mode)) { switch ($mode) { case 'showModuleDetailView': case 'showModuleSummaryView': case 'showModuleBasicView': - $permission[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); break; case 'showRecentComments': case 'showChildComments': - $permission[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); $request->set('custom_module', 'ModComments'); break; case 'showRelatedList': case 'showRelatedRecords': - $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); break; case 'getActivities': - $permission[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); + $permissions[] = array('module_parameter' => 'custom_module', 'action' => 'DetailView'); $request->set('custom_module', 'Calendar'); break; default: break; } } - return $permission; + return $permissions; } function checkPermission(Vtiger_Request $request) { diff --git a/modules/Vtiger/views/Edit.php b/modules/Vtiger/views/Edit.php index 00762d4e03bd2bcaaa7f122fc55585c8c8bb3246..634c3951507296eb785c0ad22bb53edfc0ba3aa4 100644 --- a/modules/Vtiger/views/Edit.php +++ b/modules/Vtiger/views/Edit.php @@ -15,6 +15,7 @@ Class Vtiger_Edit_View extends Vtiger_Index_View { } public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); $record = $request->get('record'); $actionName = 'CreateView'; if ($record && !$request->get('isDuplicate')) { diff --git a/modules/Vtiger/views/RelatedList.php b/modules/Vtiger/views/RelatedList.php index fa2e03e67a83ae35d60f922d77809dbad65aa414..6fbc3fdcfa82b8dc93df800926f3ba966d6f62ef 100644 --- a/modules/Vtiger/views/RelatedList.php +++ b/modules/Vtiger/views/RelatedList.php @@ -11,9 +11,11 @@ class Vtiger_RelatedList_View extends Vtiger_Index_View { public function requiresPermission(Vtiger_Request $request){ - $permission[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + $permissions[] = array('module_parameter' => 'relatedModule', 'action' => 'DetailView'); - return $permission; + return $permissions; } public function checkPermission(Vtiger_Request $request) {