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