mirror of
https://github.com/discourse/discourse.git
synced 2025-03-24 12:05:47 +08: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)
|
def self.resolve(request = nil, current_user = nil)
|
||||||
return "custom" if ThemeModifierHelper.new(request: request).custom_homepage
|
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
|
current_user ? SiteSetting.homepage : SiteSetting.anonymous_homepage
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -14,6 +14,15 @@ RSpec.describe HomepageHelper do
|
|||||||
expect(HomepageHelper.resolve).to eq("custom")
|
expect(HomepageHelper.resolve).to eq("custom")
|
||||||
end
|
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
|
context "when first item in top menu is not valid for anons" do
|
||||||
it "distinguishes between auth homepage and anon homepage" do
|
it "distinguishes between auth homepage and anon homepage" do
|
||||||
SiteSetting.top_menu = "new|top|latest|unread"
|
SiteSetting.top_menu = "new|top|latest|unread"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user