/** * 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); }
/** * 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); }
/** * @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); } }