Sha256: ae721d0927352d4eae87bf242919836d97ff91b7aba9dc1ad230ddc02f19a5b4

Contents?: true

Size: 902 Bytes

Versions: 15

Compression:

Stored size: 902 Bytes

Contents

module Challah
  class PasswordTechnique    
    # grab the params we want from this request
    def initialize(session)
      @username = session.username? ? session.username : nil
      @password = session.password? ? session.password : nil
    end
    
    # if we can successfully authenticate, return a User instance, otherwise nil
    def authenticate
      if username? and password?
        user = ::User.find_for_session(username)
        
        if user
          if user.active?
            if user.authenticate(@password)
              return user
            end
          end
          
          user.failed_authentication!
          user = nil
        end
      end
      
      nil
    end
    
    def password?
      !!@password
    end
    
    def persist?
      true
    end
    
    def username?
      !!@username
    end
    
    def username
      @username
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
challah-0.5.4 lib/challah/techniques/password_technique.rb
challah-0.5.3 lib/challah/techniques/password_technique.rb
challah-0.5.2 lib/challah/techniques/password_technique.rb
challah-0.5.1 lib/challah/techniques/password_technique.rb
challah-0.5.0 lib/challah/techniques/password_technique.rb
challah-0.4.1 lib/challah/techniques/password_technique.rb
challah-0.4.0 lib/challah/techniques/password_technique.rb
challah-0.3.5 lib/challah/techniques/password_technique.rb
challah-0.3.4 lib/challah/techniques/password_technique.rb
challah-0.3.3 lib/challah/techniques/password_technique.rb
challah-0.3.2 lib/challah/techniques/password_technique.rb
challah-0.3.1 lib/challah/techniques/password_technique.rb
challah-0.3.0 lib/challah/techniques/password_technique.rb
challah-0.2.1 lib/challah/techniques/password_technique.rb
challah-0.2.0 lib/challah/techniques/password_technique.rb