module Devise::Models::UncommonPassword

The UncommonPassword module adds a new validation for Devise Models. No modifications to routes or controllers needed. Simply add :uncommon_password to the list of included modules in your devise module, and all new registrations will be blocked if they use a common password.

Public Class Methods

common_passwords() click to toggle source

Returns a list of the 100 most common passwords.

# File lib/devise/uncommon_password/model.rb, line 11
def self.common_passwords
  passwords_file = File.join(File.dirname(__FILE__), Devise.password_text_file)

  passwords = []
  File.open(passwords_file, "r") do |file|
    file.each { |password| passwords << password.chomp.downcase }
  end
  passwords.select! {|password| Devise.password_length.include? password.length }
  passwords[0..Devise.password_matches-1]
end

Private Instance Methods

not_common_password() click to toggle source
# File lib/devise/uncommon_password/model.rb, line 33
def not_common_password
  if Devise::Models::UncommonPassword.common_passwords.include? password.downcase
    errors.add(:password, :common_password)
  end
end