public function getStatistics($statistic_name, $date_start, $date_end) { $statistics_data = array(); $params = array('statistic_name' => $statistic_name, 'date_start' => $date_start, 'date_end' => $date_end, 'result' => &$statistics_data); $this->event_manager->processEvent('get_statistics_aggregation', $params); return $statistics_data; }
public function getProcessForQueue($request_queue) { $owner = SystemEvent::OWNER_APP; $custom_queues = array(); $this->event_manager->processEvent(Event::SYSTEM_EVENT_GET_CUSTOM_QUEUES, array('queues' => &$custom_queues)); if (isset($custom_queues[$request_queue])) { $this->logger = $custom_queues[$request_queue]->getLogger(); $this->logger->debug('Processing ' . $request_queue . ' queue.'); $process = new SystemEventProcessCustomQueue($request_queue); $owner = $custom_queues[$request_queue]->getOwner(); } else { switch ($request_queue) { case SystemEvent::OWNER_APP: $this->logger->debug('Processing default queue as app user.'); $process = new SystemEventProcessApplicationOwnerDefaultQueue(); break; case SystemEvent::DEFAULT_QUEUE: $this->logger->debug('Processing default queue as root user.'); $owner = SystemEvent::OWNER_ROOT; $process = new SystemEventProcessRootDefaultQueue(); break; default: $this->logger->debug('Ignoring ' . $request_queue . ' queue.'); exit(0); } } if ($owner === SystemEvent::OWNER_APP) { return new SystemEventProcessor_ApplicationOwner($process, $this->system_event_manager, new SystemEventDao(), $this->logger); } return new SystemEventProcessor_Root($process, $this->system_event_manager, new SystemEventDao(), $this->logger, Backend::instance('Aliases'), Backend::instance('CVS'), Backend::instance('SVN'), Backend::instance('System'), new SiteCache($this->logger)); }
private function getModFromPlugins(array $project_info, $requested_authentication_method, $project_authorizes_tokens) { $svn_apache_auth = null; $params = array('svn_apache_auth' => &$svn_apache_auth, 'svn_conf_auth' => $requested_authentication_method, 'project_authorizes_tokens' => $project_authorizes_tokens, 'project_info' => $project_info); $this->event_manager->processEvent(Event::SVN_APACHE_AUTH, $params); return $svn_apache_auth; }
public function getMilestoneRepresentation(Planning_Milestone $milestone, PFUser $user) { $milestone_representation = new MilestoneRepresentation(); $milestone_representation->build($milestone, $this->milestone_factory->getMilestoneStatusCount($user, $milestone), $this->getBacklogTrackers($milestone), $this->milestone_factory->userCanChangePrioritiesInMilestone($milestone, $user)); $this->event_manager->processEvent(AGILEDASHBOARD_EVENT_REST_GET_MILESTONE, array('version' => 'v1', 'user' => $user, 'milestone' => $milestone, 'milestone_representation' => &$milestone_representation)); return $milestone_representation; }
public function update(Codendi_Request $request, Response $response) { $emailgateway_mode = $request->get('emailgateway_mode'); if ($emailgateway_mode && $this->config->setEmailgatewayMode($emailgateway_mode)) { $response->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_tracker_config', 'successfully_updated')); } $this->event_manager->processEvent(Event::UPDATE_ALIASES, null); $response->redirect($_SERVER['REQUEST_URI']); }
/** * Import cardwall ontop from XML input * * @param SimpleXMLElement $xml_input * @throws CardwallFromXmlImportCannotBeEnabledException */ public function import(SimpleXMLElement $xml_input) { if (!$xml_input->{CardwallConfigXml::NODE_CARDWALL}) { return; } $rng_path = realpath(CARDWALL_BASE_DIR . '/../www/resources/xml_project_cardwall.rng'); $this->xml_validator->validate($xml_input->{CardwallConfigXml::NODE_CARDWALL}, $rng_path); $this->importCardwalls($xml_input->{CardwallConfigXml::NODE_CARDWALL}); $this->event_manager->processEvent(Event::IMPORT_XML_PROJECT_CARDWALL_DONE, array('project_id' => $this->group_id, 'xml_content' => $xml_input, 'mapping' => $this->mapping)); }
private function allowSVNTokensForProject($project_to_migrate) { $project = $this->project_manager->getProjectFromAutocompleter($project_to_migrate); if ($project && $this->token_manager->canAuthorizeTokens($project)) { $this->token_manager->setProjectAuthorizesTokens($project); $this->event_manager->processEvent(Event::SVN_AUTHORIZE_TOKENS, array('group_id' => $project->getID())); $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('svn_tokens', 'allowed_project_allow_project')); } else { $this->sendUpdateProjectListError(); } }
private function importContent($project_id, $file_contents) { $this->logger->info("Importing project in project {$project_id}"); $this->checkFileIsValidXML($file_contents); $xml_element = simplexml_load_string($file_contents); $project = $this->getProject($project_id); $this->importUgroups($project, $xml_element); $this->logger->info("Ask to plugin to import data from XML"); $this->event_manager->processEvent(Event::IMPORT_XML_PROJECT, array('project' => $project, 'xml_content' => $xml_element)); $this->logger->info("Finish importing project in project {$project_id}"); }
public function updateAccess($new_value, $old_value) { if ($new_value === $old_value) { return; } $property_name = ForgeAccess::CONFIG; $this->config_dao->save($property_name, $new_value); $this->event_manager->processEvent(Event::SITE_ACCESS_CHANGE, array('new_value' => $new_value, 'old_value' => $old_value)); if ($old_value === ForgeAccess::RESTRICTED || $new_value === ForgeAccess::RESTRICTED) { $this->project_manager->disableAllowRestrictedForAll(); $this->permission_manager->disableRestrictedAccess(); } }
private function importContent(Project $project, $xml_contents, $extraction_path) { $project_id = $project->getID(); $this->logger->info("Importing project in project {$project_id}"); $this->checkFileIsValidXML($xml_contents); $xml_element = simplexml_load_string($xml_contents); $this->importUgroups($project, $xml_element); $svn = new SVNXMLImporter($this->logger, $this->xml_validator); $svn->import($project, $xml_element, $extraction_path); $this->logger->info("Ask to plugin to import data from XML"); $this->event_manager->processEvent(Event::IMPORT_XML_PROJECT, array('project' => $project, 'xml_content' => $xml_element, 'extraction_path' => $extraction_path, 'user_finder' => $this->user_finder)); $this->logger->info("Finish importing project in project {$project_id}"); }
/** * Return the group_id of an artifact_id * * @param Integer $artifact_id * * @return Integer */ protected function getGroupIdFromArtifactIdForCallbackFunction($artifact_id) { $group_id = $this->getGroupIdFromArtifactId($artifact_id); if ($group_id === false) { $this->eventManager->processEvent(Event::GET_ARTIFACT_REFERENCE_GROUP_ID, array('artifact_id' => $artifact_id, 'group_id' => &$group_id)); } return $group_id; }
public function itFallbackToCallHookIfGivenCallbackDoesNotExist() { $event = 'an_event'; $params = array('some_params'); $listener = new Event2MockEventListener($this); stub($listener)->CallHook($event, $params)->once(); $em = new EventManager(); $em->addListener($event, $listener, 'doSomething', false); $em->processEvent($event, $params); }
private function importContent(Project $project, SimpleXMLElement $xml_element, $extraction_path) { $this->logger->info("Importing project in project " . $project->getUnixName()); $this->importUgroups($project, $xml_element); $svn = new SVNXMLImporter($this->logger, $this->xml_validator); $svn->import($project, $xml_element, $extraction_path); $this->logger->info("Ask to plugin to import data from XML"); $this->event_manager->processEvent(Event::IMPORT_XML_PROJECT, array('logger' => $this->logger, 'project' => $project, 'xml_content' => $xml_element, 'extraction_path' => $extraction_path, 'user_finder' => $this->user_finder)); $this->logger->info("Finish importing project in project " . $project->getUnixName()); }
private function authenticateFromDatabase(PFUser $user, $password) { $is_auth_valid = false; if ($this->verifyPassword($user, $password)) { $user->setPassword($password); $this->checkPasswordStorageConformity($user); $is_auth_valid = true; $this->event_manager->processEvent(Event::SESSION_AFTER_LOGIN, array('user' => $user, 'allow_codendi_login' => &$is_auth_valid)); } return $is_auth_valid; }
/** * attach a callable directly * * @covers Phossa\Event\EventManager::attachListener */ public function testAttachListener4() { // attach a callable $this->object->attachListener(function (Event $evt) { $evt->setProperty('xxx', 'bingo'); return 10; }, 'bingoEvent'); $evt = new Event('bingoEvent'); $this->object->processEvent($evt); $this->assertArrayHasKey('xxx', $evt->getProperties()); }
private function getReference($key, $value, $ref_gid) { $reference = null; $project_manager = ProjectManager::instance(); $project = $project_manager->getProject($ref_gid); $this->eventManager->processEvent(Event::GET_REFERENCE, array('reference_manager' => $this, 'project' => $project, 'keyword' => $key, 'value' => $value, 'group_id' => $ref_gid, 'reference' => &$reference)); if (!$reference) { $num_args = substr_count($value, '/') + 1; $reference = $this->_getReferenceFromKeywordAndNumArgs($key, $ref_gid, $num_args); } return $reference; }
protected function fetchArtifactReferencesSidebar() { $html = ''; $linked_artifacts = $this->artifact->getLinkedArtifacts($this->user); $reference_information = array(); $this->event_manager->processEvent(TRACKER_EVENT_COMPLEMENT_REFERENCE_INFORMATION, array('artifact' => $this->artifact, 'reference_information' => &$reference_information)); if (!empty($reference_information) || count($linked_artifacts) > 0) { $html .= '<div class="artifact-references">'; $html .= '<div class="grip"><i class="icon-double-angle-left"></i></div>'; $html .= '<div class="artifact-references-content">'; foreach ($reference_information as $information) { $html .= '<div>'; $html .= '<h2>' . $information['title'] . '</h2>'; foreach ($information['links'] as $link) { $html .= '<img src="' . $link['icon'] . '"/>'; $html .= '<a href="' . $link['link'] . '">' . $link['label'] . '</a>'; } $html .= '</div>'; } if (count($linked_artifacts) > 0) { $html .= '<div>'; $html .= '<h2>' . $GLOBALS['Language']->getText('plugin_tracker_artifact', 'references_title') . '</h2>'; $html .= '<ul>'; foreach ($linked_artifacts as $artifact) { $link = '/goto?key=' . $artifact->getTracker()->getItemName() . '&val=' . $artifact->getId() . '&group_id=' . $artifact->getTracker()->getProject()->getID(); $html .= '<li>'; $html .= '<a href="' . $link . '">' . $artifact->getXRefAndTitle() . '</a>'; $html .= '</li>'; } $html .= '</ul>'; $html .= '</div>'; } $html .= '</div>'; $html .= '</div>'; } return $html; }
private function getSearchPresenter(Search_SearchQuery $query, $results) { $project_search_types = array(); $site_search_types = array(); $additional_search_tabs = array(); $redirect_to_services = true; $this->event_manager->processEvent(Event::SEARCH_TYPES_PRESENTERS, array('project' => $query->getProject(), 'words' => $query->getWords(), 'project_presenters' => &$project_search_types, 'site_presenters' => &$site_search_types, 'redirect_to_services' => &$redirect_to_services)); $additional_project_search_types = $this->getAdditionnalProjectWidePresentersIfNeeded($query->getProject(), $query->getWords(), $redirect_to_services); $project_search_types = array_merge($additional_project_search_types, $project_search_types); $search_panes = array(); if (!$query->getProject()->isError()) { $project_name = util_unconvert_htmlspecialchars($query->getProject()->getPublicName()); $search_panes[] = new Search_SearchPanePresenter($GLOBALS['Language']->getText('search_index', 'project_wide_search', $project_name), $project_search_types, $GLOBALS['Language']->getText('search_index', 'no_searchable_services')); } $search_panes[] = $this->getSiteWidePane($site_search_types); $this->event_manager->processEvent(Event::FETCH_ADDITIONAL_SEARCH_TABS, array('additional_search_tabs' => &$additional_search_tabs)); return new Search_Presenter_SearchPresenter($query->getTypeOfSearch(), $query->getWords(), $results, $search_panes, $additional_search_tabs, $query->getProject()); }
/** * @param int $group_id * @param SimpleXMLElement $xml_input * * @throws XML_ParseException * @return Tracker[] */ public function import($group_id, SimpleXMLElement $xml_input) { if (!$xml_input->trackers) { return; } $this->xmlFieldsMapping = array(); $created_trackers_list = array(); $this->rng_validator->validate($xml_input->trackers, dirname(TRACKER_BASE_DIR) . '/www/resources/trackers.rng'); foreach ($this->getAllXmlTrackers($xml_input) as $xml_tracker_id => $xml_tracker) { $created_tracker = $this->instanciateTrackerFromXml($group_id, $xml_tracker_id, $xml_tracker); $created_trackers_list = array_merge($created_trackers_list, $created_tracker); } $this->importHierarchy($xml_input, $created_trackers_list); if (isset($xml_input->trackers->triggers)) { $this->trigger_rulesmanager->createFromXML($xml_input->trackers->triggers, $this->xmlFieldsMapping); } $this->event_manager->processEvent(Event::IMPORT_XML_PROJECT_TRACKER_DONE, array('project_id' => $group_id, 'xml_content' => $xml_input, 'mapping' => $created_trackers_list)); return $created_trackers_list; }
function testProcessEvent1() { //The listeners $l1 = new Event1MockEventListener($this); $l1->expectOnce('doSomething'); $l2 = new Event1MockEventListener($this); $l2->expectOnce('doSomething'); $l3 = new Event2MockEventListener($this); $l3->expectNever('CallHook'); //The events $e1 = 'event1'; $e2 = 'event2'; //The event Manager $m = new EventManager(); //We register the listeners for the type $m->addListener($e1, $l1, 'doSomething', false, 0); $m->addListener($e1, $l2, 'doSomething', false, 0); $m->addListener($e2, $l3, 'CallHook', true, 0); //We process event $params = array(); $m->processEvent($e1, $params); }
/** * @return SimpleXMLElement */ private function exportOtherPlugins(Project $project, SimpleXMLElement $into_xml) { $this->event_manager->processEvent(AGILEDASHBOARD_EXPORT_XML, array('project' => $project, 'into_xml' => $into_xml)); }
protected function enhanceRedirect(Codendi_Request $request) { $this->event_manager->processEvent(TRACKER_EVENT_BUILD_ARTIFACT_FORM_ACTION, array('request' => $request, 'redirect' => $this->redirect)); }
private function exportPlugins(Project $project, SimpleXMLElement $into_xml, array $options, PFUser $user, ZipArchive $archive) { $this->logger->info("Export plugins"); $params = array('project' => $project, 'options' => $options, 'into_xml' => $into_xml, 'user' => $user, 'archive' => $archive); $this->event_manager->processEvent(Event::EXPORT_XML_PROJECT, $params); }
public function search(Search_SearchQuery $query, Search_SearchResults $results) { $params = array('query' => $query, 'results' => $results); $this->event_manager->processEvent(Event::SEARCH_TYPE, $params); }