Commit f094d0b5a76273ec9a5d2970f3c45c4157c556bd

Authored by Victor Costa
2 parents 52eb0a8b fc39396c

Merge branch 'fix_members_listing' into stable

app/models/user.rb
@@ -363,6 +363,7 @@ class User < ActiveRecord::Base @@ -363,6 +363,7 @@ class User < ActiveRecord::Base
363 end 363 end
364 364
365 def delay_activation_check 365 def delay_activation_check
  366 + return if person.is_template?
366 Delayed::Job.enqueue(UserActivationJob.new(self.id), {:priority => 0, :run_at => 72.hours.from_now}) 367 Delayed::Job.enqueue(UserActivationJob.new(self.id), {:priority => 0, :run_at => 72.hours.from_now})
367 end 368 end
368 end 369 end
lib/user_activation_job.rb
1 class UserActivationJob < Struct.new(:user_id) 1 class UserActivationJob < Struct.new(:user_id)
2 def perform 2 def perform
3 user = User.find(user_id) 3 user = User.find(user_id)
4 - user.destroy unless user.activated? 4 + user.destroy unless user.activated? || user.person.is_template?
5 end 5 end
6 end 6 end
test/unit/user_activation_job_test.rb
@@ -29,6 +29,17 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase @@ -29,6 +29,17 @@ class NotifyActivityToProfilesJobTest &lt; ActiveSupport::TestCase
29 end 29 end
30 end 30 end
31 31
  32 + should 'not destroy user if not activated but is template' do
  33 + user = new_user :login => 'test3'
  34 + user.person.is_template = true
  35 + user.person.save
  36 + job = UserActivationJob.new(user.id)
  37 + assert_no_difference 'User.count' do
  38 + job.perform
  39 + process_delayed_job_queue
  40 + end
  41 + end
  42 +
32 protected 43 protected
33 def new_user(options = {}) 44 def new_user(options = {})
34 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) 45 user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options))
test/unit/user_test.rb
@@ -525,6 +525,13 @@ class UserTest &lt; ActiveSupport::TestCase @@ -525,6 +525,13 @@ class UserTest &lt; ActiveSupport::TestCase
525 assert_match /UserActivationJob/, Delayed::Job.last.handler 525 assert_match /UserActivationJob/, Delayed::Job.last.handler
526 end 526 end
527 527
  528 + should 'not create job to check activation to template users' do
  529 + Person.any_instance.stubs(:is_template?).returns(true)
  530 +
  531 + user = new_user
  532 + assert_equal 0, Delayed::Job.by_handler("--- !ruby/struct:UserActivationJob\nuser_id: #{user.id}\n").count
  533 + end
  534 +
528 should 'deactivate an user' do 535 should 'deactivate an user' do
529 user = new_user 536 user = new_user
530 user.activate 537 user.activate