示例#1
0
 public function display()
 {
     $git_php_viewer = new GitViews_GitPhpViewer($this->repository, $this->controller->getPlugin()->getConfigurationParameter('gitphp_path'));
     if ($this->request->get('noheader') == 1) {
         $view = new GitViews_ShowRepo_Download($git_php_viewer);
     } else {
         $view = new GitViews_ShowRepo_Content($this->repository, $git_php_viewer, $this->request->getCurrentUser(), $this->controller, $this->url_manager, $this->driver_factory, $this->gerrit_usermanager, $this->mirror_data_mapper, $this->gerrit_servers, $this->controller->getPlugin()->getThemePath());
     }
     $view->display();
 }
示例#2
0
 public function route()
 {
     if (!$this->request->getCurrentUser()->isSuperUser()) {
         $this->controller->notSiteAdmin();
     } elseif ($this->request->get('update')) {
         $this->controller->update();
     } else {
         $this->controller->index();
     }
 }
 /**
  * Process the request
  *
  * @param Tracker_IDisplayTrackerLayout  $layout          Displays the page header and footer
  * @param Codendi_Request                $request         The data coming from the user
  * @param PFUser                         $current_user    The user who mades the request
  *
  * @return void
  */
 public function process(Tracker_IDisplayTrackerLayout $layout, $request, $current_user)
 {
     switch ($request->get('func')) {
         case 'toggle-collapse':
             $current_user = $request->getCurrentUser();
             $current_user->togglePreference('fieldset_' . $this->getId(), 1, 0);
             break;
         default:
             parent::process($layout, $request, $current_user);
     }
 }
 /**
  * @return \AgileDashboard_Milestone_Pane_Planning_PlanningPaneInfo
  */
 private function getTopPlanningV2PaneInfo(Planning_Milestone $milestone)
 {
     $milestone_artifact_id = $this->getMilestoneArtifactId();
     $milestone_tracker = $milestone->getPlanning()->getPlanningTracker();
     if (!$milestone_tracker) {
         return;
     }
     $pane_info = new AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo($milestone, $this->theme_path, $milestone_tracker);
     $pane_info->setActive(true);
     $this->active_pane[$milestone_artifact_id] = new AgileDashboard_Milestone_Pane_Planning_PlanningV2Pane($pane_info, new AgileDashboard_Milestone_Pane_Planning_PlanningV2Presenter($this->request->getCurrentUser(), $this->request->getProject(), $milestone_artifact_id, null, $this->getPaginatedBacklogItemsRepresentationsForTopMilestone($milestone, $this->request->getCurrentUser()), $this->getPaginatedTopMilestonesRepresentations($this->request->getProject(), $this->request->getCurrentUser())));
     return $pane_info;
 }
 /**
  * @return \AgileDashboard_Milestone_Pane_Planning_PlanningPaneInfo
  */
 private function getTopPlanningV2PaneInfo(Planning_Milestone $milestone)
 {
     $milestone_artifact_id = $this->getMilestoneArtifactId();
     $milestone_tracker = $milestone->getPlanning()->getPlanningTracker();
     if (!$milestone_tracker) {
         return;
     }
     $pane_info = new AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo($milestone, $this->theme_path, $milestone_tracker);
     if ($this->request->get('pane') == AgileDashboard_Milestone_Pane_TopPlanning_TopPlanningV2PaneInfo::IDENTIFIER) {
         $pane_info->setActive(true);
         $this->active_pane[$milestone_artifact_id] = new AgileDashboard_Milestone_Pane_Planning_PlanningV2Pane($pane_info, new AgileDashboard_Milestone_Pane_Planning_PlanningV2Presenter($this->request->getCurrentUser(), $this->request->getProject(), $milestone_artifact_id));
     }
     return $pane_info;
 }
示例#6
0
 public function linkWithParents(Codendi_Request $request, Tracker_Artifact $artifact)
 {
     $user = $request->getCurrentUser();
     $ancestors = $artifact->getAllAncestors($user);
     if (count($ancestors) == 0) {
         $artifact_id = (int) $request->getValidated('link-artifact-id', 'uint', 0);
         $source_artifact = $this->artifact_factory->getArtifactById($artifact_id);
         if ($source_artifact) {
             foreach ($source_artifact->getAllAncestors($user) as $ancestor) {
                 $ancestor->linkArtifact($artifact->getId(), $user);
             }
         }
     }
 }
 /**
  * @param Codendi_Request $request
  *
  * @return AgileDashboardRouter
  */
 public function build(Codendi_Request $request)
 {
     $plugin = $this->plugin_factory->getPluginByName(AgileDashboardPlugin::PLUGIN_NAME);
     $planning_factory = $this->getPlanningFactory();
     $milestone_factory = $this->getMilestoneFactory();
     $hierarchy_factory = $this->getHierarchyFactory();
     $submilestone_finder = new AgileDashboard_Milestone_Pane_Planning_SubmilestoneFinder($hierarchy_factory, $planning_factory);
     $pane_info_factory = new AgileDashboard_PaneInfoFactory($request->getCurrentUser(), $submilestone_finder, $plugin->getThemePath());
     $pane_presenter_builder_factory = $this->getPanePresenterBuilderFactory($milestone_factory, $pane_info_factory);
     $pane_factory = $this->getPaneFactory($request, $milestone_factory, $pane_presenter_builder_factory, $submilestone_finder, $pane_info_factory, $plugin);
     $top_milestone_pane_factory = $this->getTopMilestonePaneFactory($request, $pane_presenter_builder_factory, $plugin);
     $milestone_controller_factory = new Planning_MilestoneControllerFactory($plugin, ProjectManager::instance(), $milestone_factory, $this->getPlanningFactory(), $hierarchy_factory, $pane_presenter_builder_factory, $pane_factory, $top_milestone_pane_factory);
     return new AgileDashboardRouter($plugin, $milestone_factory, $planning_factory, new Planning_ShortAccessFactory($planning_factory, $pane_info_factory), $milestone_controller_factory, ProjectManager::instance(), new AgileDashboard_XMLFullStructureExporter(EventManager::instance(), $this), $this->getKanbanManager(), $this->getConfigurationManager(), $this->getKanbanFactory(), new PlanningPermissionsManager(), $this->getHierarchyChecker());
 }
 public function routeShowTopPlanning(Codendi_Request $request, $default_controller)
 {
     $user = $request->getCurrentUser();
     if (!$user) {
         $this->renderAction($default_controller, 'index', $request);
     }
     $service = $this->getService($request);
     if (!$service) {
         exit_error($GLOBALS['Language']->getText('global', 'error'), $GLOBALS['Language']->getText('project_service', 'service_not_used', $GLOBALS['Language']->getText('plugin_agiledashboard', 'service_lbl_key')));
     }
     $toolbar = array();
     if ($this->userIsAdmin($request)) {
         $toolbar[] = array('title' => $GLOBALS['Language']->getText('global', 'Admin'), 'url' => AGILEDASHBOARD_BASE_URL . '/?' . http_build_query(array('group_id' => $request->get('group_id'), 'action' => 'admin')));
     }
     $no_breadcrumbs = new BreadCrumb_NoCrumb();
     $controller = $this->milestone_controller_factory->getVirtualTopMilestoneController($request);
     $header_options = array_merge(array('body_class' => array('agiledashboard_planning')), $controller->getHeaderOptions());
     $service->displayHeader($this->getHeaderTitle('showTop'), $no_breadcrumbs, $toolbar, $header_options);
     $this->executeAction($controller, 'showTop', array());
     $this->displayFooter($request);
 }
示例#9
0
 /**
  * Builds a new cross-tracker search view builder.
  * 
  * TODO:
  *   - move to controller (this has nothing to do with routing)
  * 
  * @param Codendi_Request $request
  * 
  * @return Tracker_CrossSearch_ViewBuilder
  */
 protected function getViewBuilder(Codendi_Request $request)
 {
     $form_element_factory = Tracker_FormElementFactory::instance();
     $group_id = $request->get('group_id');
     $user = $request->getCurrentUser();
     $object_god = new TrackerManager();
     $planning_trackers = $this->getPlanningFactory()->getPlanningTrackers($group_id, $user);
     $art_link_field_ids = $form_element_factory->getArtifactLinkFieldsOfTrackers($planning_trackers);
     return new Planning_ViewBuilder($form_element_factory, $object_god->getCrossSearch($art_link_field_ids), $object_god->getCriteriaBuilder($user, $planning_trackers));
 }
示例#10
0
 private function getTrackersNotInHierachy()
 {
     $trackers_not_in_hierarchy = array();
     EventManager::instance()->processEvent(TRACKER_EVENT_TRACKERS_CANNOT_USE_IN_HIERARCHY, array('tracker' => $this->tracker->getUnhierarchizedTracker(), 'user' => $this->request->getCurrentUser(), 'result' => &$trackers_not_in_hierarchy));
     return $trackers_not_in_hierarchy;
 }
示例#11
0
 /**
  * @return Tracker_CrossSearch_SearchController 
  */
 protected function getCrossSearchController(Codendi_Request $request)
 {
     return new Tracker_CrossSearch_SearchController($request, ProjectManager::instance(), $GLOBALS['Response'], $this->getCrossSearchViewBuilder($request->get('group_id'), $request->getCurrentUser()));
 }
 private function getAllMilestonesOfCurrentPlanning(Planning_Milestone $milestone)
 {
     return $this->milestone_factory->getAllBareMilestones($this->request->getCurrentUser(), $milestone->getPlanning());
 }
 /**
  * @return PFUser
  */
 public function getCurrentUser()
 {
     return $this->request->getCurrentUser();
 }
示例#14
0
 /**
  * Ensure consistency of backlogs
  *
  * This method returns the last milestone artifact we linked $artifact with
  *
  * @param Codendi_Request  $request  The comment about the request parameter
  * @param Tracker_Artifact $artifact The just created artifact
  *
  * @return Tracker_Artifact
  */
 public function linkBacklogWithPlanningItems(Codendi_Request $request, Tracker_Artifact $artifact)
 {
     $user = $request->getCurrentUser();
     $milestone_artifact = $this->getMilestoneArtifact($user, $request, $artifact);
     return $this->linkWithMilestoneArtifact($user, $artifact, $milestone_artifact);
 }
示例#15
0
 protected function getCurrentUser()
 {
     return $this->request->getCurrentUser();
 }
 public function showImage(Codendi_Request $request)
 {
     $project = $this->getProjectFromRequest();
     $user = $request->getCurrentUser();
     if (!$project) {
         exit;
     }
     if ((!$project->isPublic() || $user->isRestricted()) && !$project->userIsMember() && !$user->isSuperUser() && !$this->doesUserHavePermission($user)) {
         exit;
     }
     preg_match('%' . $this->getPluginPath() . '/wiki/[^/]+/images(.*)%', $_SERVER['REQUEST_URI'], $matches);
     $file_location = $matches[1];
     $folder_location = '';
     if (is_dir('/var/lib/codendi/mediawiki/projects/' . $project->getUnixName())) {
         $folder_location = '/var/lib/codendi/mediawiki/projects/' . $project->getUnixName() . '/images';
     } elseif (is_dir('/var/lib/codendi/mediawiki/projects/' . $project->getId())) {
         $folder_location = '/var/lib/codendi/mediawiki/projects/' . $project->getId() . '/images';
     } else {
         exit;
     }
     $file = $folder_location . $file_location;
     if (!file_exists($file)) {
         exit;
     }
     $size = getimagesize($file);
     $fp = fopen($file, 'r');
     if ($size and $fp) {
         header('Content-Type: ' . $size['mime']);
         header('Content-Length: ' . filesize($file));
         readfile($file);
         exit;
     }
 }
示例#17
0
 public function process(Codendi_Request $request)
 {
     switch ($request->get('action')) {
         case 'toggle_user_autostack_column':
             $display_preferences_controller = new Cardwall_UserPreferences_UserPreferencesController($request);
             $display_preferences_controller->toggleAutostack();
             break;
         case 'toggle_user_display_avatar':
             $display_preferences_controller = new Cardwall_UserPreferences_UserPreferencesController($request);
             $display_preferences_controller->toggleUserDisplay();
             break;
         case 'get-card':
             try {
                 $single_card_builder = new Cardwall_SingleCardBuilder($this->getConfigFactory(), new Cardwall_CardFields(UserManager::instance(), Tracker_FormElementFactory::instance()), Tracker_ArtifactFactory::instance(), PlanningFactory::build());
                 $controller = new Cardwall_CardController($request, $single_card_builder->getSingleCard($request->getCurrentUser(), $request->getValidated('id', 'uint', 0), $request->getValidated('planning_id', 'uint', 0)));
                 $controller->getCard();
             } catch (Exception $exception) {
                 $GLOBALS['Response']->addFeedback(Feedback::ERROR, $exception->getMessage());
                 $GLOBALS['Response']->sendStatusCode(400);
             }
             break;
         default:
             echo 'Hello !';
     }
 }