Sha256: baf6fb8a8dd5fc7f3adf50c013d138fbab2eb37bc4d29e9b007e6a30e6d91871

Contents?: true

Size: 1.11 KB

Versions: 2

Compression:

Stored size: 1.11 KB

Contents

module Vhost::ApplicationControllerExtensions
  def self.included(base)
    base.class_eval {
      prepend_before_filter :redirect_to_primary_site

      helper_method :primary_site_url
      
      def redirect_to_primary_site
        if VhostExtension.REDIRECT_TO_PRIMARY_SITE
          site = current_site
          return if site.nil? || site.hostname.include?("*")
          primary_host = site.hostnames.first.domain
          redirect_to(primary_site_url + request.request_uri) if request.host != primary_host
        end
      end

      def primary_site_url
          site = current_site
          return nil if site.nil? || site.hostnames.map(&:domain).include?("*")

          # Rebuild the current URL. Check if it matches the URL of the
          # primary site and redirect if it does not.
          prefix = request.ssl? ? "https://" : "http://"
          host = request.host
          port = request.port_string

          # Primary site is the first site
          primary_host = site.hostnames.first.domain
          
          # Return the concatenation
          prefix+primary_host+port
      end
    }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
radiant-vhost-extension-2.3.1 lib/vhost/application_controller_extensions.rb
radiant-vhost-extension-2.3.0 lib/vhost/application_controller_extensions.rb