/** * Execute action * * @see src/common/system_event/SystemEvent::process() */ public function process() { $user_ids = $this->getParametersAsArray(); $project_ids = array(); // Get all projects the user is member of (project member or user group member) $um = $this->getUserManager(); foreach ($user_ids as $user_id) { $user = $um->getUserById($user_id); if ($user && ($user->isActive() || $user->isRestricted())) { $prjs = $user->getAllProjects(); foreach ($prjs as $pid) { if (!isset($project_ids[$pid])) { $project_ids[$pid] = $pid; } } } } // Update SVNAccessFile of projects $backendSVN = $this->getBackendSVN(); foreach ($project_ids as $project_id) { $project = $this->project_manager->getProject($project_id); if ($project && $this->ldap_project_manager->hasSVNLDAPAuth($project->getId())) { $backendSVN->updateProjectSVNAccessFile($project); } } $this->done(); }
private function doCreate() { $data = $this->creation_request->getProjectValues(); require_once 'www/project/create_project.php'; $group_id = create_project($data); return $this->project_manager->getProject($group_id); }
/** * @return Project[] */ public function getProjectsAuthorizingTokens() { $projects = array(); foreach ($this->dao->getProjectsAuthorizingTokens() as $row) { $project_id = $row['project_id']; $projects[] = $this->project_manager->getProject($project_id); } return $projects; }
public function process() { foreach ($this->getProjectIdsFromParameters() as $project_id) { $project = $this->project_manager->getProject($project_id); if ($project && !$project->isError()) { $this->logger->debug('Update configuration for project ' . $project->getID()); $this->gitolite_driver->dumpProjectRepoConf($project); } } $this->system_event_manager->queueGrokMirrorGitoliteAdminUpdate(); $this->done(); }
/** * Create a new project * * $data['project']['form_unix_name'] * $data['project']['form_full_name'] * $data['project']['form_license'] * $data['project']['form_license_other'] * $data['project']['form_short_description'] * $data['project']['built_from_template'] * $data['project']['is_test'] * $data['project']['is_public'] * $data['project']["form_".$descfieldsinfos[$i]["group_desc_id"]] * foreach($data['project']['trove'] as $root => $values); * $data['project']['services'][$arr['service_id']]['is_used']; * $data['project']['services'][$arr['service_id']]['server_id']; * * @param String $shortName * @param String $publicName * @param Array $data * * @return Project */ public function create($shortName, $publicName, $data) { if (!$this->ruleShortName->isValid($shortName)) { throw new Project_InvalidShortName_Exception($this->ruleShortName->getErrorMessage()); } $data['project']['form_unix_name'] = $shortName; if (!$this->ruleFullName->isValid($publicName)) { throw new Project_InvalidFullName_Exception($this->ruleFullName->getErrorMessage()); } $data['project']['form_full_name'] = $publicName; $id = $this->create_project($data); if ($id) { return $this->projectManager->getProject($id); } throw new Project_Creation_Exception(); }
/** * Instanciates a new controller. * * TODO: * - pass $request to actions (e.g. show). * * @param Codendi_Request $request * @param PlanningFactory $planning_factory * @param Planning_MilestoneFactory $milestone_factory */ public function __construct(Codendi_Request $request, Planning_MilestoneFactory $milestone_factory, ProjectManager $project_manager, Planning_VirtualTopMilestonePaneFactory $top_milestone_pane_factory) { parent::__construct('agiledashboard', $request); $this->milestone_factory = $milestone_factory; $this->top_milestone_pane_factory = $top_milestone_pane_factory; $this->project = $project_manager->getProject($request->get('group_id')); }
private function getMatchingProjectsValues(array $results) { $projects = array(); if (isset($results['terms'])) { foreach ($results['terms'] as $result) { $project = $this->project_manager->getProject($result['term']); if ($this->isProjectValid($project)) { $checked = isset($this->submitted_facets[self::IDENTIFIER]) && in_array($project->getGroupId(), $this->submitted_facets[self::IDENTIFIER]); $projects[] = new ElasticSearch_SearchResultProjectsFacet($project, $result['count'], $checked); $this->incrementCountMyProjects($project, $result['count']); } $this->matching_project_ids[] = $project->getID(); } } usort($projects, array($this, 'sortProjects')); return $projects; }
public function isUgroupUsed($ugroup_id, $project_id) { $project = $this->project_manager->getProject($project_id); if (!$project->usesWiki()) { return false; } return $this->permission_manager->isUgroupUsedByWikiService($ugroup_id, $project_id); }
public function fetchAllProjectsConcernedByAMirror(Git_Mirror_Mirror $mirror) { $projects = array(); foreach ($this->dao->fetchAllProjectIdsConcernedByAMirror($mirror->id) as $row) { $projects[] = $this->project_manager->getProject($row['project_id']); } return $projects; }
/** * Instanciates a new controller. * * TODO: * - pass $request to actions (e.g. show). * * @param Codendi_Request $request * @param PlanningFactory $planning_factory * @param Planning_MilestoneFactory $milestone_factory */ public function __construct(Codendi_Request $request, Planning_MilestoneFactory $milestone_factory, ProjectManager $project_manager, Planning_MilestonePaneFactory $pane_factory, AgileDashboard_Milestone_Pane_PanePresenterBuilderFactory $pane_presenter_builder_factory) { parent::__construct('agiledashboard', $request); $this->milestone_factory = $milestone_factory; $this->pane_factory = $pane_factory; $this->pane_presenter_builder_factory = $pane_presenter_builder_factory; $this->project = $project_manager->getProject($request->get('group_id')); }
private function initFileModule($group_id) { $result = db_query("INSERT INTO filemodule (group_id,module_name) VALUES ('{$group_id}','" . $this->projectManager->getProject($group_id)->getUnixName() . "')"); if (!$result) { list($host, $port) = explode(':', $GLOBALS['sys_default_domain']); exit_error($GLOBALS['Language']->getText('global', 'error'), $GLOBALS['Language']->getText('register_confirmation', 'ins_file_fail', array($host, db_error()))); } }
public function __construct(array $hit, ProjectManager $project_manager) { $project = $project_manager->getProject($hit['fields']['group_id']); $this->item_title = $hit['fields']['title']; $this->url = '/plugins/docman/?group_id=' . $hit['fields']['group_id'] . '&id=' . $hit['fields']['id'] . '&action=details'; $this->permissions = implode(', ', $hit['fields']['permissions']); $this->project_name = $project->getPublicName(); $this->highlight = isset($hit['highlight']['file']) ? array_shift($hit['highlight']['file']) : ''; }
/** * @return array */ private function getServices() { $services = array(); $project = $this->project_manager->getProject($this->getTemplateId()); foreach ($project->getServices() as $service) { $id = $service->getId(); $services[$id]['is_used'] = $service->isUsed(); } return $services; }
/** * Return a Project is the given user is authorized to administrate it * * @param Integer $groupId * @param String $sessionKey * * @return Project */ private function getProjectIfUserIsAdmin($groupId, $sessionKey) { $project = $this->projectManager->getProject($groupId); if ($project && !$project->isError()) { if ($this->isRequesterAdmin($sessionKey, $project->getID())) { return $project; } throw new SoapFault('3201', 'Permission denied: need to be project admin.'); } throw new SoapFault('3000', "Invalid project id"); }
private function createTrackerStructure(PFUser $user, $project_id, $tv3_id, $tracker_name, $tracker_description, $tracker_short_name) { $project = $this->project_manager->getProject($project_id); $this->logger->info('--> Migrate structure '); $new_tracker = $this->tracker_factory->createFromTV3($user, $tv3_id, $project, $tracker_name, $tracker_description, $tracker_short_name); if (!$new_tracker) { throw new Tracker_Exception_Migration_StructureCreationException($tracker_name, $tv3_id); } $this->logger->info('<-- Structure migrated ' . PHP_EOL); return $new_tracker->getId(); }
/** * Instanciates a new controller. * * TODO: * - pass $request to actions (e.g. show). * * @param Codendi_Request $request * @param PlanningFactory $planning_factory * @param Planning_MilestoneFactory $milestone_factory */ public function __construct(Codendi_Request $request, Planning_MilestoneFactory $milestone_factory, ProjectManager $project_manager) { parent::__construct('agiledashboard', $request); try { $this->milestone_factory = $milestone_factory; $project = $project_manager->getProject($request->get('group_id')); $this->milestone = $this->milestone_factory->getMilestoneWithPlannedArtifactsAndSubMilestones($this->getCurrentUser(), $project, $request->get('planning_id'), $request->get('aid')); } catch (Tracker_Hierarchy_MoreThanOneParentException $e) { $GLOBALS['Response']->addFeedback('error', $e->getMessage(), CODENDI_PURIFIER_LIGHT); } }
/** * Return all repositories with a remote server set * * @return Array of GitRepository */ public function getActiveRepositoriesWithRemoteServersForAllProjects() { $repositories = array(); foreach ($this->dao->getActiveRepositoryPathsWithRemoteServersForAllProjects() as $row) { $repository = new GitRepository(); $this->dao->hydrateRepositoryObject($repository, $row); $repository->setProject($this->projectManager->getProject($row[GitDao::FK_PROJECT_ID])); $repositories[] = $repository; } return $repositories; }
public function __construct(array $results, ProjectManager $project_manager, array $submitted_facets) { if (isset($results['terms'])) { foreach ($results['terms'] as $result) { $project = $project_manager->getProject($result['term']); if ($project && !$project->isError()) { $checked = isset($submitted_facets['group_id']) && in_array($project->getGroupId(), $submitted_facets['group_id']); $this->facets[] = new ElasticSearch_SearchResultProjectsFacet($project, $result['count'], $checked); } } } }
/** * @param Git_Driver_Gerrit_Template_Template $template * @param Project $project * @param PFUser $user * @throws Git_ProjectNotInHierarchyException */ private function checkTemplateIsAccessible(Git_Driver_Gerrit_Template_Template $template, Project $project, PFUser $user) { $template_id = $template->getId(); foreach ($this->template_factory->getTemplatesAvailableForProject($project) as $available_template) { if ($available_template->getId() == $template_id) { $template_project = $this->project_manager->getProject($available_template->getProjectId()); $this->checkUserIsAdmin($template_project, $user); return true; } } throw new Git_TemplateNotInProjectHierarchyException('Project not in hierarchy', 404); }
public function getSearchResults(array $result) { $results = array(); $validator = new ElasticSearch_1_2_ResultValidator(); if (!isset($result['hits']['hits'])) { return $results; } $user = $this->user_manager->getCurrentUser(); foreach ($result['hits']['hits'] as $hit) { $project = $this->project_manager->getProject($this->extractGroupIdFromHit($hit)); $index = $this->extractIndexFromHit($hit); if ($project->isError()) { continue; } try { $this->url_verification->userCanAccessProject($user, $project); } catch (Project_AccessPrivateException $exception) { continue; } switch ($index) { case fulltextsearchPlugin::SEARCH_DOCMAN_TYPE: if (!$validator->isDocmanResultValid($hit)) { continue; } $results[] = new ElasticSearch_SearchResultDocman($hit, $project); break; case fulltextsearchPlugin::SEARCH_WIKI_TYPE: if (!$validator->isWikiResultValid($hit)) { continue; } $wiki = new Wiki($project->getID()); if ($wiki->isAutorized($user->getId())) { $results[] = new ElasticSearch_SearchResultWiki($hit, $project); } break; case fulltextsearchPlugin::SEARCH_TRACKER_TYPE: if (!$validator->isArtifactResultValid($hit)) { continue; } $artifact = Tracker_ArtifactFactory::instance()->getArtifactById($hit['fields']['id'][0]); if ($artifact->userCanView($user)) { $results[] = new ElasticSearch_SearchResultTracker($hit, $project, $artifact); } break; default: } } return $results; }
public function __construct(array $result, array $submitted_facets, ProjectManager $project_manager) { if (isset($result['hits']['total'])) { $this->nb_documents_found = $result['hits']['total']; } if (isset($result['time'])) { $this->query_time = $result['time']; } if (isset($result['hits']['hits'])) { foreach ($result['hits']['hits'] as $hit) { $project = $project_manager->getProject($hit['fields']['group_id']); if ($project->isError()) { $this->nb_documents_found--; } else { $this->results[] = new ElasticSearch_SearchResult($hit, $project); } } } if (isset($result['facets']['projects'])) { $this->facets = new ElasticSearch_SearchResultProjectsFacetCollection($result['facets']['projects'], $project_manager, $submitted_facets); } }
public function _doDispatchForkRepositories($request, $user) { $this->addAction('getProjectRepositoryList', array($this->groupId)); $this->checkSynchronizerToken('/plugins/git/?group_id=' . (int) $this->groupId . '&action=fork_repositories'); $repos_ids = array(); $valid = new Valid_String('path'); $valid->required(); $path = ''; if ($request->valid($valid)) { $path = trim($request->get('path')); } $path = userRepoPath($user->getUserName(), $path); $forkPermissions = $this->getForkPermissionsFromRequest($request); $valid = new Valid_String('repos'); $valid->required(); $repos_ids = explode(',', $request->get('repos')); $to_project = $this->projectManager->getProject($this->groupId); $repos = $this->getRepositoriesFromIds($repos_ids); $scope = GitRepository::REPO_SCOPE_INDIVIDUAL; $redirect_url = '/plugins/git/?group_id=' . (int) $this->groupId . '&user='******'fork', array($repos, $to_project, $path, $scope, $user, $GLOBALS['HTML'], $redirect_url, $forkPermissions)); }
public function getUserProjectsAsOptions(User $user, ProjectManager $manager, $currentProjectId) { $purifier = Codendi_HTMLPurifier::instance(); $html = ''; $option = '<option value="%d" title="%s">%s</option>'; $usrProject = array_diff($user->getAllProjects(), array($currentProjectId)); foreach ($usrProject as $projectId) { $project = $manager->getProject($projectId); if ($user->isMember($projectId, 'A') && $project->usesService(GitPlugin::SERVICE_SHORTNAME)) { $projectName = $project->getPublicName(); $projectUnixName = $purifier->purify($project->getUnixName()); $html .= sprintf($option, $projectId, $projectUnixName, $projectName); } } return $html; }
private function getProjectFromParameters() { $project_id = $this->getProjectIdFromParameters(); return $this->project_manager->getProject($project_id); }
/** * Read the template and XML and mark services as being in use if they are * allowed in the template and enabled in the XML. */ private function markUsedServicesFromXML(SimpleXMLElement $xml, $template_id, ServiceManager $service_manager = null, ProjectManager $project_manager = null) { $template = $project_manager->getProject($template_id); $services_by_name = array(); foreach ($service_manager->getListOfAllowedServicesForProject($template) as $service) { $services_by_name[$service->getShortName()] = $service; } foreach ($xml->services->children() as $service) { if (!$service instanceof SimpleXMLElement) { continue; } if ($service->getName() !== "service") { continue; } $attrs = $service->attributes(); $name = (string) $attrs['shortname']; $enabled = $attrs['enabled'] == 'true' || $attrs['enabled'] == '1'; if (isset($services_by_name[$name])) { $service_id = $services_by_name[$name]->getId(); $this->data_services[$service_id] = array('is_used' => $enabled); } } }
/** * @return Project */ private function getProjectFromStandardURL() { return $this->project_manager->getProject($this->matches['project_id']); }
private function generateGenericUser($group_id, PFUser $user) { $project = $this->project_manager->getProject($group_id); return $this->getGenericUser($project, $user); }
--> <html> <head> <?php if (session_status() != PHP_SESSION_ACTIVE) { session_start(); } include_once "./Manager/ConnectionManager.php"; include_once "./Manager/ProjectManager.php"; include_once "./Manager/PhotoManager.php"; $project_id = filter_input(INPUT_GET, 'project_id'); $projectMgr = new ProjectManager(); $photoMgr = new PhotoManager(); $hdImages = $photoMgr->getHDPhotosByid($project_id); $detailImage = $hdImages[0]; $project = $projectMgr->getProject($project_id); $completionDate = date_create_from_format('Y-m-d H:i:s', $project['completion_date']); ?> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css"> <link rel="stylesheet" href="./public_html/css/carouselHome.css"> <link rel="stylesheet" href="./public_html/css/main.css"> <link rel="stylesheet" href="./public_html/css/dmx_style.css"> <style> .wrapper{ margin-bottom: 30px; } /**** change the divider width as the side scroll bar existence ****/ .navbar-dmx .divider{
public function instantiateProjectFromRow(array $row) { return $this->project_manager->getProject($row['project_id']); }
/** * Return the requested project (url parameter: group_id) * * @return Project */ public function getProject() { return $this->project_manager->getProject((int) $this->get('group_id')); }