discourse/app/controllers/site_controller.rb
Ted Johansson d63f1826fe
FEATURE: User fields required for existing users - Part 2 (#27172)
We want to allow admins to make new required fields apply to existing users. In order for this to work we need to have a way to make those users fill up the fields on their next page load. This is very similar to how adding a 2FA requirement post-fact works. Users will be redirected to a page where they can fill up the remaining required fields, and until they do that they won't be able to do anything else.
2024-06-25 19:32:18 +08:00

58 lines
1.7 KiB
Ruby

# frozen_string_literal: true
class SiteController < ApplicationController
layout false
skip_before_action :preload_json, :check_xhr
skip_before_action :redirect_to_login_if_required,
:redirect_to_profile_if_required,
only: %w[basic_info statistics]
def site
render json: Site.json_for(guardian)
end
def settings
render json: SiteSetting.client_settings_json
end
def custom_html
render json: custom_html_json
end
def banner
render json: banner_json
end
def emoji
render json: custom_emoji
end
def basic_info
results = {
logo_url: UrlHelper.absolute(SiteSetting.site_logo_url),
logo_small_url: UrlHelper.absolute(SiteSetting.site_logo_small_url),
apple_touch_icon_url: UrlHelper.absolute(SiteSetting.site_apple_touch_icon_url),
favicon_url: UrlHelper.absolute(SiteSetting.site_favicon_url),
title: SiteSetting.title,
description: SiteSetting.site_description,
header_primary_color: ColorScheme.hex_for_name("header_primary") || "333333",
header_background_color: ColorScheme.hex_for_name("header_background") || "ffffff",
login_required: SiteSetting.login_required,
locale: SiteSetting.default_locale,
include_in_discourse_discover: SiteSetting.include_in_discourse_discover,
}
if mobile_logo_url = SiteSetting.site_mobile_logo_url.presence
results[:mobile_logo_url] = UrlHelper.absolute(mobile_logo_url)
end
# this info is always available cause it can be scraped from a 404 page
render json: results
end
def statistics
return redirect_to path("/") unless SiteSetting.share_anonymized_statistics?
render json: About.fetch_cached_stats
end
end