class Locomotive::Steam::Middlewares::Auth
Process all the authentication actions:
-
sign up
-
sign in
-
new reset password
-
reset password
-
sign out
It is also in charge to load the current authenticated resource from the session and put it in the liquid context.
Public Instance Methods
_call()
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 20 def _call load_authenticated_entry auth_options = AuthOptions.new(site, params) return unless auth_options.valid? send(:"#{auth_options.action}", auth_options) end
Private Instance Methods
append_message(message)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 103 def append_message(message) log "[Auth] status message = #{message.inspect}" message ||= 'error' liquid_assigns["auth_#{message}"] = "auth_#{message}" end
forgot_password(options)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 72 def forgot_password(options) return if authenticated? status = services.auth.forgot_password(options, default_liquid_context) append_message(status) end
load_authenticated_entry()
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 93 def load_authenticated_entry entry_type = request.session[:authenticated_entry_type] entry_id = request.session[:authenticated_entry_id] if entry = services.auth.find_authenticated_resource(entry_type, entry_id) env['steam.authenticated_entry'] = entry liquid_assigns["current_#{entry_type.singularize}"] = entry end end
reset_password(options)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 80 def reset_password(options) return if authenticated? status, entry = services.auth.reset_password(options, request) if status == :password_reset store_authenticated(entry) redirect_to options.callback || mounted_on end append_message(status) end
sign_in(options)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 47 def sign_in(options) return if authenticated? status, entry = services.auth.sign_in(options, request) if status == :signed_in store_authenticated(entry) redirect_to options.callback || mounted_on end append_message(status) end
sign_out(options)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 60 def sign_out(options) return unless authenticated? services.auth.sign_out(load_authenticated_entry, request) store_authenticated(nil) redirect_to options.callback || path append_message(:signed_out) end
sign_up(options)
click to toggle source
# File lib/locomotive/steam/middlewares/auth.rb, line 32 def sign_up(options) return if authenticated? || !is_recaptcha_valid?(options.type, options.recaptcha_response) status, entry = services.auth.sign_up(options, default_liquid_context, request) if status == :entry_created store_authenticated(entry) redirect_to options.callback || mounted_on else liquid_assigns['auth_entry'] = entry end append_message(status) end