getPrivileges(); if(!$privileges->hasModulePermission(getTabid('SPTips'))) { throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger')); } } public function process (Vtiger_Request $request) { $response = new Vtiger_Response(); $ruleModel = Settings_SPTips_Rule_Model::getInstanceById($request->get('ruleId')); if($ruleModel == null) { $response->setError(vtranslate('LBL_INVALID_RULE', $request->getModule())); $response->emit(); return; } $provider = $ruleModel->getProvider(); if ($provider == null) { $response->setError(vtranslate('LBL_NO_PROVIDER', $request->getModule())); $response->emit(); return; } $realizationModel = $provider->getConcreteRealization(); switch($ruleModel->getType()) { case SPTips_SearchType_Model::ADDRESS: $response->setResult( $realizationModel->searchAddress( $request->get('search'), $ruleModel->getDependentFields() ) ); break; case SPTips_SearchType_Model::ORGANIZATION: $response->setResult( $realizationModel->searchOrganization( $request->get('search'), $ruleModel->getDependentFields() ) ); break; default: $response->setError(vtranslate('LBL_INVALID_TYPE')); break; } $response->emit(); } }