Sha256: fe2aac04a45fcb8d3e3f69dbc819b2547b85e635c4dbe4d8e9da5fd936a2726b
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
require File.dirname(__FILE__) + '/support_lite' load File.dirname(__FILE__) + '/markup_plugin/output_helpers.rb' Dir[File.dirname(__FILE__) + '/warden_plugin/**/*.rb'].each {|file| load file } module SinatraMore module WardenPlugin def self.registered(app) raise "WardenPlugin::Error - Install with 'sudo gem install warden' or require 'warden' in your app." unless Warden::Manager app.use Warden::Manager do |manager| manager.default_strategies :password manager.failure_app = app end app.helpers SinatraMore::OutputHelpers app.helpers SinatraMore::WardenHelpers # TODO Improve serializing methods Warden::Manager.serialize_into_session{ |user| user.nil? ? nil : user.id } Warden::Manager.serialize_from_session{ |id| id.nil? ? nil : User.find(id) } Warden::Strategies.add(:password) do def valid? username || password end def authenticate! u = User.authenticate(username, password) u.nil? ? fail!("Could not log in") : success!(u) end def username params['username'] || params['nickname'] || params['login'] || params['email'] end def password params['password'] || params['pass'] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sinatra_more-0.2.4 | lib/sinatra_more/warden_plugin.rb |