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()); } }
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); }
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); }