diff options
author | Douwe Maan <douwe@gitlab.com> | 2016-02-17 15:52:35 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2016-02-17 15:52:35 +0000 |
commit | 6483a4c7b1033f357eda3436bc7054c59e2f9b3f (patch) | |
tree | 43d345fd4befc76d474a9f9c4e79815d323583d3 | |
parent | 28d42a33f3385b57660906d4ca35e96d56785d7e (diff) | |
parent | 3d3ac87af991319d6960a963c0975c83bf7e4108 (diff) | |
download | gitlab-ce-6483a4c7b1033f357eda3436bc7054c59e2f9b3f.tar.gz |
Merge branch 'fix/13367-redirect-to-project-page-if-no-import' into 'master'
Redirect /import to project page if no importing at all and repo exists
Fixes gitlab-org/gitlab-ce#13367.
See merge request !2857
-rw-r--r-- | app/controllers/projects/imports_controller.rb | 12 | ||||
-rw-r--r-- | app/models/project.rb | 4 | ||||
-rw-r--r-- | spec/controllers/projects/imports_controller_spec.rb | 12 |
3 files changed, 25 insertions, 3 deletions
diff --git a/app/controllers/projects/imports_controller.rb b/app/controllers/projects/imports_controller.rb index 07f355c35b1..196996f1752 100644 --- a/app/controllers/projects/imports_controller.rb +++ b/app/controllers/projects/imports_controller.rb @@ -3,6 +3,7 @@ class Projects::ImportsController < Projects::ApplicationController before_action :authorize_admin_project! before_action :require_no_repo, only: [:new, :create] before_action :redirect_if_progress, only: [:new, :create] + before_action :redirect_if_no_import, only: :show def new end @@ -63,14 +64,19 @@ class Projects::ImportsController < Projects::ApplicationController def require_no_repo if @project.repository_exists? - redirect_to(namespace_project_path(@project.namespace, @project)) + redirect_to namespace_project_path(@project.namespace, @project) end end def redirect_if_progress if @project.import_in_progress? - redirect_to namespace_project_import_path(@project.namespace, @project) && - return + redirect_to namespace_project_import_path(@project.namespace, @project) + end + end + + def redirect_if_no_import + if @project.repository_exists? && @project.no_import? + redirect_to namespace_project_path(@project.namespace, @project) end end end diff --git a/app/models/project.rb b/app/models/project.rb index a43878ebcad..95ad88c76ae 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -382,6 +382,10 @@ class Project < ActiveRecord::Base external_import? || forked? end + def no_import? + import_status == 'none' + end + def external_import? import_url.present? end diff --git a/spec/controllers/projects/imports_controller_spec.rb b/spec/controllers/projects/imports_controller_spec.rb index 85d1d1e0524..0147bd2b953 100644 --- a/spec/controllers/projects/imports_controller_spec.rb +++ b/spec/controllers/projects/imports_controller_spec.rb @@ -104,6 +104,18 @@ describe Projects::ImportsController do end end end + + context 'when import never happened' do + before do + project.update_attribute(:import_status, :none) + end + + it 'redirects to namespace_project_path' do + get :show, namespace_id: project.namespace.to_param, project_id: project.to_param + + expect(response).to redirect_to namespace_project_path(project.namespace, project) + end + end end end end |