DEV: Extract theme resolution to a helper (#27426)

This ensures that the theme id is resolved as early as possible in the
request cycle. This is necessary for the custom homepage to skip
preloading the wrong data.
This commit is contained in:
Penar Musaraj
2024-06-20 11:33:46 -04:00
committed by GitHub
parent d29160131d
commit 33de5abb6e
7 changed files with 51 additions and 35 deletions

View File

@ -9,7 +9,11 @@ class HomePageConstraint
return @filter == "finish_installation" if SiteSetting.has_login_hint?
current_user = CurrentUser.lookup_from_env(request.env)
homepage = current_user&.user_option&.homepage || HomepageHelper.resolve(request, current_user)
# ensures we resolve the theme id as early as possible
theme_id = ThemeResolver.resolve_theme_id(request, Guardian.new(current_user), current_user)
homepage = current_user&.user_option&.homepage || HomepageHelper.resolve(theme_id, current_user)
homepage == @filter
rescue Discourse::InvalidAccess, Discourse::ReadOnly
false