diff --git a/modules/Accounts/actions/TransferOwnership.php b/modules/Accounts/actions/TransferOwnership.php index da52b84442a858ba77d12df57830089f375fa886..1fa983429c79be623f5f3a8b2471eae12cc9b1b2 100644 --- a/modules/Accounts/actions/TransferOwnership.php +++ b/modules/Accounts/actions/TransferOwnership.php @@ -20,11 +20,10 @@ class Accounts_TransferOwnership_Action extends Vtiger_Action_Controller { public function checkPermission(Vtiger_Request $request) { parent::checkPermission($request); - $permissions = $this->requiresPermission($request); $recordIds = $this->getRecordIds($request); foreach ($recordIds as $key => $recordId) { $moduleName = getSalesEntityType($recordId); - $permissionStatus = Users_Privileges_Model::isPermitted($moduleName, $permissions['action']); + $permissionStatus = Users_Privileges_Model::isPermitted($moduleName, 'EditView', $recordId); if($permissionStatus){ $this->transferRecordIds[] = $recordId; } diff --git a/modules/Vtiger/views/ListViewQuickPreview.php b/modules/Vtiger/views/ListViewQuickPreview.php index 04d3505216c8a873a7710d6168094e60682822fe..f68edf91276600293b4feac7dcf37731a3a22118 100644 --- a/modules/Vtiger/views/ListViewQuickPreview.php +++ b/modules/Vtiger/views/ListViewQuickPreview.php @@ -16,14 +16,17 @@ class Vtiger_ListViewQuickPreview_View extends Vtiger_Index_View { parent::__construct(); } + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record'); + return $permissions; + } + function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); - $recordPermission = Users_Privileges_Model::isPermitted($moduleName, 'DetailView', $recordId); - if(!$recordPermission) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); - } + parent::checkPermission($request); if ($recordId) { $recordEntityName = getSalesEntityType($recordId); diff --git a/modules/Vtiger/views/MergeRecord.php b/modules/Vtiger/views/MergeRecord.php index 3f5411b54dd85e3247bb5f1a71202619ddd63092..8e54908bca07bd272321c17ade134996ec4d6b16 100644 --- a/modules/Vtiger/views/MergeRecord.php +++ b/modules/Vtiger/views/MergeRecord.php @@ -9,29 +9,39 @@ **************************************************************************************/ class Vtiger_MergeRecord_View extends Vtiger_Popup_View { + var $mergeRecordIds = Array(); + + public function requiresPermission(\Vtiger_Request $request) { + $permissions = parent::requiresPermission($request); + $permissions[] = array('module_parameter' => 'module', 'action' => 'EditView'); + return $permissions; + } public function checkPermission(Vtiger_Request $request) { parent::checkPermission($request); - - $moduleName = $request->getModule(); - $actionName = 'EditView'; - $records = $request->get('records'); $records = explode(',', $records); foreach ($records as $record) { - if(!Users_Privileges_Model::isPermitted($moduleName, $actionName, $record)) { - throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); + $moduleName = getSalesEntityType($record); + $permissionStatus = Users_Privileges_Model::isPermitted($moduleName, 'EditView', $record); + if($permissionStatus){ + $this->mergeRecordIds[] = $record; + } + if(empty($this->mergeRecordIds)){ + throw new AppException(vtranslate('LBL_RECORD_PERMISSION_DENIED')); } } + return true; } function process(Vtiger_Request $request) { - $records = $request->get('records'); - $records = explode(',', $records); $module = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($module); $fieldModels = $moduleModel->getFields(); + if(!empty($this->mergeRecordIds)){ + $records = $this->mergeRecordIds; + } foreach($records as $record) { $recordModels[] = Vtiger_Record_Model::getInstanceById($record);