/**
  * Ensure given user can access given project
  *
  * @param PFUser  $user
  * @param Project $project
  * @return boolean
  * @throws Project_AccessProjectNotFoundException
  * @throws Project_AccessDeletedException
  * @throws Project_AccessRestrictedException
  * @throws Project_AccessPrivateException
  */
 public function userCanAccessProject(PFUser $user, Project $project)
 {
     $tracker_manager = new TrackerManager();
     if ($tracker_manager->userCanAdminAllProjectTrackers($user)) {
         return true;
     }
     return parent::userCanAccessProject($user, $project);
 }
예제 #2
0
 /**
  * Display header for service tracker
  *
  * @param string $title       The title
  * @param array  $breadcrumbs array of breadcrumbs (array of 'url' => string, 'title' => string)
  * @param array  $toolbar     array of toolbars (array of 'url' => string, 'title' => string)
  *
  * @return void
  */
 public function displayHeader($title, $breadcrumbs, $toolbar, $params = array())
 {
     $GLOBALS['HTML']->includeCalendarScripts();
     $tracker_manager = new TrackerManager();
     $user_has_special_access = $tracker_manager->userCanAdminAllProjectTrackers();
     $params = $params + array('user_has_special_access' => $user_has_special_access);
     $params['service_name'] = self::NAME;
     $params['project_id'] = $this->getGroupId();
     parent::displayHeader($title, $breadcrumbs, $toolbar, $params);
 }
예제 #3
0
 /**
  * @throws SoapFault if user can't access the project
  */
 private function checkUserCanAccessProject(PFUser $user, Project $project)
 {
     if (!$this->tracker_manager->userCanAdminAllProjectTrackers($user)) {
         $this->soap_request_validator->assertUserCanAccessProject($user, $project);
     }
 }