diff --git a/app/controllers/admin/plugins_controller.rb b/app/controllers/admin/plugins_controller.rb index 516c1e05607..3221d104bba 100644 --- a/app/controllers/admin/plugins_controller.rb +++ b/app/controllers/admin/plugins_controller.rb @@ -1,7 +1,7 @@ class Admin::PluginsController < Admin::AdminController def index - render_serialized(Discourse.plugins, AdminPluginSerializer, root: 'plugins') + render_serialized(Discourse.display_plugins, AdminPluginSerializer, root: 'plugins') end end diff --git a/lib/discourse.rb b/lib/discourse.rb index 0673e1f119f..52a166e63fc 100644 --- a/lib/discourse.rb +++ b/lib/discourse.rb @@ -164,6 +164,14 @@ module Discourse @plugins ||= [] end + def self.hidden_plugins + @hidden_plugins ||= [] + end + + def self.display_plugins + self.plugins - self.hidden_plugins + end + def self.plugin_themes @plugin_themes ||= plugins.map(&:themes).flatten end diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb index 3a12e02df4f..81b7d7e2434 100644 --- a/lib/plugin/instance.rb +++ b/lib/plugin/instance.rb @@ -493,6 +493,10 @@ JS PluginGem.load(path, name, version, opts) end + def hide_plugin + Discourse.hidden_plugins << self + end + def enabled_site_setting_filter(filter = nil) if filter @enabled_setting_filter = filter