Files
sx-fc/app/controllers/concerns/multi_tenancy.rb
Thein Lin Kyaw 7e9b4f7120 update license
2020-06-19 10:46:52 +06:30

35 lines
996 B
Ruby

module MultiTenancy
extend ActiveSupport::Concern
included do
set_current_tenant_through_filter if respond_to? :set_current_tenant_through_filter
before_action :set_current_tenant_by_subdomain_or_name if respond_to? :before_action
helper_method :current_shop if respond_to? :helper_method
end
private
def set_current_tenant_by_subdomain_or_name
find_tenant_by_subdomain_or_name || not_found
end
def find_tenant_by_subdomain_or_name
if request.subdomains.last && request.subdomains.last != "www"
shop_code = request.subdomains.last.partition('-').last
set_current_tenant(Shop.find_by(shop_code: shop_code))
elsif Shop.count == 1
set_current_tenant(Shop.first)
end
end
def not_found
respond_to do |format|
format.html { render :file => "#{Rails.root}/public/404", :layout => false, :status => :not_found }
format.json { head :not_found }
end
end
def current_shop
ActsAsTenant.current_tenant
end
end