Commit 19443585b782861bec54dc230ef0cdc7982557e8
1 parent
b05c01e9
Exists in
staging
and in
42 other branches
ActionItem78: don't check for password and password confirmation when cancelling
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@690 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
20 additions
and
3 deletions
Show diff stats
app/models/change_password.rb
| @@ -45,9 +45,9 @@ class ChangePassword < Task | @@ -45,9 +45,9 @@ class ChangePassword < Task | ||
| 45 | # validations for updating a ChangePassword task | 45 | # validations for updating a ChangePassword task |
| 46 | 46 | ||
| 47 | # only require the new password when actually changing it. | 47 | # only require the new password when actually changing it. |
| 48 | - validates_presence_of :password, :on => :update | ||
| 49 | - validates_presence_of :password_confirmation, :on => :update | ||
| 50 | - validates_confirmation_of :password | 48 | + validates_presence_of :password, :on => :update, :if => lambda { |change| change.status == Task::Status::FINISHED } |
| 49 | + validates_presence_of :password_confirmation, :on => :update, :if => lambda { |change| change.status == Task::Status::FINISHED } | ||
| 50 | + validates_confirmation_of :password, :if => lambda { |change| change.status == Task::Status::FINISHED } | ||
| 51 | 51 | ||
| 52 | def initialize(*args) | 52 | def initialize(*args) |
| 53 | super(*args) | 53 | super(*args) |
test/unit/change_password_test.rb
| @@ -62,6 +62,7 @@ class ChangePasswordTest < Test::Unit::TestCase | @@ -62,6 +62,7 @@ class ChangePasswordTest < Test::Unit::TestCase | ||
| 62 | change.email = 'test@example.com' | 62 | change.email = 'test@example.com' |
| 63 | change.save! | 63 | change.save! |
| 64 | 64 | ||
| 65 | + change.status = Task::Status::FINISHED | ||
| 65 | change.password = 'right' | 66 | change.password = 'right' |
| 66 | change.password_confirmation = 'wrong' | 67 | change.password_confirmation = 'wrong' |
| 67 | assert !change.valid? | 68 | assert !change.valid? |
| @@ -88,4 +89,20 @@ class ChangePasswordTest < Test::Unit::TestCase | @@ -88,4 +89,20 @@ class ChangePasswordTest < Test::Unit::TestCase | ||
| 88 | change.finish | 89 | change.finish |
| 89 | end | 90 | end |
| 90 | 91 | ||
| 92 | + should 'not require password and password confirmation when cancelling' do | ||
| 93 | + User.destroy_all | ||
| 94 | + person = User.create!(:login => 'testuser', :password => 'test', :password_confirmation => 'test', :email => 'test@example.com').person | ||
| 95 | + | ||
| 96 | + change = ChangePassword.new | ||
| 97 | + change.login = 'testuser' | ||
| 98 | + change.email = 'test@example.com' | ||
| 99 | + change.save! | ||
| 100 | + | ||
| 101 | + assert_nothing_raised do | ||
| 102 | + change.cancel | ||
| 103 | + end | ||
| 104 | + | ||
| 105 | + end | ||
| 106 | + | ||
| 107 | + | ||
| 91 | end | 108 | end |