summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2015-11-25 23:11:35 -0800
committerStan Hu <stanhu@gmail.com>2015-11-25 23:11:35 -0800
commit2497d3d550dc0d4e095c8c3fe75d4452fb163252 (patch)
treeb22985b99bfe8189d58f502ab3a0f33f28b7fda8
parentdee28c50a90acaf1a364d3971132c70c96493932 (diff)
downloadgitlab-ce-2497d3d550dc0d4e095c8c3fe75d4452fb163252.tar.gz
Fix 404 in redirection after removing a project
Closes https://github.com/gitlabhq/gitlabhq/issues/9844 Closes #3559
-rw-r--r--CHANGELOG1
-rw-r--r--app/controllers/projects_controller.rb2
-rw-r--r--spec/controllers/projects_controller_spec.rb16
3 files changed, 18 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8916b9f0403..3dd96e34dcf 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
Please view this file on the master branch, on stable branches it's out of date.
v 8.3.0 (unreleased)
+ - Fix 404 in redirection after removing a project (Stan Hu)
- Fix: Assignee selector is empty when 'Unassigned' is selected (Jose Corcuera)
- Fix 500 error when update group member permission
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 23453195e85..10c75370d7b 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -123,7 +123,7 @@ class ProjectsController < ApplicationController
::Projects::DestroyService.new(@project, current_user, {}).execute
flash[:alert] = "Project '#{@project.name}' was deleted."
- redirect_back_or_default(default: dashboard_projects_path, options: {})
+ redirect_to dashboard_projects_path
rescue Projects::DestroyService::DestroyError => ex
redirect_to edit_project_path(@project), alert: ex.message
end
diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb
index 4bb47c6b025..665526fde93 100644
--- a/spec/controllers/projects_controller_spec.rb
+++ b/spec/controllers/projects_controller_spec.rb
@@ -88,6 +88,22 @@ describe ProjectsController do
end
end
+ describe "#destroy" do
+ let(:admin) { create(:admin) }
+
+ it "redirects to the dashboard" do
+ controller.instance_variable_set(:@project, project)
+ sign_in(admin)
+
+ orig_id = project.id
+ delete :destroy, namespace_id: project.namespace.path, id: project.path
+
+ expect { Project.find(orig_id) }.to raise_error(ActiveRecord::RecordNotFound)
+ expect(response.status).to eq(302)
+ expect(response).to redirect_to(dashboard_projects_path)
+ end
+ end
+
describe "POST #toggle_star" do
it "toggles star if user is signed in" do
sign_in(user)