diff options
author | Rémy Coutable <remy@rymai.me> | 2017-04-27 13:13:09 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-04-27 13:13:09 +0000 |
commit | 39ff809980efa3f4b1ddbd66f2ae2c843a6f0e9e (patch) | |
tree | 8f7aa6b961fbea1340a5fe2f14277d7ac3a05cd8 | |
parent | 19a3b49f47ef68eec12663945fa9e2163179853d (diff) | |
parent | 69f584edb4738d4de82f0301bb2ac8f6b3998814 (diff) | |
download | gitlab-ce-39ff809980efa3f4b1ddbd66f2ae2c843a6f0e9e.tar.gz |
Merge branch 'tc-make-user-master-project-by-admin' into 'master'
Make namespace owner master of project upon creation
Closes #29446
See merge request !10910
-rw-r--r-- | app/services/projects/create_service.rb | 3 | ||||
-rw-r--r-- | changelogs/unreleased/tc-make-user-master-project-by-admin.yml | 4 | ||||
-rw-r--r-- | spec/services/projects/create_service_spec.rb | 16 |
3 files changed, 22 insertions, 1 deletions
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index 7828c5806b0..535d93385e6 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -97,7 +97,8 @@ module Projects system_hook_service.execute_hooks_for(@project, :create) unless @project.group || @project.gitlab_project_import? - @project.team << [current_user, :master, current_user] + owners = [current_user, @project.namespace.owner].compact.uniq + @project.add_master(owners, current_user: current_user) end @project.group&.refresh_members_authorized_projects diff --git a/changelogs/unreleased/tc-make-user-master-project-by-admin.yml b/changelogs/unreleased/tc-make-user-master-project-by-admin.yml new file mode 100644 index 00000000000..459d6178bdd --- /dev/null +++ b/changelogs/unreleased/tc-make-user-master-project-by-admin.yml @@ -0,0 +1,4 @@ +--- +title: Ensure namespace owner is Master of project upon creation +merge_request: 10910 +author: diff --git a/spec/services/projects/create_service_spec.rb b/spec/services/projects/create_service_spec.rb index 7a07ea618c0..033e6ecd18c 100644 --- a/spec/services/projects/create_service_spec.rb +++ b/spec/services/projects/create_service_spec.rb @@ -27,6 +27,22 @@ describe Projects::CreateService, '#execute', services: true do end end + context "admin creates project with other user's namespace_id" do + it 'sets the correct permissions' do + admin = create(:admin) + opts = { + name: 'GitLab', + namespace_id: user.namespace.id + } + project = create_project(admin, opts) + + expect(project).to be_persisted + expect(project.owner).to eq(user) + expect(project.team.masters).to include(user, admin) + expect(project.namespace).to eq(user.namespace) + end + end + context 'group namespace' do let(:group) do create(:group).tap do |group| |