diff options
author | Bob Van Landuyt <bob@vanlanduyt.co> | 2017-11-09 15:59:11 +0100 |
---|---|---|
committer | Bob Van Landuyt <bob@vanlanduyt.co> | 2017-11-14 16:57:41 +0100 |
commit | 022d8420ec0713909ff379e1e8d36c4e46bde3a3 (patch) | |
tree | b2cdf284c023430410239a2d41806e010615c0fa /app/models/user.rb | |
parent | fb7abd87daa8930682b05870361fe9dd112f050f (diff) | |
download | gitlab-ce-022d8420ec0713909ff379e1e8d36c4e46bde3a3.tar.gz |
Include child projects a user can manage in namespace dropdowns
These dropdown options are used for creating and transfering projects.
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index f436efd604f..ea10e2854d6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -921,7 +921,16 @@ class User < ActiveRecord::Base end def manageable_namespaces - @manageable_namespaces ||= [namespace] + owned_groups + masters_groups + @manageable_namespaces ||= [namespace] + manageable_groups + end + + def manageable_groups + union = Gitlab::SQL::Union.new([owned_groups.select(:id), + masters_groups.select(:id)]) + arel_union = Arel::Nodes::SqlLiteral.new(union.to_sql) + owned_and_master_groups = Group.where(Group.arel_table[:id].in(arel_union)) + + Gitlab::GroupHierarchy.new(owned_and_master_groups).base_and_descendants end def namespaces |