diff options
author | Dylan Griffith <dyl.griffith@gmail.com> | 2018-03-27 16:31:43 +1100 |
---|---|---|
committer | Dylan Griffith <dyl.griffith@gmail.com> | 2018-03-27 16:31:47 +1100 |
commit | 78eb7a626368214be62ee28a496d2c00068d161d (patch) | |
tree | 93282a9bd0557c93b69f68e10c1d1e0d6051d98d | |
parent | 7c02d0cff3d79d9159b2966ce4807b71c4eff358 (diff) | |
download | gitlab-ce-41981-allow-group-owner-to-enable-runners-from-subgroups.tar.gz |
WIP: Allow group owner to enable runners from subgroups (#41981)41981-allow-group-owner-to-enable-runners-from-subgroups
-rw-r--r-- | app/models/user.rb | 4 | ||||
-rw-r--r-- | spec/models/user_spec.rb | 15 |
2 files changed, 17 insertions, 2 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index fa54581d220..6afb47f136a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1205,10 +1205,10 @@ class User < ActiveRecord::Base def ci_projects_union scope = { access_level: [Gitlab::Access::MASTER, Gitlab::Access::OWNER] } - groups = groups_projects.where(members: scope) + group_projects = Project.where(namespace: membership_groups) other = projects.where(members: scope) - Gitlab::SQL::Union.new([personal_projects.select(:id), groups.select(:id), + Gitlab::SQL::Union.new([personal_projects.select(:id), group_projects.select(:id), other.select(:id)]) end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index c61674fff13..d0039185f34 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1867,6 +1867,21 @@ describe User do it_behaves_like :member end + + context 'with subgroup with different owner for project runner' do + let(:group) { create(:group) } + let(:another_user) { create(:user) } + let(:subgroup) { create(:group, parent: group) } + let(:project) { create(:project, group: subgroup) } + + def add_user(access) + group.add_user(user, access) + group.add_user(another_user, :owner) + subgroup.add_user(another_user, :owner) + end + + it_behaves_like :member + end end describe '#projects_with_reporter_access_limited_to' do |