Commit ed2a58fd73a521747cf3370baa5807ce07047290
1 parent
d005f120
Exists in
master
and in
22 other branches
Allow disabling the need for e-mail confirmations
This is specially useful in development/test setups where you don't have a working MTA.
Showing
5 changed files
with
28 additions
and
1 deletions
Show diff stats
app/controllers/public/account_controller.rb
... | ... | @@ -78,7 +78,12 @@ class AccountController < ApplicationController |
78 | 78 | invitation.update_attributes!({:friend => @user.person}) |
79 | 79 | invitation.finish |
80 | 80 | end |
81 | - @register_pending = true | |
81 | + if @user.activated? | |
82 | + self.current_user = @user | |
83 | + redirect_to '/' | |
84 | + else | |
85 | + @register_pending = true | |
86 | + end | |
82 | 87 | end |
83 | 88 | rescue ActiveRecord::RecordInvalid |
84 | 89 | @person.valid? | ... | ... |
app/models/environment.rb
... | ... | @@ -121,6 +121,7 @@ class Environment < ActiveRecord::Base |
121 | 121 | 'xmpp_chat' => _('XMPP/Jabber based chat'), |
122 | 122 | 'show_zoom_button_on_article_images' => _('Show a zoom link on all article images'), |
123 | 123 | 'captcha_for_logged_users' => _('Ask captcha when a logged user comments too'), |
124 | + 'skip_new_user_email_confirmation' => _('Skip e-mail confirmation for new users') | |
124 | 125 | } |
125 | 126 | end |
126 | 127 | ... | ... |
app/models/user.rb
... | ... | @@ -35,6 +35,9 @@ class User < ActiveRecord::Base |
35 | 35 | user.person.name ||= user.login |
36 | 36 | user.person.visible = false unless user.activated? |
37 | 37 | user.person.save! |
38 | + if user.environment && user.environment.enabled?('skip_new_user_email_confirmation') | |
39 | + user.activate | |
40 | + end | |
38 | 41 | end |
39 | 42 | after_create :deliver_activation_code |
40 | 43 | after_create :delay_activation_check | ... | ... |
test/functional/account_controller_test.rb
... | ... | @@ -737,6 +737,16 @@ class AccountControllerTest < ActionController::TestCase |
737 | 737 | end |
738 | 738 | end |
739 | 739 | |
740 | + should 'login after signup when no e-mail confirmation is required' do | |
741 | + e = Environment.default | |
742 | + e.enable('skip_new_user_email_confirmation') | |
743 | + e.save! | |
744 | + | |
745 | + new_user | |
746 | + assert_response :redirect | |
747 | + assert_not_nil assigns(:current_user) | |
748 | + end | |
749 | + | |
740 | 750 | protected |
741 | 751 | def new_user(options = {}, extra_options ={}) |
742 | 752 | data = {:profile_data => person_data} | ... | ... |
test/unit/user_test.rb
... | ... | @@ -478,6 +478,14 @@ class UserTest < ActiveSupport::TestCase |
478 | 478 | end |
479 | 479 | end |
480 | 480 | |
481 | + should 'activate right after creation when confirmation is not required' do | |
482 | + e = Environment.default | |
483 | + e.enable('skip_new_user_email_confirmation') | |
484 | + e.save! | |
485 | + | |
486 | + assert new_user.activated? | |
487 | + end | |
488 | + | |
481 | 489 | protected |
482 | 490 | def new_user(options = {}) |
483 | 491 | user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) | ... | ... |