Commit 687f3e11288deaae1c00b7e91b19270c70500f7e

Authored by Daniela Feitosa
2 parents e2e6ea01 8838b42c

Merge commit 'refs/merge-requests/211' of git://gitorious.org/noosfero/noosfero …

…into merge-requests/211
app/models/user.rb
... ... @@ -21,12 +21,11 @@ class User < ActiveRecord::Base
21 21 end
22 22 end
23 23  
24   - before_create :make_activation_code
25   -
26 24 before_create do |user|
27 25 if user.environment.nil?
28 26 user.environment = Environment.default
29 27 end
  28 + user.send(:make_activation_code) if !user.environment.enabled?('skip_new_user_email_confirmation')
30 29 end
31 30  
32 31 after_create do |user|
... ... @@ -35,7 +34,7 @@ class User < ActiveRecord::Base
35 34 user.person.name ||= user.login
36 35 user.person.visible = false unless user.activated?
37 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 38 user.activate
40 39 end
41 40 end
... ... @@ -117,7 +116,7 @@ class User < ActiveRecord::Base
117 116 self.activated_at = Time.now.utc
118 117 self.activation_code = nil
119 118 self.person.visible = true
120   - self.person.save! && self.save
  119 + self.person.save! && self.save!
121 120 end
122 121  
123 122 def activated?
... ...
db/migrate/20120813163139_set_activation_code_to_nil_if_already_activated.rb 0 → 100644
... ... @@ -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 610 assert_equal 'example.com', Person['testuser'].organization
611 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 622 should 'redirect to initial page after logout' do
614 623 login_as :johndoe
615 624 get :logout
... ...