Prevent too many redirects error when home page URL set to external_urll
Many users naively set the home page URL setting to external_url (e.g. https://mydomain.com). When an unauthenticated user signs in, this causes endless redirections. For example, this is occuring: 1. Unauthenticated user attempts to access https://mydomain.com/dashboard 2. Application redirects to the home page URL: https://mydomain.com 3. Repeat step 2 In step 3, ApplicationController should have redirected the user to https://mydomain.com/users/sign_in. Disabling the redirection if home page URL is the same as external_url prevents users from messing up. Closes https://github.com/gitlabhq/gitlabhq/issues/8843 Closes #2057
This commit is contained in:
parent
068dcefc86
commit
c1fe98e0b9
2 changed files with 4 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.0.0 (unreleased)
|
||||
- Prevent too many redirects upon login when home page URL is set to external_url (Stan Hu)
|
||||
- Improve dropdown positioning on the project home page (Hannes Rosenögger)
|
||||
- Upgrade browser gem to 1.0.0 to avoid warning in IE11 compatibilty mode (Stan Hu)
|
||||
- Fix "Reload with full diff" URL button in compare branch view (Stan Hu)
|
||||
|
|
|
@ -55,7 +55,9 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
def authenticate_user!(*args)
|
||||
# If user is not signed-in and tries to access root_path - redirect him to landing page
|
||||
if current_application_settings.home_page_url.present?
|
||||
# Don't redirect to the default URL to prevent endless redirections
|
||||
if current_application_settings.home_page_url.present? &&
|
||||
current_application_settings.home_page_url.chomp('/') != Gitlab.config.gitlab['url'].chomp('/')
|
||||
if current_user.nil? && root_path == request.path
|
||||
redirect_to current_application_settings.home_page_url and return
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue