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