mirror of
https://github.com/discourse/discourse.git
synced 2025-02-16 18:24:52 -06:00
DEV: implements register_modifier(:custom_homepage_enabled) (#28657)
This commit will allow plugin developers to enable/disable the custom homepage. Usage: ```ruby register_modifier(:custom_homepage_enabled) do |enabled, args| true end ``` Args might contain request and/or current_user.
This commit is contained in:
parent
361e954c55
commit
d81fc1448b
@ -4,6 +4,16 @@ class HomepageHelper
|
||||
def self.resolve(request = nil, current_user = nil)
|
||||
return "custom" if ThemeModifierHelper.new(request: request).custom_homepage
|
||||
|
||||
enabled = false
|
||||
enabled =
|
||||
DiscoursePluginRegistry.apply_modifier(
|
||||
:custom_homepage_enabled,
|
||||
enabled,
|
||||
request: request,
|
||||
current_user: current_user,
|
||||
)
|
||||
return "custom" if enabled
|
||||
|
||||
current_user ? SiteSetting.homepage : SiteSetting.anonymous_homepage
|
||||
end
|
||||
end
|
||||
|
@ -14,6 +14,15 @@ RSpec.describe HomepageHelper do
|
||||
expect(HomepageHelper.resolve).to eq("custom")
|
||||
end
|
||||
|
||||
it "returns custom when a plugin modifies the custom_homepage_enabled to true" do
|
||||
DiscoursePluginRegistry
|
||||
.expects(:apply_modifier)
|
||||
.with(:custom_homepage_enabled, false, request: nil, current_user: nil)
|
||||
.returns(true)
|
||||
|
||||
expect(HomepageHelper.resolve).to eq("custom")
|
||||
end
|
||||
|
||||
context "when first item in top menu is not valid for anons" do
|
||||
it "distinguishes between auth homepage and anon homepage" do
|
||||
SiteSetting.top_menu = "new|top|latest|unread"
|
||||
|
Loading…
Reference in New Issue
Block a user