Skip to content
This repository was archived by the owner on Jan 17, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion lib/hostel/detectable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ module Detectable

def current_site
@current_site ||= begin
if site = Hostel.find(request.params[:pinned])
if site = subdomain_override?(request)
site
elsif site = Hostel.find(request.params[:pinned])
cookies[:pinned] = site.key
Hostel::Detector.new(site.domain).site
elsif request.headers['X-PROXIED-FOR']
Expand All @@ -21,5 +23,13 @@ def current_site
end
end
end

private
def subdomain_override?(request)
['cio', 'cco'].each do |sk|
return Hostel.find(sk) if request.subdomain.include?(sk)
end
nil
end
end
end
20 changes: 17 additions & 3 deletions lib/hostel/domain_constraint.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,26 @@ def initialize(*site_keys)
end

def matches?(request)
if request.headers['X-PROXIED-FOR']
current_site = Hostel::Detector.new(request.headers['X-PROXIED-FOR'], request.cookies['pinned']).site
current_site = if subdomain_override?(request)
subdomain_override(request)
elsif request.headers['X-PROXIED-FOR']
Hostel::Detector.new(request.headers['X-PROXIED-FOR'], request.cookies['pinned']).site
else
current_site = Hostel::Detector.new(request.host_with_port, request.cookies['pinned']).site
Hostel::Detector.new(request.host_with_port, request.cookies['pinned']).site
end
@site_keys.include?(current_site.key)
end

def subdomain_override?(request)
['cio', 'cco'].each do |sk|
return Hostel.find(sk) if request.subdomain.include?(sk)
end
nil
end

# method delegation to express that this can also be used to retrive the value
def subdomain_override(request)
subdomain_override?(request)
end
end
end