2009-12-07 17:26:00 -05:00
|
|
|
require 'devise/strategies/base'
|
|
|
|
|
2009-10-18 09:15:23 -04:00
|
|
|
module Devise
|
|
|
|
module Strategies
|
|
|
|
# Default strategy for signing in a user, based on his email and password.
|
2009-10-18 09:20:46 -04:00
|
|
|
# Redirects to sign_in page if it's not authenticated
|
2010-01-14 09:47:14 -05:00
|
|
|
class Authenticatable < Base
|
2009-11-21 21:49:23 -05:00
|
|
|
def valid?
|
2010-03-28 08:51:03 -04:00
|
|
|
valid_controller? && valid_params?
|
2009-11-21 21:49:23 -05:00
|
|
|
end
|
|
|
|
|
2009-10-18 09:15:23 -04:00
|
|
|
# Authenticate a user based on email and password params, returning to warden
|
|
|
|
# success and the authenticated user if everything is okay. Otherwise redirect
|
|
|
|
# to sign in page.
|
|
|
|
def authenticate!
|
2009-11-21 21:49:23 -05:00
|
|
|
if resource = mapping.to.authenticate(params[scope])
|
|
|
|
success!(resource)
|
2009-10-18 09:15:23 -04:00
|
|
|
else
|
2010-03-28 06:52:05 -04:00
|
|
|
fail(:invalid)
|
2009-10-18 09:15:23 -04:00
|
|
|
end
|
|
|
|
end
|
2010-02-08 08:03:15 -05:00
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
|
|
def valid_controller?
|
2010-03-03 04:54:39 -05:00
|
|
|
mapping.controllers[:sessions] == params[:controller]
|
2010-02-08 08:03:15 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
def valid_params?
|
|
|
|
params[scope] && params[scope][:password].present?
|
|
|
|
end
|
2009-10-18 09:15:23 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2009-10-22 15:24:14 -04:00
|
|
|
|
2009-10-30 06:29:10 -04:00
|
|
|
Warden::Strategies.add(:authenticatable, Devise::Strategies::Authenticatable)
|