lib/authlogic/session/password.rb in authlogic-2.0.13 vs lib/authlogic/session/password.rb in authlogic-2.0.14
- old
+ new
@@ -89,14 +89,14 @@
end
alias_method :password_field=, :password_field
# The name of the method in your model used to verify the password. This should be an instance method. It should also be prepared to accept a raw password and a crytped password.
#
- # * <tt>Default:</tt> "valid_#{password_field}?"
+ # * <tt>Default:</tt> "valid_password?"
# * <tt>Accepts:</tt> Symbol or String
def verify_password_method(value = nil)
- rw_config(:verify_password_method, value, "valid_#{password_field}?")
+ rw_config(:verify_password_method, value, "valid_password?")
end
alias_method :verify_password_method=, :verify_password_method
end
# Password related instance methods
@@ -149,16 +149,22 @@
send("#{field}=", value)
end
end
end
+ def invalid_password?
+ invalid_password == true
+ end
+
private
def authenticating_with_password?
login_field && (!send(login_field).nil? || !send("protected_#{password_field}").nil?)
end
def validate_by_password
+ self.invalid_password = false
+
errors.add(login_field, I18n.t('error_messages.login_blank', :default => "cannot be blank")) if send(login_field).blank?
errors.add(password_field, I18n.t('error_messages.password_blank', :default => "cannot be blank")) if send("protected_#{password_field}").blank?
return if errors.count > 0
self.attempted_record = search_for_record(find_by_login_method, send(login_field))
@@ -167,24 +173,33 @@
generalize_credentials_error_messages? ? add_general_credentials_error : errors.add(login_field, I18n.t('error_messages.login_not_found', :default => "is not valid"))
return
end
if !attempted_record.send(verify_password_method, send("protected_#{password_field}"))
+ self.invalid_password = true
generalize_credentials_error_messages? ? add_general_credentials_error : errors.add(password_field, I18n.t('error_messages.password_invalid', :default => "is not valid"))
return
end
end
+ def invalid_password
+ @invalid_password
+ end
+
+ def invalid_password=(value)
+ @invalid_password = value
+ end
+
def find_by_login_method
self.class.find_by_login_method
end
def login_field
self.class.login_field
end
def add_general_credentials_error
- errors.add_to_base(I18n.t('error_messages.general_credentials_error', :default => "#{login_field.to_s.humanize}/Password combination is not valid"))
+ errors.add(:base, I18n.t('error_messages.general_credentials_error', :default => "#{login_field.to_s.humanize}/Password combination is not valid"))
end
def generalize_credentials_error_messages?
self.class.generalize_credentials_error_messages == true
end
\ No newline at end of file