summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-10-21 15:14:08 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-10-21 15:14:08 +0000
commit3fd3f85bc056f024ba0488ae1989ad6fbd8f6c60 (patch)
tree55109e61c941ef5b07b2455e78e786d9247c885d
parent4b2cc8dc96b0f7f8c0a7edf345bc4c3d0b0932e6 (diff)
parentc81ff152e08d58c13efbd50c40dd2e083ac65083 (diff)
downloadgitlab-ce-3fd3f85bc056f024ba0488ae1989ad6fbd8f6c60.tar.gz
Merge branch 'adam-fix-group-web-url' into 'master'
Change "Group#web_url" to return "/groups/twitter" rather than "/twitter" Fixes #23527 See merge request !7035
-rw-r--r--app/models/group.rb2
-rw-r--r--config/routes/group.rb33
-rw-r--r--spec/models/group_spec.rb6
3 files changed, 25 insertions, 16 deletions
diff --git a/app/models/group.rb b/app/models/group.rb
index 00a595d2705..6865e610718 100644
--- a/app/models/group.rb
+++ b/app/models/group.rb
@@ -68,7 +68,7 @@ class Group < Namespace
end
def web_url
- Gitlab::Routing.url_helpers.group_url(self)
+ Gitlab::Routing.url_helpers.group_canonical_url(self)
end
def human_name
diff --git a/config/routes/group.rb b/config/routes/group.rb
index 4838c9d91c6..826048ba196 100644
--- a/config/routes/group.rb
+++ b/config/routes/group.rb
@@ -12,23 +12,26 @@ constraints(GroupUrlConstrainer.new) do
end
end
-resources :groups, constraints: { id: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ } do
- member do
- get :issues
- get :merge_requests
- get :projects
- get :activity
- end
-
- scope module: :groups do
- resources :group_members, only: [:index, :create, :update, :destroy], concerns: :access_requestable do
- post :resend_invite, on: :member
- delete :leave, on: :collection
+scope constraints: { id: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ } do
+ resources :groups, except: [:show] do
+ member do
+ get :issues
+ get :merge_requests
+ get :projects
+ get :activity
end
- resource :avatar, only: [:destroy]
- resources :milestones, constraints: { id: /[^\/]+/ }, only: [:index, :show, :update, :new, :create]
+ scope module: :groups do
+ resources :group_members, only: [:index, :create, :update, :destroy], concerns: :access_requestable do
+ post :resend_invite, on: :member
+ delete :leave, on: :collection
+ end
- resources :labels, except: [:show], constraints: { id: /\d+/ }
+ resource :avatar, only: [:destroy]
+ resources :milestones, constraints: { id: /[^\/]+/ }, only: [:index, :show, :update, :new, :create]
+
+ resources :labels, except: [:show], constraints: { id: /\d+/ }
+ end
end
+ get 'groups/:id' => 'groups#show', as: :group_canonical
end
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index ac862055ebc..47f89f744cb 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -265,4 +265,10 @@ describe Group, models: true do
members
end
+
+ describe '#web_url' do
+ it 'returns the canonical URL' do
+ expect(group.web_url).to include("groups/#{group.name}")
+ end
+ end
end