mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 03:37:56 +01:00
Fix custom domains (#318)
* Configure trusted proxies * Fix tenant signup route not working * Use HTTP_X_FORWARDED_HOST if present * Update reserved subdomains
This commit is contained in:
committed by
GitHub
parent
d17b45c5c4
commit
b63956a173
@@ -20,6 +20,7 @@ class ApplicationController < ActionController::Base
|
||||
|
||||
def load_tenant_data
|
||||
current_tenant = get_tenant_from_request(request)
|
||||
return unless current_tenant
|
||||
|
||||
if current_tenant.status == "pending" and controller_name != "confirmation" and action_name != "show"
|
||||
redirect_to pending_tenant_path; return
|
||||
@@ -29,7 +30,6 @@ class ApplicationController < ActionController::Base
|
||||
redirect_to blocked_tenant_path; return
|
||||
end
|
||||
|
||||
return unless current_tenant
|
||||
Current.tenant = current_tenant
|
||||
|
||||
# Load tenant data
|
||||
|
||||
@@ -52,15 +52,16 @@ module ApplicationHelper
|
||||
|
||||
def get_tenant_from_request(request)
|
||||
if Rails.application.multi_tenancy?
|
||||
request_host_splitted = request.host.split('.')
|
||||
request_host = request.headers['HTTP_X_FORWARDED_HOST'] || request.host
|
||||
request_host_splitted = request_host.split('.')
|
||||
app_host_splitted = URI.parse(Rails.application.base_url).host.split('.')
|
||||
|
||||
if app_host_splitted.join('.') == request_host_splitted.last(app_host_splitted.length).join('.')
|
||||
return if request.subdomain.blank? or RESERVED_SUBDOMAINS.include?(request.subdomain)
|
||||
return nil if request.subdomain.blank? or RESERVED_SUBDOMAINS.include?(request.subdomain)
|
||||
|
||||
tenant = Tenant.find_by(subdomain: request.subdomain)
|
||||
else
|
||||
tenant = Tenant.find_by(custom_domain: request.host)
|
||||
tenant = Tenant.find_by(custom_domain: request_host)
|
||||
end
|
||||
else
|
||||
tenant = Tenant.first
|
||||
|
||||
Reference in New Issue
Block a user