getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $currentUserPriviligesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); if(!$currentUserPriviligesModel->hasModuleActionPermission($moduleModel->getId(), 'Save')) { throw new AppException(vtranslate($moduleName).' '.vtranslate('LBL_NOT_ACCESSIBLE')); } } public function process(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $recordModels = $this->getRecordModelsFromRequest($request); foreach($recordModels as $recordId => $recordModel) { if(Users_Privileges_Model::isPermitted($moduleName, 'Save', $recordId)) { $recordModel->save(); } } $response = new Vtiger_Response(); $response->setResult(true); $response->emit(); } /** * 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 */ function getRecordModelsFromRequest(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $recordIds = $this->getRecordsListFromRequest($request); $recordModels = array(); $fieldModelList = $moduleModel->getFields(); foreach($recordIds as $recordId) { $recordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleModel); $recordModel->set('id', $recordId); $recordModel->set('mode', 'edit'); foreach ($fieldModelList as $fieldName => $fieldModel) { $fieldValue = $request->get($fieldName, null); $fieldDataType = $fieldModel->getFieldDataType(); if($fieldDataType == 'time'){ $fieldValue = Vtiger_Time_UIType::getTimeValueWithSeconds($fieldValue); } if(isset($fieldValue) && $fieldValue != null) { if(!is_array($fieldValue)) { $fieldValue = trim($fieldValue); } $recordModel->set($fieldName, $fieldValue); } else { $uiType = $fieldModel->get('uitype'); if($uiType == 70) { $recordModel->set($fieldName, $recordModel->get($fieldName)); } else { $uiTypeModel = $fieldModel->getUITypeModel(); $recordModel->set($fieldName, $uiTypeModel->getUserRequestValue($recordModel->get($fieldName))); } } } $recordModels[$recordId] = $recordModel; } return $recordModels; } }