From 30445bb10809969ec5a006e7d2ca6f581168cf72 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 29 Apr 2014 16:42:01 -0400 Subject: re-jigger the sessions/login helpers. --- app/helpers/sessions_helper.rb | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'app/helpers/sessions_helper.rb') diff --git a/app/helpers/sessions_helper.rb b/app/helpers/sessions_helper.rb index 499e988..7599a0a 100644 --- a/app/helpers/sessions_helper.rb +++ b/app/helpers/sessions_helper.rb @@ -2,25 +2,24 @@ require 'user' module SessionsHelper def sign_in(user) - @session = Session.new(user: user) - raw_token = @session.create_token - @session.save # FIXME: error handling + session = Session.new(user: user) + raw_token = session.create_token + session.save! - @token = Session.hash_token(raw_token) + token = Session.hash_token(raw_token) cookies.permanent[:remember_token] = { value: raw_token, expires: 20.minutes.from_now.utc } + end - #set the current user to be the given user - @current_user = user + def current_session + Session.find_by(token: Session.hash_token(cookies[:remember_token])) end - # sets the @current_user instance virable to the user corresponding + # sets the @current_user instance varable to the user corresponding # to the remember token, but only if @current_user is undefined # since the remember token is hashed, we need to hash the cookie # to find match the remember token def current_user - @token ||= Session.hash_token(cookies[:remember_token]) - @session ||= Session.find_by(token: @token) - @current_user ||= (@session.nil? ? User::NilUser.new : @session.user) + return (current_session.nil? ? User::NilUser.new : current_session.user) end # checks if someone is currently signed in @@ -30,9 +29,8 @@ module SessionsHelper def sign_out if signed_in? - @session.destroy + current_session.destroy end - @current_user = User::NilUser.new cookies.delete(:remember_token) end -- cgit v1.2.3