Module: SessionsHelper

Defined in:
app/helpers/sessions_helper.rb

Instance Method Summary collapse

Instance Method Details

#authorize_level(level) ⇒ Object



66
67
68
69
70
71
# File 'app/helpers/sessions_helper.rb', line 66

def authorize_level(level)
  unless authorize_level?(level)
    store_location
    redirect_to , error: t("snapuser.errors.unauthorized")
  end
end

#authorize_level?(level) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
# File 'app/helpers/sessions_helper.rb', line 62

def authorize_level?(level)
  current_user && current_user.level <= level
end

#current_userObject

Provid the user currently signed in.

  • Returns :

- the user currently signed in



22
23
24
# File 'app/helpers/sessions_helper.rb', line 22

def current_user
	@current_user ||= User.find_by_remember_token(cookies[:remember_token])
end

#current_user=(user) ⇒ Object



14
15
16
# File 'app/helpers/sessions_helper.rb', line 14

def current_user=(user)
	@current_user = user
end

#redirect_back_or(default, message = nil) ⇒ Object

Redirect the user to the stored url or the default one provided

  • Args :

    • default path to redirect to

  • Returns :



57
58
59
60
# File 'app/helpers/sessions_helper.rb', line 57

def redirect_back_or(default, message = nil)
  redirect_to(cookies[:return_to] || default, message)
  session.delete(:return_to)
end

#require_loginObject



73
74
75
# File 'app/helpers/sessions_helper.rb', line 73

def 
  redirect_to , error: t("snapuser.errors.unconnected") unless signed_in?
end

#sign_in(user, permanent: false) ⇒ Object

Sign in a user with a cookie (remove on browser close)

  • Args :

- a user to sign in

  • Returns :



9
10
11
12
# File 'app/helpers/sessions_helper.rb', line 9

def (user, permanent: false)
  cookies[:remember_token] = { value: user.remember_token, expires: (Time.now + 2592000 if permanent) }
  self.current_user = user
end

#sign_outObject

Sign out a user by removing the cookie.



36
37
38
39
# File 'app/helpers/sessions_helper.rb', line 36

def sign_out
	self.current_user = nil
	cookies.delete(:remember_token)
end

#signed_in?Boolean

Check if there is a user signed in.

  • Returns :

- true or false

Returns:

  • (Boolean)


31
32
33
# File 'app/helpers/sessions_helper.rb', line 31

def signed_in?
	!current_user.nil?
end

#store_locationObject

  • Args :

  • Returns :



47
48
49
# File 'app/helpers/sessions_helper.rb', line 47

def store_location
  cookies[:return_to] = { value: request.fullpath, expires: 1.minute.from_now }
end