class Challah::PasswordTechnique

Allows authentication by username and password.

Attributes

user_model[RW]

Public Class Methods

new(session) click to toggle source

grab the params we want from this request

# File lib/challah/techniques/password_technique.rb, line 8
def initialize(session)
  @username   = session.username? ? session.username : nil
  @password   = session.password? ? session.password : nil
end

Public Instance Methods

authenticate() click to toggle source

if we can successfully authenticate, return a User instance, otherwise nil

# File lib/challah/techniques/password_technique.rb, line 14
def authenticate
  if username? and password?
    user = user_model.find_for_session(username)

    if user
      if user.valid_session?
        if user.authenticate(@password)
          return user
        end
      end

      user.failed_authentication!
      user = nil
    end
  end

  nil
end
password?() click to toggle source
# File lib/challah/techniques/password_technique.rb, line 33
def password?
  !!@password
end
persist?() click to toggle source
# File lib/challah/techniques/password_technique.rb, line 37
def persist?
  true
end
username() click to toggle source
# File lib/challah/techniques/password_technique.rb, line 49
def username
  @username
end
username?() click to toggle source
# File lib/challah/techniques/password_technique.rb, line 45
def username?
  !!@username
end