function __construct(Project $project, $url, $feedback, MailBuilder $mail_builder)
 {
     parent::__construct();
     $this->project = $project;
     $this->_url = $url;
     $this->_listeners = array();
     $this->_feedback = $feedback;
     $this->_item_factory = $this->_getItemFactory();
     $this->notifications = array();
     $this->mail_builder = $mail_builder;
     if ($project && !$project->isError()) {
         $this->_group_name = $project->getPublicName();
     }
 }
Example #2
0
 private function checkIfProjectIsValid(Project $project)
 {
     if ($project->isError()) {
         $GLOBALS['Response']->addFeedback(Feedback::ERROR, $GLOBALS['Language']->getText('plugin_git', 'view_admin_template_invalid_project'));
         return;
     }
     return true;
 }
 private function isSearchEntryAvailable(Project $project = null)
 {
     if ($project && !$project->isError()) {
         return $project->usesService(self::SERVICE_SHORTNAME);
     }
     return false;
 }
 private function isSearchEntryAvailable(Project $project = null)
 {
     if ($project && !$project->isError()) {
         return $project->usesService('plugin_phpwiki');
     }
     return false;
 }
 /**
  * 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)
 {
     if ($project->isError()) {
         throw new Project_AccessProjectNotFoundException();
     } elseif ($user->isSuperUser()) {
         return true;
     } elseif (!$project->isActive()) {
         throw new Project_AccessDeletedException($project);
     } elseif ($user->isMember($project->getID())) {
         return true;
     } elseif ($this->getPermissionsOverriderManager()->doesOverriderAllowUserToAccessProject($user, $project)) {
         return true;
     } elseif ($user->isRestricted()) {
         if (!$project->allowsRestricted() || !$this->restrictedUserCanAccessUrl($user, $this->getUrl(), $_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'])) {
             throw new Project_AccessRestrictedException();
         }
         return true;
     } elseif ($project->isPublic()) {
         return true;
     } elseif ($this->userHasBeenDelegatedAccess($user)) {
         return true;
     }
     throw new Project_AccessPrivateException();
 }
 /**
  * Get All templates for projects higher in hierarchy. Does not include
  * templates for project itself.
  *
  * @param Project $project
  * @return Git_Driver_Gerrit_Template_Template[]
  */
 public function getTemplatesAvailableForParentProjects(Project $project)
 {
     if ($project->isError()) {
         return array();
     }
     $templates = array();
     $project_manager = ProjectManager::instance();
     $projects = $project_manager->getAllParentsProjects($project->getId());
     foreach ($projects as $project) {
         $templates = array_merge($templates, $this->getAllTemplatesOfProject($project));
     }
     return $templates;
 }
 /**
  * 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)
 {
     if ($project->isError()) {
         throw new Project_AccessProjectNotFoundException();
     } elseif ($user->isSuperUser()) {
         return true;
     } elseif (!$project->isActive()) {
         throw new Project_AccessDeletedException($project);
     } elseif ($user->isMember($project->getID())) {
         return true;
     } elseif ($user->isRestricted() && !$this->canRestrictedUserAccess($user, $project)) {
         throw new Project_AccessRestrictedException();
     } elseif ($project->isPublic()) {
         return true;
     } elseif ($this->userHasBeenDelegatedAccess($user)) {
         return true;
     }
     throw new Project_AccessPrivateException();
 }