Sha256: d7bfb1c475e7c6241bab0ec81c5d749178db73f10556fd71f06df6cf70c173ce

Contents?: true

Size: 1.02 KB

Versions: 6

Compression:

Stored size: 1.02 KB

Contents

module Locomotive
  module Routing
    module SiteDispatcher

      extend ActiveSupport::Concern

      included do
        if self.respond_to?(:before_filter)
          before_filter :fetch_site

          helper_method :current_site
        end
      end

      module InstanceMethods

        protected

        def fetch_site
          Locomotive.logger "[fetch site]  host = #{request.host} / #{request.env['HTTP_HOST']}"
          @current_site ||= Site.match_domain(request.host).first
        end

        def current_site
          @current_site || fetch_site
        end

        def require_site
          redirect_to application_root_url and return false if current_site.nil?
        end

        def validate_site_membership
          return if current_site && current_site.accounts.include?(current_admin)
          sign_out_and_redirect(current_admin)
        end

        def application_root_url
          root_url(:host => Locomotive.config.default_domain, :port => request.port)
        end

      end

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
locomotive_cms-0.0.4.beta5 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta4 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta3 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta2 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta1 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4 lib/locomotive/routing/site_dispatcher.rb