diff --git a/config/initializers/subdomain.rb b/config/initializers/subdomain.rb new file mode 100644 index 000000000..b868e7e0b --- /dev/null +++ b/config/initializers/subdomain.rb @@ -0,0 +1,9 @@ +class Subdomain + + def matches?(request) + o = Organization.where(domain: request.subdomain).first + request.path_parameters[:id] = o.id if o + !o.nil? + end + +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index a86ed21f0..6afd5e011 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -73,16 +73,9 @@ RedmineApp::Application.routes.draw do end end - get '/', to: 'organizations#show', constraints:lambda{|request|Organization.where("domain is not null").map(&:domain).include?(request.subdomain)} - Organization.where("domain is not null").each do |org| - # org_domains = [] - # org_domains << org.domain - get '/', to: 'organizations#show', defaults: { id: org.id }, constraints: {subdomain: org.domain} - #get '/', to: 'organizations#show', defaults: { id: org.id }, constraints: lambda{ |request| org_domains.include?(request.remote_ip) } + constraints(Subdomain.new) do + get '/', to: 'organizations#show' end - get '/', to: 'organizations#show', defaults: { id: 5 }, constraints: {subdomain: 'micros'} - get '/', to: 'organizations#show', defaults: { id: 23 }, constraints: {subdomain: 'nubot'} - get '/', to: 'organizations#show', defaults: { id: 1 }, constraints: {subdomain: 'team'} resources :org_member do member do