Defect #32199 » 32199_change_password_by_admin-v2.patch
| app/controllers/users_controller.rb | ||
|---|---|---|
| 145 | 145 |
end |
| 146 | 146 | |
| 147 | 147 |
def update |
| 148 |
if params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) |
|
| 148 |
update_password = params[:user][:password].present? && (@user.auth_source_id.nil? || params[:user][:auth_source_id].blank?) |
|
| 149 |
if update_password |
|
| 149 | 150 |
@user.password, @user.password_confirmation = params[:user][:password], params[:user][:password_confirmation] |
| 150 | 151 |
end |
| 151 | 152 |
@user.safe_attributes = params[:user] |
| ... | ... | |
| 157 | 158 |
if @user.save |
| 158 | 159 |
@user.pref.save |
| 159 | 160 | |
| 161 |
Mailer.deliver_password_updated(@user, User.current) if update_password |
|
| 160 | 162 |
if was_activated |
| 161 | 163 |
Mailer.deliver_account_activated(@user) |
| 162 | 164 |
elsif @user.active? && params[:send_information] && @user != User.current |
| test/functional/users_controller_test.rb | ||
|---|---|---|
| 22 | 22 |
class UsersControllerTest < Redmine::ControllerTest |
| 23 | 23 |
include Redmine::I18n |
| 24 | 24 | |
| 25 |
fixtures :users, :user_preferences, :email_addresses, :projects, :members, :member_roles, :roles,
|
|
| 25 |
fixtures :users, :email_addresses, :projects, :members, :member_roles, :roles, |
|
| 26 | 26 |
:custom_fields, :custom_values, :groups_users, |
| 27 | 27 |
:auth_sources, |
| 28 | 28 |
:enabled_modules, |
| ... | ... | |
| 570 | 570 |
assert_mail_body_match 'newpass123', mail |
| 571 | 571 |
end |
| 572 | 572 | |
| 573 |
def test_update_with_password_change_by_admin_should_send_a_security_notification |
|
| 574 |
with_settings :bcc_recipients => '0' do |
|
| 575 |
ActionMailer::Base.deliveries.clear |
|
| 576 |
user = User.find_by_login('jsmith')
|
|
| 577 | ||
| 578 |
put :update, :params => {
|
|
| 579 |
:id => user.id, |
|
| 580 |
:user => {:password => 'newpass123', :password_confirmation => 'newpass123'}
|
|
| 581 |
} |
|
| 582 | ||
| 583 |
assert_equal 1, ActionMailer::Base.deliveries.size |
|
| 584 |
mail = ActionMailer::Base.deliveries.last |
|
| 585 |
assert_equal [user.mail], mail.to |
|
| 586 |
assert_match 'Security notification', mail.subject |
|
| 587 |
assert_mail_body_match 'Your password has been changed.', mail |
|
| 588 |
end |
|
| 589 |
end |
|
| 590 | ||
| 573 | 591 |
def test_update_with_generate_password_should_email_the_password |
| 574 | 592 |
ActionMailer::Base.deliveries.clear |
| 575 | 593 |
Setting.bcc_recipients = '1' |
- « Previous
- 1
- 2
- Next »