module Devise::Models::Zxcvbnable
Public Instance Methods
password_score()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 17 def password_score @password_score = self.class.password_score(self) end
password_weak?()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 21 def password_weak? password_score.score < min_password_score end
Protected Instance Methods
skip_password_complexity?()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 27 def skip_password_complexity? !password_required? end
Private Instance Methods
i18n_variables()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 39 def i18n_variables { feedback: zxcvbn_feedback, crack_time_display: time_to_crack, score: password_score.score, min_password_score: min_password_score } end
strong_password()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 33 def strong_password if errors.messages.blank? && password_weak? errors.add :password, :weak_password, **i18n_variables end end
time_to_crack()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 55 def time_to_crack password_score.crack_times_display["offline_fast_hashing_1e10_per_second"] end
zxcvbn_feedback()
click to toggle source
# File lib/devise_zxcvbn/model.rb, line 48 def zxcvbn_feedback feedback = password_score.feedback.values.flatten.reject(&:empty?) return "Add another word or two. Uncommon words are better." if feedback.empty? feedback.join(". ").gsub(/\.\s*\./, ".") end