Module: Authlogic::ActsAsAuthentic::Password::Methods::InstanceMethods

Defined in:
lib/authlogic/acts_as_authentic/password.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#passwordObject

The password



332
333
334
335
# File 'lib/authlogic/acts_as_authentic/password.rb', line 332

def password
  return nil unless defined?(@password)
  @password
end

#password=(pass) ⇒ Object

This is a virtual method. Once a password is passed to it, it will create new password salt as well as encrypt the password.



339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
# File 'lib/authlogic/acts_as_authentic/password.rb', line 339

def password=(pass)
  return if ignore_blank_passwords? && pass.blank?
  before_password_set
  @password = pass
  if password_salt_field
    send("#{password_salt_field}=", Authlogic::Random.friendly_token)
  end
  encryptor_args_type = act_like_restful_authentication? ? :restful_authentication : nil
  send(
    "#{crypted_password_field}=",
    crypto_provider.encrypt(
      *encrypt_arguments(@password, false, encryptor_args_type)
    )
  )
  @password_changed = true
  after_password_set
end

#reset_passwordObject Also known as: randomize_password

Resets the password to a random friendly token.



391
392
393
394
395
# File 'lib/authlogic/acts_as_authentic/password.rb', line 391

def reset_password
  friendly_token = Authlogic::Random.friendly_token
  self.password = friendly_token
  self.password_confirmation = friendly_token if self.class.require_password_confirmation
end

#reset_password!Object Also known as: randomize_password!

Resets the password to a random friendly token and then saves the record.



399
400
401
402
# File 'lib/authlogic/acts_as_authentic/password.rb', line 399

def reset_password!
  reset_password
  save_without_session_maintenance(validate: false)
end

#valid_password?(attempted_password, check_against_database = check_passwords_against_database? ) ⇒ Boolean

Accepts a raw password to determine if it is the correct password.

  • attempted_password [String] - password entered by user

  • check_against_database [boolean] - Should we check the password against the value in the database or the value in the object? Default taken from config option check_passwords_against_database. See config method for more information.

Returns:

  • (Boolean)


364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/authlogic/acts_as_authentic/password.rb', line 364

def valid_password?(
  attempted_password,
  check_against_database = check_passwords_against_database?
)
  crypted = crypted_password_to_validate_against(check_against_database)
  return false if attempted_password.blank? || crypted.blank?
  before_password_verification

  crypto_providers.each_with_index do |encryptor, index|
    next unless encryptor_matches?(
      crypted,
      encryptor,
      index,
      attempted_password,
      check_against_database
    )
    if transition_password?(index, encryptor, check_against_database)
      transition_password(attempted_password)
    end
    after_password_verification
    return true
  end

  false
end