This repository has been archived by the owner on Mar 26, 2024. It is now read-only.
/
application_controller.rb
73 lines (59 loc) · 2.02 KB
/
application_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.
class ApplicationController < ActionController::Base
include InheritedResources::DSL
include PaginateScopeHelper
helper :all # include all helpers, all the time
protect_from_forgery # See ActionController::RequestForgeryProtection for details
# Scrub sensitive parameters from your log
filter_parameter_logging :password
helper_method :current_user_session, :current_user
before_filter :set_timezone
private
def set_timezone
if SETTINGS.time_zone
time_zone_obj = ActiveSupport::TimeZone.new(SETTINGS.time_zone)
raise Exception.new("Invalid timezone #{SETTINGS.time_zone.inspect}") unless time_zone_obj
Time.zone = time_zone_obj
end
end
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.user
end
def require_user
unless current_user
store_location
flash[:error] = "You must be logged in to access this page"
redirect_to new_user_session_url
return false
end
end
def require_no_user
if current_user
store_location
flash[:error] = "You must be logged out to access this page"
redirect_to account_url
return false
end
end
def store_location
session[:return_to] = request.request_uri
end
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
def handle_parameters_for(param)
if params[param] && params[param][:parameters]
parameter_pairs = params[param][:parameters][:key].zip(params[param][:parameters][:value]).flatten
params[param][:parameters] = Hash[*parameter_pairs].reject{|k,v| k.blank?}
else
params[param][:parameters] = {}
end
end
end