exposeMethod('saveRule'); $this->exposeMethod('deleteRule'); } public function process(Vtiger_Request $request) { $mode = $request->get('mode'); if(!empty($mode)) { $this->invokeExposedMethod($mode, $request); return; } } public function saveRule(Vtiger_Request $request) { $forModule = $request->get('for_module'); $ruleId = $request->get('record'); $moduleModel = Settings_SharingAccess_Module_Model::getInstance($forModule); if(empty($ruleId)) { $ruleModel = new Settings_SharingAccess_Rule_Model(); $ruleModel->setModuleFromInstance($moduleModel); }else { $ruleModel = Settings_SharingAccess_Rule_Model::getInstance($moduleModel, $ruleId); } $ruleModel->set('source_id', $request->get('source_id')); $ruleModel->set('target_id', $request->get('target_id')); $ruleModel->set('permission', $request->get('permission')); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); try { $ruleModel->save(); } catch (AppException $e) { $response->setError('Saving Sharing Access Rule failed'); } $response->emit(); } public function deleteRule(Vtiger_Request $request) { $forModule = $request->get('for_module'); $ruleId = $request->get('record'); $moduleModel = Settings_SharingAccess_Module_Model::getInstance($forModule); $ruleModel = Settings_SharingAccess_Rule_Model::getInstance($moduleModel, $ruleId); $response = new Vtiger_Response(); $response->setEmitType(Vtiger_Response::$EMIT_JSON); try { $ruleModel->delete(); } catch (AppException $e) { $response->setError('Deleting Sharing Access Rule failed'); } $response->emit(); } public function validateRequest(Vtiger_Request $request) { $request->validateWriteAccess(); } }