Sha256: a1bec6e0d1a4a3644c1f30547613f311c75b4a09f8992f2e84e0853a00347c7a
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
# -*- coding: utf-8 -*- description 'Persistent login' class ::Olelo::Application TOKEN_NAME = 'olelo.token' TOKEN_LIFETIME = 24*60*60*365 hook :auto_login do if !User.current token = request.cookies[TOKEN_NAME] if token hash, user = token.split('-', 2) User.current = User.find(user) if sha256(user + Config['rack.session_secret']) == hash end end end after :action do |method, path| if path == '/login' if User.logged_in? && params[:persistent] token = "#{sha256(User.current.name + Config['rack.session_secret'])}-#{User.current.name}" response.set_cookie(TOKEN_NAME, value: token, expires: Time.now + TOKEN_LIFETIME) end elsif path == '/logout' response.delete_cookie(TOKEN_NAME) end end before(:login_buttons) { render_partial :persistent_login } end __END__ @@ persistent_login.slim &checkbox#persistent name="persistent" value="1" label for="persistent" = :persistent_login.t br @@ locale.yml cs: persistent_login: 'Trvalé přihlášení' de: persistent_login: 'Dauerhaft anmelden' en: persistent_login: 'Persistent login' fr: persistent_login: 'Connexion persistente'
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
olelo-0.9.11 | plugins/login/persistent.rb |
olelo-0.9.10 | plugins/login/persistent.rb |