exposeMethod('save'); $this->exposeMethod('delete'); } function checkPermission(Vtiger_Request $request) { $moduleName = $request->getModule(); $moduleModel = Vtiger_Module_Model::getInstance($moduleName); $userPrivilegesModel = Users_Privileges_Model::getCurrentUserPrivilegesModel(); $permission = $userPrivilegesModel->hasModulePermission($moduleModel->getId()); if(!$permission) { throw new AppException('LBL_PERMISSION_DENIED'); } return true; } public function process(Vtiger_Request $request) { $mode = $request->getMode(); if(!empty($mode)) { echo $this->invokeExposedMethod($mode, $request); return; } } /** * Function saves a tag for a record * @param Vtiger_Request $request */ public function save(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $tagModel = new Vtiger_Tag_Model(); $tagModel->set('userid', $currentUser->id); $tagModel->set('record', $request->get('record')); $tagModel->set('tagname', $request->get('tagname')); $tagModel->set('module', $request->getModule()); $tagModel->save(); $taggedInfo = Vtiger_Tag_Model::getAll($currentUser->id, $request->getModule(), $request->get('record')); $response = new Vtiger_Response(); $response->setResult($taggedInfo); $response->emit($taggedInfo); } /** * Function deleted a tag * @param Vtiger_Request $request */ public function delete(Vtiger_Request $request) { $tagModel = new Vtiger_Tag_Model(); $tagModel->set('record', $request->get('record')); $tagModel->set('tag_id', $request->get('tag_id')); $tagModel->delete(); } /** * Function returns list of tage for the record * @param Vtiger_Request $request */ public function getTags(Vtiger_Request $request) { $currentUser = Users_Record_Model::getCurrentUserModel(); $record = $request->get('record'); $module = $request->getModule(); $tags = Vtiger_Tag_Model::getAll($currentUser->id, $module, $record); $response = new Vtiger_Response(); $response->emit($tags); } }