summaryrefslogtreecommitdiff
path: root/config/routes/user.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-10-06 15:14:24 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-10-06 19:50:48 +0300
commit6b90ccb9fd57401912e1978cbad28cc693a2e0a1 (patch)
tree9e540eb6676f1d870d9e1276206f06d4fed10b48 /config/routes/user.rb
parent7c8c80880995e0bce822a6809fe514ce0f3fda36 (diff)
downloadgitlab-ce-6b90ccb9fd57401912e1978cbad28cc693a2e0a1.tar.gz
Change user & group landing page routing from /u/:name & /groups/:name to /:name
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'config/routes/user.rb')
-rw-r--r--config/routes/user.rb35
1 files changed, 23 insertions, 12 deletions
diff --git a/config/routes/user.rb b/config/routes/user.rb
index bbb30cedd4d..c287039ba26 100644
--- a/config/routes/user.rb
+++ b/config/routes/user.rb
@@ -1,15 +1,7 @@
-scope(path: 'u/:username',
- as: :user,
- constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ },
- controller: :users) do
- get :calendar
- get :calendar_activities
- get :groups
- get :projects
- get :contributed, as: :contributed_projects
- get :snippets
- get '/', action: :show
-end
+require 'constraints/user_url_constrainer'
+
+get '/u/:username', to: redirect('/%{username}'),
+ constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ }
devise_for :users, controllers: { omniauth_callbacks: :omniauth_callbacks,
registrations: :registrations,
@@ -21,3 +13,22 @@ devise_scope :user do
get '/users/auth/:provider/omniauth_error' => 'omniauth_callbacks#omniauth_error', as: :omniauth_error
get '/users/almost_there' => 'confirmations#almost_there'
end
+
+constraints(UserUrlConstrainer.new) do
+ scope(path: ':username', as: :user, controller: :users) do
+ get '/', action: :show
+ end
+end
+
+scope(path: 'u/:username',
+ as: :user,
+ constraints: { username: /[a-zA-Z.0-9_\-]+(?<!\.atom)/ },
+ controller: :users) do
+ get :calendar
+ get :calendar_activities
+ get :groups
+ get :projects
+ get :contributed, as: :contributed_projects
+ get :snippets
+ get '/', to: redirect('/%{username}')
+end