Commit 8838b42cbe38a034047ea4af0445c6f0e99299cf

Authored by Rodrigo Souto
1 parent 3371aaf9

Fixing users that were supposed to be activated

app/models/user.rb
@@ -21,12 +21,11 @@ class User < ActiveRecord::Base @@ -21,12 +21,11 @@ class User < ActiveRecord::Base
21 end 21 end
22 end 22 end
23 23
24 - before_create :make_activation_code  
25 -  
26 before_create do |user| 24 before_create do |user|
27 if user.environment.nil? 25 if user.environment.nil?
28 user.environment = Environment.default 26 user.environment = Environment.default
29 end 27 end
  28 + user.send(:make_activation_code) if !user.environment.enabled?('skip_new_user_email_confirmation')
30 end 29 end
31 30
32 after_create do |user| 31 after_create do |user|
@@ -35,7 +34,7 @@ class User < ActiveRecord::Base @@ -35,7 +34,7 @@ class User < ActiveRecord::Base
35 user.person.name ||= user.login 34 user.person.name ||= user.login
36 user.person.visible = false unless user.activated? 35 user.person.visible = false unless user.activated?
37 user.person.save! 36 user.person.save!
38 - if user.environment && user.environment.enabled?('skip_new_user_email_confirmation') 37 + if user.environment.enabled?('skip_new_user_email_confirmation')
39 user.activate 38 user.activate
40 end 39 end
41 end 40 end
@@ -117,7 +116,7 @@ class User < ActiveRecord::Base @@ -117,7 +116,7 @@ class User < ActiveRecord::Base
117 self.activated_at = Time.now.utc 116 self.activated_at = Time.now.utc
118 self.activation_code = nil 117 self.activation_code = nil
119 self.person.visible = true 118 self.person.visible = true
120 - self.person.save! && self.save 119 + self.person.save! && self.save!
121 end 120 end
122 121
123 def activated? 122 def activated?
db/migrate/20120813163139_set_activation_code_to_nil_if_already_activated.rb 0 → 100644
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
  1 +class SetActivationCodeToNilIfAlreadyActivated < ActiveRecord::Migration
  2 + def self.up
  3 + update("UPDATE users SET activation_code = ? WHERE activated_at IS NOT NULL")
  4 + end
  5 +
  6 + def self.down
  7 + say('Can not be reverted.')
  8 + end
  9 +end
test/functional/account_controller_test.rb
@@ -610,6 +610,15 @@ class AccountControllerTest &lt; ActionController::TestCase @@ -610,6 +610,15 @@ class AccountControllerTest &lt; ActionController::TestCase
610 assert_equal 'example.com', Person['testuser'].organization 610 assert_equal 'example.com', Person['testuser'].organization
611 end 611 end
612 612
  613 + should 'activate user after signup if environment is set to skip confirmation' do
  614 + env = Environment.default
  615 + env.enable('skip_new_user_email_confirmation')
  616 + env.save!
  617 + new_user(:login => 'activated_user')
  618 + user = User.find_by_login('activated_user')
  619 + assert user.activated?
  620 + end
  621 +
613 should 'redirect to initial page after logout' do 622 should 'redirect to initial page after logout' do
614 login_as :johndoe 623 login_as :johndoe
615 get :logout 624 get :logout