summaryrefslogtreecommitdiff
path: root/spec/services/projects
diff options
context:
space:
mode:
authormanojmj <mmj@gitlab.com>2019-09-23 13:12:26 +0530
committermanojmj <mmj@gitlab.com>2019-10-09 13:03:32 +0530
commit39c99361b655998aaca2114da3e9664c2da27f85 (patch)
treefaaccfaf7dbd8c8625c981589e26d5eb2cc9026d /spec/services/projects
parent7e2b1008547d8ced97a30e96ac6fbc2b7ad32a7f (diff)
downloadgitlab-ce-39c99361b655998aaca2114da3e9664c2da27f85.tar.gz
Require maintainer permission to transfer projects
Diffstat (limited to 'spec/services/projects')
-rw-r--r--spec/services/projects/transfer_service_spec.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/services/projects/transfer_service_spec.rb b/spec/services/projects/transfer_service_spec.rb
index 6b906f9372c..13a490557dd 100644
--- a/spec/services/projects/transfer_service_spec.rb
+++ b/spec/services/projects/transfer_service_spec.rb
@@ -222,6 +222,24 @@ describe Projects::TransferService do
it { expect(project.errors[:new_namespace]).to include('Project with same name or path in target namespace already exists') }
end
+ context 'target namespace allows developers to create projects' do
+ let(:group) { create(:group, project_creation_level: ::Gitlab::Access::DEVELOPER_MAINTAINER_PROJECT_ACCESS) }
+
+ context 'the user is a member of the target namespace with developer permissions' do
+ subject(:transfer_project_result) { transfer_project(project, user, group) }
+
+ before do
+ group.add_developer(user)
+ end
+
+ it 'does not allow project transfer to the target namespace' do
+ expect(transfer_project_result).to eq false
+ expect(project.namespace).to eq(user.namespace)
+ expect(project.errors[:new_namespace]).to include('Transfer failed, please contact an admin.')
+ end
+ end
+ end
+
def transfer_project(project, user, new_namespace)
service = Projects::TransferService.new(project, user)