public function clonePermissions(GitRepository $old, GitRepository $new)
 {
     $pm = $this->getPermissionsManager();
     if ($this->inSameProject($old, $new)) {
         $pm->duplicateWithStatic($old->getId(), $new->getId(), Git::allPermissionTypes());
     } else {
         $pm->duplicateWithoutStatic($old->getId(), $new->getId(), Git::allPermissionTypes());
     }
 }
Пример #2
0
 public function testClonePermsCrossProjectFork()
 {
     $old_repo_id = 110;
     $old_project = new MockProject();
     $old_project->setReturnValue('getId', 1);
     $new_repo_id = 220;
     $new_project = new MockProject();
     $new_project->setReturnValue('getId', 2);
     $old = new MockGitRepository();
     $old->setReturnValue('getId', $old_repo_id);
     $old->setReturnValue('getProject', $old_project);
     $new = new MockGitRepository();
     $new->setReturnValue('getId', $new_repo_id);
     $new->setReturnValue('getProject', $new_project);
     $backend = $this->_GivenABackendGitolite();
     $permissionsManager = $backend->getPermissionsManager();
     $permissionsManager->expectOnce('duplicateWithoutStatic', array($old_repo_id, $new_repo_id, Git::allPermissionTypes()));
     $backend->clonePermissions($old, $new);
 }
Пример #3
0
 private function updateRepositoriesPermissions($old_ugroup_id, $new_ugroup_id)
 {
     $git_permission_type = $this->da->quoteSmartImplode(',', Git::allPermissionTypes());
     $sql = "UPDATE permissions\n                SET ugroup_id = {$new_ugroup_id}\n                  WHERE ugroup_id = {$old_ugroup_id}\n                    AND permission_type IN ({$git_permission_type})\n                ";
     return $this->update($sql);
 }