getModule(); $record = $request->get('record'); $recordModel = Vtiger_Record_Model::getInstanceById($record, $moduleName); $currentUserModel = Users_Record_Model::getCurrentUserModel(); if(!Users_Privileges_Model::isPermitted($moduleName, 'Save', $record) || ($recordModel->isAccountOwner() && $currentUserModel->get('id') != $recordModel->getId() && !$currentUserModel->isAdminUser())) { throw new AppException('LBL_PERMISSION_DENIED'); } } /** * Function to get the record model based on the request parameters * @param Vtiger_Request $request * @return Vtiger_Record_Model or Module specific Record Model instance */ protected function getRecordModelFromRequest(Vtiger_Request $request) { $moduleName = $request->getModule(); $recordId = $request->get('record'); $currentUserModel = Users_Record_Model::getCurrentUserModel(); if(!empty($recordId)) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName); $modelData = $recordModel->getData(); $recordModel->set('id', $recordId); $sharedType = $request->get('sharedtype'); if(!empty($sharedType)) $recordModel->set('calendarsharedtype', $request->get('sharedtype')); $recordModel->set('mode', 'edit'); } else { $recordModel = Vtiger_Record_Model::getCleanInstance($moduleName); $modelData = $recordModel->getData(); $recordModel->set('mode', ''); } foreach ($modelData as $fieldName => $value) { $requestFieldExists = $request->has($fieldName); if(!$requestFieldExists){ continue; } $fieldValue = $request->get($fieldName, null); if ($fieldName === 'is_admin') { if (!$currentUserModel->isAdminUser() && (!$fieldValue)) { $fieldValue = 'off'; } else if ($currentUserModel->isAdminUser() && ($fieldValue || $fieldValue === 'on')) { $fieldValue = 'on'; $recordModel->set('is_owner', 1); } else { $fieldValue = 'off'; $recordModel->set('is_owner', 0); } } if($fieldValue !== null) { if(!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } } $homePageComponents = $recordModel->getHomePageComponents(); $selectedHomePageComponents = $request->get('homepage_components', array()); foreach ($homePageComponents as $key => $value) { if(in_array($key, $selectedHomePageComponents)) { $request->setGlobal($key, $key); } else { $request->setGlobal($key, ''); } } // Tag cloud save $tagCloud = $request->get('tagcloudview'); if($tagCloud == "on") { $recordModel->set('tagcloud', 0); } else { $recordModel->set('tagcloud', 1); } return $recordModel; } public function process(Vtiger_Request $request) { $result = Vtiger_Util_Helper::transformUploadedFiles($_FILES, true); $_FILES = $result['imagename']; $recordModel = $this->saveRecord($request); if ($request->get('relationOperation')) { $parentRecordModel = Vtiger_Record_Model::getInstanceById($request->get('sourceRecord'), $request->get('sourceModule')); $loadUrl = $parentRecordModel->getDetailViewUrl(); } else if ($request->get('isPreference')) { $loadUrl = $recordModel->getPreferenceDetailViewUrl(); } else { $loadUrl = $recordModel->getDetailViewUrl(); } header("Location: $loadUrl"); } }