From 7f1d954873263b5406bdd25afa02b06013cb70e3 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Wed, 28 Dec 2016 13:43:08 +0200 Subject: [PATCH] Fix 500 error when visit group from admin area if group name contains dot Signed-off-by: Dmitriy Zaporozhets --- .../unreleased/dz-improve-admin-group-routing.yml | 4 ++++ config/routes/admin.rb | 2 +- spec/routing/admin_routing_spec.rb | 10 ++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 changelogs/unreleased/dz-improve-admin-group-routing.yml diff --git a/changelogs/unreleased/dz-improve-admin-group-routing.yml b/changelogs/unreleased/dz-improve-admin-group-routing.yml new file mode 100644 index 00000000000..2360b965c90 --- /dev/null +++ b/changelogs/unreleased/dz-improve-admin-group-routing.yml @@ -0,0 +1,4 @@ +--- +title: Fix 500 error when visit group from admin area if group name contains dot +merge_request: +author: diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 0dd2c8f7aef..23295b43c92 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -32,7 +32,7 @@ scope(path: 'groups/*id', controller: :groups, - constraints: { id: Gitlab::Regex.namespace_route_regex }) do + constraints: { id: Gitlab::Regex.namespace_route_regex, format: /(html|json|atom)/ }) do scope(as: :group) do put :members_update diff --git a/spec/routing/admin_routing_spec.rb b/spec/routing/admin_routing_spec.rb index 661b671301e..99c44bde151 100644 --- a/spec/routing/admin_routing_spec.rb +++ b/spec/routing/admin_routing_spec.rb @@ -122,12 +122,18 @@ end describe Admin::GroupsController, "routing" do + let(:name) { 'complex.group-namegit' } + it "to #index" do expect(get("/admin/groups")).to route_to('admin/groups#index') end it "to #show" do - expect(get("/admin/groups/gitlab")).to route_to('admin/groups#show', id: 'gitlab') - expect(get("/admin/groups/gitlab/subgroup")).to route_to('admin/groups#show', id: 'gitlab/subgroup') + expect(get("/admin/groups/#{name}")).to route_to('admin/groups#show', id: name) + expect(get("/admin/groups/#{name}/subgroup")).to route_to('admin/groups#show', id: "#{name}/subgroup") + end + + it "to #edit" do + expect(get("/admin/groups/#{name}/edit")).to route_to('admin/groups#edit', id: name) end end -- GitLab