diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2016-11-17 19:35:30 +0000 |
---|---|---|
committer | Alejandro RodrĂguez <alejorro70@gmail.com> | 2016-11-18 21:26:53 +0000 |
commit | f73175da0e94a445366dce6f6701944f767ead58 (patch) | |
tree | ed50d62332a2e0b6003e02134a1c8825999ac188 | |
parent | 34528a42cb77ebf2b978c17720a9e38c95b21774 (diff) | |
download | gitlab-ce-f73175da0e94a445366dce6f6701944f767ead58.tar.gz |
Merge branch 'fix-singin-redirect-for-fork-new' into 'master'
Fixing the issue of visiting a project fork url giving 500 error when not signed…
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/24302
See merge request !7392
-rw-r--r-- | app/controllers/projects/forks_controller.rb | 1 | ||||
-rw-r--r-- | changelogs/unreleased/fix-singin-redirect-for-fork-new.yml | 5 | ||||
-rw-r--r-- | spec/controllers/projects/forks_controller_spec.rb | 58 |
3 files changed, 64 insertions, 0 deletions
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb index ade01c706a7..ba46e2528e6 100644 --- a/app/controllers/projects/forks_controller.rb +++ b/app/controllers/projects/forks_controller.rb @@ -4,6 +4,7 @@ class Projects::ForksController < Projects::ApplicationController # Authorize before_action :require_non_empty_project before_action :authorize_download_code! + before_action :authenticate_user!, only: [:new, :create] def index base_query = project.forks.includes(:creator) diff --git a/changelogs/unreleased/fix-singin-redirect-for-fork-new.yml b/changelogs/unreleased/fix-singin-redirect-for-fork-new.yml new file mode 100644 index 00000000000..e4cf8de8699 --- /dev/null +++ b/changelogs/unreleased/fix-singin-redirect-for-fork-new.yml @@ -0,0 +1,5 @@ +--- +title: Fixing the issue of the project fork url giving 500 when not signed instead + of being redirected to sign in page +merge_request: +author: Cagdas Gerede diff --git a/spec/controllers/projects/forks_controller_spec.rb b/spec/controllers/projects/forks_controller_spec.rb index ac3469cb8a9..028ea067a97 100644 --- a/spec/controllers/projects/forks_controller_spec.rb +++ b/spec/controllers/projects/forks_controller_spec.rb @@ -67,4 +67,62 @@ describe Projects::ForksController do end end end + + describe 'GET new' do + def get_new + get :new, + namespace_id: project.namespace.to_param, + project_id: project.to_param + end + + context 'when user is signed in' do + it 'responds with status 200' do + sign_in(user) + + get_new + + expect(response).to have_http_status(200) + end + end + + context 'when user is not signed in' do + it 'redirects to the sign-in page' do + sign_out(user) + + get_new + + expect(response).to redirect_to(new_user_session_path) + end + end + end + + describe 'POST create' do + def post_create + post :create, + namespace_id: project.namespace.to_param, + project_id: project.to_param, + namespace_key: user.namespace.id + end + + context 'when user is signed in' do + it 'responds with status 302' do + sign_in(user) + + post_create + + expect(response).to have_http_status(302) + expect(response).to redirect_to(namespace_project_import_path(user.namespace, project)) + end + end + + context 'when user is not signed in' do + it 'redirects to the sign-in page' do + sign_out(user) + + post_create + + expect(response).to redirect_to(new_user_session_path) + end + end + end end |