Make namespace owner master of project upon creation
When an admin creates a project in the namespace of a user, that user automatically gains master access to that project.
This commit is contained in:
parent
025b04f3e7
commit
69f584edb4
3 changed files with 22 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Ensure namespace owner is Master of project upon creation
|
||||
merge_request: 10910
|
||||
author:
|
|
@ -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|
|
||||
|
|
Loading…
Reference in a new issue