Commit a83021650981877cd2a983a4e2e05bbab9fa93c6
1 parent
e6710a34
Exists in
master
and in
27 other branches
social_network: Join community on login/signup
Join community if user log in or sign up after following a "Join" link within a community. (ActionItem3096)
Showing
2 changed files
with
13 additions
and
23 deletions
Show diff stats
app/controllers/public/account_controller.rb
@@ -18,6 +18,7 @@ class AccountController < ApplicationController | @@ -18,6 +18,7 @@ class AccountController < ApplicationController | ||
18 | if @user and @user.activate | 18 | if @user and @user.activate |
19 | @message = _("Your account has been activated, now you can log in!") | 19 | @message = _("Your account has been activated, now you can log in!") |
20 | check_redirection | 20 | check_redirection |
21 | + session[:join] = params[:join] unless params[:join].blank? | ||
21 | render :action => 'login', :userlogin => @user.login | 22 | render :action => 'login', :userlogin => @user.login |
22 | else | 23 | else |
23 | session[:notice] = _("It looks like you're trying to activate an account. Perhaps have already activated this account?") | 24 | session[:notice] = _("It looks like you're trying to activate an account. Perhaps have already activated this account?") |
@@ -36,7 +37,7 @@ class AccountController < ApplicationController | @@ -36,7 +37,7 @@ class AccountController < ApplicationController | ||
36 | self.current_user ||= User.authenticate(params[:user][:login], params[:user][:password], environment) if params[:user] | 37 | self.current_user ||= User.authenticate(params[:user][:login], params[:user][:password], environment) if params[:user] |
37 | 38 | ||
38 | if logged_in? | 39 | if logged_in? |
39 | - check_join_in_community(self.current_user) | 40 | + join_community(self.current_user) |
40 | if params[:remember_me] == "1" | 41 | if params[:remember_me] == "1" |
41 | self.current_user.remember_me | 42 | self.current_user.remember_me |
42 | cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at } | 43 | cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at } |
@@ -104,7 +105,7 @@ class AccountController < ApplicationController | @@ -104,7 +105,7 @@ class AccountController < ApplicationController | ||
104 | end | 105 | end |
105 | if @user.activated? | 106 | if @user.activated? |
106 | self.current_user = @user | 107 | self.current_user = @user |
107 | - check_join_in_community(@user) | 108 | + join_community(@user) |
108 | go_to_signup_initial_page | 109 | go_to_signup_initial_page |
109 | else | 110 | else |
110 | @register_pending = true | 111 | @register_pending = true |
@@ -453,4 +454,12 @@ class AccountController < ApplicationController | @@ -453,4 +454,12 @@ class AccountController < ApplicationController | ||
453 | @user.update_attributes(:return_to => nil) | 454 | @user.update_attributes(:return_to => nil) |
454 | end | 455 | end |
455 | end | 456 | end |
457 | + | ||
458 | + def join_community(user) | ||
459 | + profile_to_join = session[:join] | ||
460 | + unless profile_to_join.blank? | ||
461 | + environment.profiles.find_by_identifier(profile_to_join).add_member(user.person) | ||
462 | + session.delete(:join) | ||
463 | + end | ||
464 | + end | ||
456 | end | 465 | end |
test/functional/profile_controller_test.rb
@@ -477,25 +477,6 @@ class ProfileControllerTest < ActionController::TestCase | @@ -477,25 +477,6 @@ class ProfileControllerTest < ActionController::TestCase | ||
477 | assert_equal "/profile/#{community.identifier}", @request.session[:previous_location] | 477 | assert_equal "/profile/#{community.identifier}", @request.session[:previous_location] |
478 | end | 478 | end |
479 | 479 | ||
480 | - should 'redirect to login after user not logged asks to join a community' do | ||
481 | - community = Community.create!(:name => 'my test community') | ||
482 | - | ||
483 | - get :join_not_logged, :profile => community.identifier | ||
484 | - | ||
485 | - assert_equal community.identifier, @request.session[:join] | ||
486 | - assert_redirected_to :controller => :account, :action => :login | ||
487 | - end | ||
488 | - | ||
489 | - should 'redirect to join after user logged asks to join_not_logged a community' do | ||
490 | - community = Community.create!(:name => 'my test community') | ||
491 | - | ||
492 | - login_as(profile.identifier) | ||
493 | - get :join_not_logged, :profile => community.identifier | ||
494 | - | ||
495 | - assert_equal community.identifier, @request.session[:join] | ||
496 | - assert_redirected_to :controller => :profile, :action => :join | ||
497 | - end | ||
498 | - | ||
499 | should 'show number of published events in index' do | 480 | should 'show number of published events in index' do |
500 | profile.articles << Event.new(:name => 'Published event', :start_date => Date.today) | 481 | profile.articles << Event.new(:name => 'Published event', :start_date => Date.today) |
501 | profile.articles << Event.new(:name => 'Unpublished event', :start_date => Date.today, :published => false) | 482 | profile.articles << Event.new(:name => 'Unpublished event', :start_date => Date.today, :published => false) |
@@ -1195,7 +1176,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1195,7 +1176,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
1195 | 20.times {comment = fast_create(Comment, :source_id => article, :title => 'a comment', :body => 'lalala', :created_at => Time.now)} | 1176 | 20.times {comment = fast_create(Comment, :source_id => article, :title => 'a comment', :body => 'lalala', :created_at => Time.now)} |
1196 | article.reload | 1177 | article.reload |
1197 | get :index, :profile => profile.identifier | 1178 | get :index, :profile => profile.identifier |
1198 | - assert_tag 'ul', :attributes => {:class => 'profile-wall-activities-comments'}, :children => {:count => 0 } | 1179 | + assert_tag 'ul', :attributes => {:class => 'profile-wall-activities-comments'}, :children => {:count => 0 } |
1199 | end | 1180 | end |
1200 | 1181 | ||
1201 | should "view more comments paginated" do | 1182 | should "view more comments paginated" do |
@@ -1221,7 +1202,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1221,7 +1202,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
1221 | 20.times {fast_create(Scrap, :sender_id => profile.id, :receiver_id => profile.id, :scrap_id => scrap.id)} | 1202 | 20.times {fast_create(Scrap, :sender_id => profile.id, :receiver_id => profile.id, :scrap_id => scrap.id)} |
1222 | profile.reload | 1203 | profile.reload |
1223 | get :index, :profile => profile.identifier | 1204 | get :index, :profile => profile.identifier |
1224 | - assert_tag 'ul', :attributes => {:class => 'profile-wall-activities-comments scrap-replies'}, :children => {:count => 0 } | 1205 | + assert_tag 'ul', :attributes => {:class => 'profile-wall-activities-comments scrap-replies'}, :children => {:count => 0 } |
1225 | end | 1206 | end |
1226 | 1207 | ||
1227 | should "view more replies paginated" do | 1208 | should "view more replies paginated" do |