diff --git a/app/controllers/join_project_requests_controller.rb b/app/controllers/join_project_requests_controller.rb index 4dadaf2..97de8af 100644 --- a/app/controllers/join_project_requests_controller.rb +++ b/app/controllers/join_project_requests_controller.rb @@ -1,5 +1,6 @@ class JoinProjectRequestsController < ApplicationController unloadable + before_filter :require_login before_filter :find_project, :except => [:index] before_filter :authorize, :except => [:index] before_filter :authorize_global, :only => [:index] diff --git a/app/controllers/join_projects_controller.rb b/app/controllers/join_projects_controller.rb index 3401305..83bace0 100644 --- a/app/controllers/join_projects_controller.rb +++ b/app/controllers/join_projects_controller.rb @@ -1,5 +1,6 @@ class JoinProjectsController < ApplicationController unloadable + before_filter :require_login before_filter :find_project before_filter :authorize diff --git a/test/functional/join_project_requests_controller_test.rb b/test/functional/join_project_requests_controller_test.rb index 87d7df1..66ef111 100644 --- a/test/functional/join_project_requests_controller_test.rb +++ b/test/functional/join_project_requests_controller_test.rb @@ -138,6 +138,19 @@ class JoinProjectRequestsControllerTest < ActionController::TestCase assert_nil ProjectJoinRequest.find_by_user_id_and_project_id(@user.id, @project.id) end end + + context "with no logged in user" do + setup do + setup_plugin_configuration + @request.session[:user_id] = nil + @project = Project.generate!(:project_subscription => 'none', :is_public => true) + + post :create, :project_id => @project.to_param + end + + should_respond_with :redirect + should_redirect_to("login") { {:controller => 'account', :action => 'login'} } + end end context "on POST to :create on an unauthorized project" do diff --git a/test/functional/join_projects_controller_test.rb b/test/functional/join_projects_controller_test.rb index 0bebd65..3e21fec 100644 --- a/test/functional/join_projects_controller_test.rb +++ b/test/functional/join_projects_controller_test.rb @@ -78,6 +78,19 @@ class JoinProjectsControllerTest < ActionController::TestCase assert !@user.member_of?(@project), "Membership created" end end + + context "with no logged in user" do + setup do + setup_plugin_configuration + @project = Project.generate!(:project_subscription => 'self-subscribe') + + post :create, :project_id => @project.to_param + end + + should_respond_with :redirect + should_redirect_to("login") { {:controller => 'account', :action => 'login'} } + end + end context "on POST to :create on an unauthorized project" do