Sha256: 0b4e2833351142fc43f4881d3ba253978b9a11542d370d86b9cf5daa0fc5fa5e
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
module Shield module Helpers def ensure_authenticated(model) if authenticated(model) return true else session[:return_to] = request.fullpath redirect_to_login return false end end def authenticated(model) @_authenticated ||= {} @_authenticated[model] ||= session[model.to_s] && model[session[model.to_s]] end def redirect_to_login redirect "/login" end def redirect_to_stored(default = "/") redirect(session.delete(:return_to) || default) end def login(model, username, password) instance = model.authenticate(username, password) if instance session[model.to_s] = instance.id return true else return false end end def logout(model) session.delete(model.to_s) session.delete(:return_to) @_authenticated.delete(model) if defined?(@_authenticated) end def authenticate(user) session[user.class.to_s] = user.id end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
shield-0.0.4 | lib/shield/helpers.rb |
shield-0.0.3 | lib/shield/helpers.rb |