diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-06-26 10:57:06 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-06-26 10:57:06 +0000 |
commit | 4d6d1f0513b17617c48f25696f5eb173e430249e (patch) | |
tree | 16edb1f12bb40e77189d2c0c9b79919168dc3112 | |
parent | 955f0ea57f3ab3cc06124ecea795c1375b3eb92f (diff) | |
parent | d5a1910f0ce24cf88bc7f0279904a8d5088e2ffa (diff) | |
download | gitlab-ce-4d6d1f0513b17617c48f25696f5eb173e430249e.tar.gz |
Merge branch 'unify-some-models' into 'master'
CE: Move some EE only codes in models to their EE modules
See merge request gitlab-org/gitlab-ce!20160
-rw-r--r-- | app/models/namespace.rb | 4 | ||||
-rw-r--r-- | app/models/project_team.rb | 2 | ||||
-rw-r--r-- | spec/models/namespace_spec.rb | 13 |
3 files changed, 18 insertions, 1 deletions
diff --git a/app/models/namespace.rb b/app/models/namespace.rb index 52fe529c016..7034c633268 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -228,6 +228,10 @@ class Namespace < ActiveRecord::Base parent.present? end + def root_ancestor + ancestors.reorder(nil).find_by(parent_id: nil) + end + def subgroup? has_parent? end diff --git a/app/models/project_team.rb b/app/models/project_team.rb index 33280eda0b9..9a38806baab 100644 --- a/app/models/project_team.rb +++ b/app/models/project_team.rb @@ -24,7 +24,7 @@ class ProjectTeam end def add_role(user, role, current_user: nil) - send(:"add_#{role}", user, current_user: current_user) # rubocop:disable GitlabSecurity/PublicSend + public_send(:"add_#{role}", user, current_user: current_user) # rubocop:disable GitlabSecurity/PublicSend end def find_member(user_id) diff --git a/spec/models/namespace_spec.rb b/spec/models/namespace_spec.rb index 18b01c3e6b7..70f1a1c8b38 100644 --- a/spec/models/namespace_spec.rb +++ b/spec/models/namespace_spec.rb @@ -655,6 +655,19 @@ describe Namespace do end end + describe '#root_ancestor' do + it 'returns the top most ancestor', :nested_groups do + root_group = create(:group) + nested_group = create(:group, parent: root_group) + deep_nested_group = create(:group, parent: nested_group) + very_deep_nested_group = create(:group, parent: deep_nested_group) + + expect(nested_group.root_ancestor).to eq(root_group) + expect(deep_nested_group.root_ancestor).to eq(root_group) + expect(very_deep_nested_group.root_ancestor).to eq(root_group) + end + end + describe '#remove_exports' do let(:legacy_project) { create(:project, :with_export, :legacy_storage, namespace: namespace) } let(:hashed_project) { create(:project, :with_export, namespace: namespace) } |