discourse/app/controllers/static_controller.rb

27 lines
631 B
Ruby

class StaticController < ApplicationController
skip_before_filter :check_xhr
def show
page = params[:id]
# Don't allow paths like ".." or "/" or anything hacky like that
page.gsub!(/[^a-z0-9\_\-]/, '')
file = "static/#{page}.#{I18n.locale}"
# if we don't have a localized version, try the English one
if not lookup_context.find_all("#{file}.html").any?
file = "static/#{page}.en"
end
if lookup_context.find_all("#{file}.html").any?
render file, layout: !request.xhr?, formats: [:html]
return
end
render file: 'public/404', layout: false, status: 404
end
end