Sha256: fe49f11ec55999dafdbf9fd5852436e93b70693bbb67b19f917655d6ecb60fd7

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 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 admin_installation_url and return false if Account.count == 0 || Site.count == 0

          render_no_site_error and return false if current_site.nil?
        end

        def render_no_site_error
          render :template => "/admin/errors/no_site", :layout => false
        end

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

      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
locomotive_cms-0.0.4.beta10 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta9 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta8 lib/locomotive/routing/site_dispatcher.rb
locomotive_cms-0.0.4.beta7 lib/locomotive/routing/site_dispatcher.rb