class ActiveModel::Validations::PasswordValidator
Constants
- DEFAULT_ERROR_MESSAGES
Public Instance Methods
error_messages()
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 27 def error_messages @error_messages ||= DEFAULT_ERROR_MESSAGES end
error_messages=(em)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 31 def error_messages=(em) @error_messages = em end
validate_each(record, attribute, value)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 15 def validate_each(record, attribute, value) pc = NOBSPW::PasswordChecker.new password: record.send(attribute), email: email_value(record), name: name_value(record), username: username_value(record) pc.weak_password_reasons.each do |reason| record.errors[attribute] << get_message(reason) end pc.strong? end
Private Instance Methods
email_value(record)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 37 def email_value(record) if options.keys.include?(:email) return nil if options[:email].nil? return record.send(options[:email]) end %i(email email_address).each do |f| return record.send(f) if record.respond_to?(f) end nil end
get_message(reason)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 80 def get_message(reason) I18n.t "password_validator.#{reason}", default: error_messages[reason] || error_messages[:fallback] end
name_value(record)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 63 def name_value(record) if options.keys.include?(:name) return nil if options[:name].nil? return record.send(options[:name]) end %i(name full_name).each do |f| return record.send(f) if record.respond_to?(f) end if record.respond_to?(:first_name) && record.respond_to?(:last_name) return "#{record.send(:first_name)} #{record.send(:last_name)}" end nil end
username_value(record)
click to toggle source
# File lib/active_model/validations/password_validator.rb, line 50 def username_value(record) if options.keys.include?(:username) return nil if options[:username].nil? return record.send(options[:username]) end %i(username user_name user screenname screen_name).each do |f| return record.send(f) if record.respond_to?(f) end nil end