Sha256: 563bf2cb7acb152aa348dcd1c3971c962890ba5534768ca19a61293eb06c8e46

Contents?: true

Size: 732 Bytes

Versions: 1

Compression:

Stored size: 732 Bytes

Contents

Dir.glob(File.dirname(__FILE__) + '/warden_plugin/**/*.rb').each  { |f| require f }

module SinatraMore
  module WardenPlugin
    def self.registered(app)
      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?
          params['username'] || params['password']
        end

        def authenticate!
          u = User.authenticate(params['username'], params['password'])
          u.nil? ? fail!("Could not log in") : success!(u)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sinatra_more-0.0.5 lib/sinatra_more/warden_plugin.rb