From 6c217f98db6984c8d000103ac3cf66970eeaeb3f Mon Sep 17 00:00:00 2001 From: Mikel Lindsaar Date: Sun, 19 Dec 2010 21:28:37 +1100 Subject: Add set_weak_passwords call in alignment with set_table_name. --- activemodel/lib/active_model/secure_password.rb | 16 +++++++++++----- activemodel/test/cases/secure_password_test.rb | 5 +++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/activemodel/lib/active_model/secure_password.rb b/activemodel/lib/active_model/secure_password.rb index c5f32fa3fa..6703d5daac 100644 --- a/activemodel/lib/active_model/secure_password.rb +++ b/activemodel/lib/active_model/secure_password.rb @@ -41,12 +41,18 @@ module ActiveModel validate :password_must_be_strong end - # Allows you to specify the set of weak passwords that will be validated against - # if you specify has_secure_password in your model: + # Specify the weak passwords to be used in the model: # - # class User < ActiveRecord::Base - # weak_passwords = %w( password qwerty 123456 mypass ) + # class User + # weak_passwords %w( password qwerty 123456 mypass ) # end + def set_weak_passwords(values) + @weak_passwords = values + end + + # Change the list of weak passwords that will be validated against: + # + # User.weak_passwords = %w( password qwerty 123456 mypass ) def weak_passwords=(*values) @weak_passwords = values.flatten end @@ -55,7 +61,7 @@ module ActiveModel # list of 'password', 'qwerty' and '123456' # # User.weak_passwords #=> ['password', 'qwerty', '123456'] - def weak_passwords + def weak_passwords(values = nil) @weak_passwords ||= %w( password qwerty 123456 ) end diff --git a/activemodel/test/cases/secure_password_test.rb b/activemodel/test/cases/secure_password_test.rb index 5d788d7a1e..2c3da2c93e 100644 --- a/activemodel/test/cases/secure_password_test.rb +++ b/activemodel/test/cases/secure_password_test.rb @@ -17,6 +17,11 @@ class SecurePasswordTest < ActiveModel::TestCase assert_equal %w( pass ), User.weak_passwords end + test "specifying the list of passwords in the class" do + User.send(:set_weak_passwords, ['pass']) + assert_equal %w( pass ), User.weak_passwords + end + test "adding to the list of passwords" do User.weak_passwords << 'pass' @user.password = "password" -- cgit v1.2.3