'module', 'action' => 'DetailView', 'record_parameter' => 'record'); $permissions[] = array('module_parameter' => 'module', 'action' => 'Delete', 'record_parameter' => 'record'); return $permissions; } function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $record = $request->get('record'); parent::checkPermission($request); $nonEntityModules = array('Users', 'Events', 'Calendar', 'Portal', 'Reports', 'Rss', 'EmailTemplates'); if ($record && !in_array($moduleName, $nonEntityModules)) { $recordEntityName = getSalesEntityType($record); if ($recordEntityName !== $moduleName) { throw new AppException(vtranslate('LBL_PERMISSION_DENIED')); } } } public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $ajaxDelete = $request->get('ajaxDelete'); $recurringEditMode = $request->get('recurringEditMode'); $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $recordModel->set('recurringEditMode', $recurringEditMode); $moduleModel = $recordModel->getModule(); $recordModel->delete(); $cv = new CustomView(); $cvId = $cv->getViewId($moduleName); deleteRecordFromDetailViewNavigationRecords($recordId, $cvId, $moduleName); $listViewUrl = $moduleModel->getListViewUrl(); if($ajaxDelete) { $response = new Vtiger_Response(); $response->setResult($listViewUrl); return $response; } else { header("Location: $listViewUrl"); } } public function validateRequest(Vtiger_Request $request) { $request->validateWriteAccess(); } }