Module: Shield::Helpers

Defined in:
lib/shield.rb

Instance Method Summary collapse

Instance Method Details

#authenticate(user) ⇒ Object



48
49
50
51
# File 'lib/shield.rb', line 48

def authenticate(user)
  session.clear
  session[user.class.to_s] = user.id
end

#authenticated(model) ⇒ Object



43
44
45
46
# File 'lib/shield.rb', line 43

def authenticated(model)
  @_shield ||= {}
  @_shield[model] ||= session[model.to_s] && model[session[model.to_s]]
end

#login(model, username, password) ⇒ Object



53
54
55
56
# File 'lib/shield.rb', line 53

def (model, username, password)
  user = model.authenticate(username, password)
  authenticate(user) if user
end

#logout(model) ⇒ Object



62
63
64
65
66
67
# File 'lib/shield.rb', line 62

def logout(model)
  session.delete(model.to_s)
  session.delete(:remember_for)

  @_shield.delete(model) if defined?(@_shield)
end

#persist_session!Object



37
38
39
40
41
# File 'lib/shield.rb', line 37

def persist_session!
  if session[:remember_for]
    env["rack.session.options"][:expire_after] = session[:remember_for]
  end
end

#remember(expire = 1209600) ⇒ Object



58
59
60
# File 'lib/shield.rb', line 58

def remember(expire = 1209600)
  session[:remember_for] = expire
end