101 lines
2.2 KiB
Ruby
101 lines
2.2 KiB
Ruby
module SessionsHelper
|
|
|
|
def sign_in(user)
|
|
set_remember_token(user)
|
|
self.current_user = user
|
|
end
|
|
|
|
def set_remember_token(user)
|
|
if @session_only_cookie
|
|
cookies.delete(:remember_token)
|
|
cookies[:remember_token] = {
|
|
value: user.remember_token,
|
|
domain: Rails.application.config.session_cookie_domain
|
|
}
|
|
else
|
|
cookies[:remember_token] = {
|
|
value: user.remember_token,
|
|
expires: 20.years.from_now.utc,
|
|
domain: Rails.application.config.session_cookie_domain
|
|
}
|
|
end
|
|
end
|
|
|
|
|
|
def signed_in?
|
|
!current_user.nil?
|
|
end
|
|
|
|
def current_user=(user)
|
|
@current_user = user
|
|
end
|
|
|
|
def current_user
|
|
@current_user ||= User.find_by_remember_token(cookies[:remember_token])
|
|
end
|
|
|
|
def current_user?(user)
|
|
user == current_user
|
|
end
|
|
|
|
def signed_in_user
|
|
unless signed_in?
|
|
store_location
|
|
redirect_to signin_url, notice: "Please sign in."
|
|
end
|
|
end
|
|
|
|
|
|
def api_signed_in_user
|
|
unless signed_in?
|
|
render :json => { :message => "not logged in"}, :status => 403
|
|
end
|
|
end
|
|
|
|
def sign_out
|
|
current_user = nil
|
|
cookies.delete(:remember_token, domain: Rails.application.config.session_cookie_domain)
|
|
end
|
|
|
|
def admin_user
|
|
redirect_to(root_url) unless current_user.admin?
|
|
end
|
|
|
|
def redirect_back_or(default)
|
|
redirect_to(session[:return_to] || default)
|
|
session.delete(:return_to)
|
|
end
|
|
|
|
def store_location
|
|
session[:return_to] = request.url
|
|
end
|
|
|
|
def jkclient_agent?
|
|
request.env['HTTP_USER_AGENT'] =~ /JamKazam/
|
|
end
|
|
|
|
# used to help GA tracking. should result in one of Visitor, Registered User, or Paying Subscriber
|
|
def ga_user_level
|
|
if current_user.nil?
|
|
'Visitor'
|
|
else
|
|
'Registered User' # TODO: when paying subscriber exists, add to it
|
|
end
|
|
end
|
|
|
|
# used to help GA tracking. should result in either Fan or Musician
|
|
def ga_user_type
|
|
if current_user.nil?
|
|
'Fan'
|
|
else
|
|
current_user.musician? ? 'Musician' : 'Fan'
|
|
end
|
|
end
|
|
|
|
def metronome_tempos
|
|
[
|
|
40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 63, 66, 69, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 126, 132, 138, 144, 152, 160, 168, 176, 184, 192, 200, 208
|
|
]
|
|
end
|
|
end
|