aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model/secure_password.rb16
-rw-r--r--activemodel/test/cases/secure_password_test.rb5
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"