discourse/app/controllers/static_controller.rb
Chris Hunt 978785720a Redirect to root after login if no path provided
If we do not do this, then people that login from /login will just be
redirected back to the login page. We'd rather have them see the root
path.
2013-06-04 16:10:10 -07:00

42 lines
1 KiB
Ruby

class StaticController < ApplicationController
skip_before_filter :check_xhr, :redirect_to_login_if_required
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
raise Discourse::NotFound
end
# This method just redirects to a given url.
# It's used when an ajax login was successful but we want the browser to see
# a post of a login form so that it offers to remember your password.
def enter
params.delete(:username)
params.delete(:password)
redirect_to(
if params[:redirect].blank? || params[:redirect].match(login_path)
root_path
else
params[:redirect]
end
)
end
end