Commit 9f85f19d10c63c970ae54a086bf3119a183d874f
Exists in
staging
and in
4 other branches
Merge branch 'register_performance' into production
Showing
5 changed files
with
14 additions
and
2 deletions
Show diff stats
app/models/person.rb
| @@ -310,7 +310,7 @@ roles] } | @@ -310,7 +310,7 @@ roles] } | ||
| 310 | end | 310 | end |
| 311 | 311 | ||
| 312 | after_update do |person| | 312 | after_update do |person| |
| 313 | - person.user.save! | 313 | + person.user.save! unless person.user.changes.blank? |
| 314 | end | 314 | end |
| 315 | 315 | ||
| 316 | def is_admin?(environment = nil) | 316 | def is_admin?(environment = nil) |
app/models/user.rb
| @@ -394,7 +394,7 @@ class User < ActiveRecord::Base | @@ -394,7 +394,7 @@ class User < ActiveRecord::Base | ||
| 394 | 394 | ||
| 395 | def deliver_activation_code | 395 | def deliver_activation_code |
| 396 | return if person.is_template? | 396 | return if person.is_template? |
| 397 | - UserMailer.activation_code(self).deliver unless self.activation_code.blank? | 397 | + Delayed::Job.enqueue(UserMailer::Job.new(self, :activation_code)) unless self.activation_code.blank? |
| 398 | end | 398 | end |
| 399 | 399 | ||
| 400 | def delay_activation_check | 400 | def delay_activation_check |
test/functional/search_controller_test.rb
| @@ -30,6 +30,7 @@ class SearchControllerTest < ActionController::TestCase | @@ -30,6 +30,7 @@ class SearchControllerTest < ActionController::TestCase | ||
| 30 | # By pass user validation on person creation | 30 | # By pass user validation on person creation |
| 31 | user = mock() | 31 | user = mock() |
| 32 | user.stubs(:id).returns(1) | 32 | user.stubs(:id).returns(1) |
| 33 | + user.stubs(:changes).returns(nil) | ||
| 33 | user.stubs(:valid?).returns(true) | 34 | user.stubs(:valid?).returns(true) |
| 34 | user.stubs(:email).returns('some@test.com') | 35 | user.stubs(:email).returns('some@test.com') |
| 35 | user.stubs(:save!).returns(true) | 36 | user.stubs(:save!).returns(true) |
test/unit/person_test.rb
| @@ -1827,4 +1827,11 @@ class PersonTest < ActiveSupport::TestCase | @@ -1827,4 +1827,11 @@ class PersonTest < ActiveSupport::TestCase | ||
| 1827 | assert person.voted_against?(article) | 1827 | assert person.voted_against?(article) |
| 1828 | end | 1828 | end |
| 1829 | 1829 | ||
| 1830 | + should 'not save user after an update on person and user is not touched' do | ||
| 1831 | + user = create_user('testuser') | ||
| 1832 | + person = user.person | ||
| 1833 | + person.user.expects(:save!).never | ||
| 1834 | + person.save! | ||
| 1835 | + end | ||
| 1836 | + | ||
| 1830 | end | 1837 | end |
test/unit/user_test.rb
| @@ -528,6 +528,7 @@ class UserTest < ActiveSupport::TestCase | @@ -528,6 +528,7 @@ class UserTest < ActiveSupport::TestCase | ||
| 528 | should 'deliver e-mail with activation code after creation' do | 528 | should 'deliver e-mail with activation code after creation' do |
| 529 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do | 529 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do |
| 530 | new_user :email => 'pending@activation.com' | 530 | new_user :email => 'pending@activation.com' |
| 531 | + process_delayed_job_queue | ||
| 531 | end | 532 | end |
| 532 | assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s | 533 | assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s |
| 533 | end | 534 | end |
| @@ -656,6 +657,7 @@ class UserTest < ActiveSupport::TestCase | @@ -656,6 +657,7 @@ class UserTest < ActiveSupport::TestCase | ||
| 656 | env.save | 657 | env.save |
| 657 | 658 | ||
| 658 | user = new_user :email => 'pending@activation.com' | 659 | user = new_user :email => 'pending@activation.com' |
| 660 | + process_delayed_job_queue | ||
| 659 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do | 661 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do |
| 660 | user.activate | 662 | user.activate |
| 661 | process_delayed_job_queue | 663 | process_delayed_job_queue |
| @@ -676,6 +678,7 @@ class UserTest < ActiveSupport::TestCase | @@ -676,6 +678,7 @@ class UserTest < ActiveSupport::TestCase | ||
| 676 | env.save | 678 | env.save |
| 677 | 679 | ||
| 678 | user = new_user :email => 'pending@activation.com' | 680 | user = new_user :email => 'pending@activation.com' |
| 681 | + process_delayed_job_queue | ||
| 679 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do | 682 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do |
| 680 | user.activate | 683 | user.activate |
| 681 | process_delayed_job_queue | 684 | process_delayed_job_queue |
| @@ -695,6 +698,7 @@ class UserTest < ActiveSupport::TestCase | @@ -695,6 +698,7 @@ class UserTest < ActiveSupport::TestCase | ||
| 695 | env.save | 698 | env.save |
| 696 | 699 | ||
| 697 | user = new_user :name => 'John Doe', :email => 'pending@activation.com' | 700 | user = new_user :name => 'John Doe', :email => 'pending@activation.com' |
| 701 | + process_delayed_job_queue | ||
| 698 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do | 702 | assert_difference 'ActionMailer::Base.deliveries.size', 1 do |
| 699 | user.activate | 703 | user.activate |
| 700 | process_delayed_job_queue | 704 | process_delayed_job_queue |