コード例 #1
0
ファイル: GitActions.class.php プロジェクト: nickl-/tuleap
 /**
  * Internal method called by SystemEvent_PROJECT_IS_PRIVATE
  * @param <type> $projectId
  * @param <type> $isPublic
  * @return <type>
  */
 public static function changeProjectRepositoriesAccess($projectId, $isPrivate)
 {
     //if the project is private, then no changes may be applied to repositories,
     //in other words only if project is set to private, its repositories have to be set to private
     if (empty($isPrivate)) {
         return;
     }
     $dao = new GitDao();
     $repositories = $dao->getProjectRepositoryList($projectId);
     if (empty($repositories)) {
         return false;
     }
     foreach ($repositories as $repoId => $repoData) {
         $r = new GitRepository();
         $r->setId($repoId);
         if (!$r->exists()) {
             continue;
         }
         $newAccess = !empty($isPrivate) ? GitRepository::PRIVATE_ACCESS : GitRepository::PUBLIC_ACCESS;
         if ($r->getAccess() == $newAccess) {
             continue;
         }
         $r->setAccess($newAccess);
         $r->changeAccess();
         unset($r);
     }
 }
コード例 #2
0
 protected function definePermittedActions($repoId, $user)
 {
     if ($this->user->isMember($this->groupId, 'A') === true) {
         $this->permittedActions = array('index', 'view', 'edit', 'clone', 'add', 'del', 'create', 'confirm_deletion', 'save', 'repo_management', 'mail_prefix', 'add_mail', 'remove_mail', 'fork', 'set_private', 'confirm_private', 'fork_repositories', 'do_fork_repositories', 'view_last_git_pushes');
     } else {
         $this->addPermittedAction('index');
         $this->addPermittedAction('view_last_git_pushes');
         if ($this->user->isMember($this->groupId)) {
             $this->addPermittedAction('fork_repositories');
             $this->addPermittedAction('do_fork_repositories');
         }
         if ($repoId !== 0) {
             $repo = new GitRepository();
             $repo->setId($repoId);
             if ($repo->exists() && $repo->userCanRead($user)) {
                 $this->addPermittedAction('view');
                 $this->addPermittedAction('edit');
                 $this->addPermittedAction('clone');
                 if ($repo->belongsTo($user)) {
                     $this->addPermittedAction('repo_management');
                     $this->addPermittedAction('mail_prefix');
                     $this->addPermittedAction('add_mail');
                     $this->addPermittedAction('remove_mail');
                     $this->addPermittedAction('del');
                     $this->addPermittedAction('confirm_deletion');
                     $this->addPermittedAction('save');
                 }
             }
         }
     }
 }