summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWinnie Hellmann <winnie@gitlab.com>2019-08-27 08:59:42 +0200
committerWinnie Hellmann <winnie@gitlab.com>2019-08-27 11:05:56 +0200
commite3ee58e2557698c9e589c010d91cc0f874d57035 (patch)
treef1091182c04430b820a082ed7f54b833f10dec07
parent16c1cd66a5679a91aee14161490779ce92934c61 (diff)
downloadgitlab-ce-winh-prepend-entity.tar.gz
Prepend entity descendant where necessarywinh-prepend-entity
(cherry picked from commit b87526e8c47b7a3938ab12842bbac99a17fcb750)
-rw-r--r--config/initializers/0_inject_enterprise_edition_module.rb11
-rw-r--r--lib/api/entities.rb12
2 files changed, 15 insertions, 8 deletions
diff --git a/config/initializers/0_inject_enterprise_edition_module.rb b/config/initializers/0_inject_enterprise_edition_module.rb
index 39595e23abe..b3ebb44ef25 100644
--- a/config/initializers/0_inject_enterprise_edition_module.rb
+++ b/config/initializers/0_inject_enterprise_edition_module.rb
@@ -3,8 +3,15 @@
require 'active_support/inflector'
module InjectEnterpriseEditionModule
- def prepend_if_ee(constant)
- prepend(constant.constantize) if Gitlab.ee?
+ def prepend_if_ee(constant, with_descendants: false)
+ return unless Gitlab.ee?
+
+ ee_module = constant.constantize
+ prepend(ee_module)
+
+ if with_descendants
+ descendants.each { |descendant| descendant.prepend(ee_module) }
+ end
end
def extend_if_ee(constant)
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index b4990df1eb6..6f86adf6a5c 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -1712,16 +1712,16 @@ end
API::Entities.prepend_if_ee('EE::API::Entities::Entities')
::API::Entities::ApplicationSetting.prepend_if_ee('EE::API::Entities::ApplicationSetting')
::API::Entities::Board.prepend_if_ee('EE::API::Entities::Board')
-::API::Entities::Group.prepend_if_ee('EE::API::Entities::Group')
+::API::Entities::Group.prepend_if_ee('EE::API::Entities::Group', with_descendants: true)
::API::Entities::GroupDetail.prepend_if_ee('EE::API::Entities::GroupDetail')
-::API::Entities::IssueBasic.prepend_if_ee('EE::API::Entities::IssueBasic')
+::API::Entities::IssueBasic.prepend_if_ee('EE::API::Entities::IssueBasic', with_descendants: true)
::API::Entities::List.prepend_if_ee('EE::API::Entities::List')
-::API::Entities::MergeRequestBasic.prepend_if_ee('EE::API::Entities::MergeRequestBasic')
+::API::Entities::MergeRequestBasic.prepend_if_ee('EE::API::Entities::MergeRequestBasic', with_descendants: true)
::API::Entities::Namespace.prepend_if_ee('EE::API::Entities::Namespace')
-::API::Entities::Project.prepend_if_ee('EE::API::Entities::Project')
+::API::Entities::Project.prepend_if_ee('EE::API::Entities::Project', with_descendants: true)
::API::Entities::ProtectedRefAccess.prepend_if_ee('EE::API::Entities::ProtectedRefAccess')
-::API::Entities::UserPublic.prepend_if_ee('EE::API::Entities::UserPublic')
+::API::Entities::UserPublic.prepend_if_ee('EE::API::Entities::UserPublic', with_descendants: true)
::API::Entities::Todo.prepend_if_ee('EE::API::Entities::Todo')
::API::Entities::ProtectedBranch.prepend_if_ee('EE::API::Entities::ProtectedBranch')
::API::Entities::Identity.prepend_if_ee('EE::API::Entities::Identity')
-::API::Entities::UserWithAdmin.prepend_if_ee('EE::API::Entities::UserWithAdmin')
+::API::Entities::UserWithAdmin.prepend_if_ee('EE::API::Entities::UserWithAdmin', with_descendants: true)