Sha256: 8fbe905461f2393f7af7e3225f58a521b4b907ef93e8562711882db40cec6a76

Contents?: true

Size: 1.12 KB

Versions: 8

Compression:

Stored size: 1.12 KB

Contents

module Locomotive
  class CurrentSiteController < BaseController

    sections 'settings', 'site'

    localized

    skip_load_and_authorize_resource

    load_and_authorize_resource class: 'Site'

    helper 'Locomotive::Sites'

    before_filter :filter_attributes

    before_filter :ensure_domains_list, only: :update

    respond_to :json, only: :update

    def edit
      @site = current_site
      respond_with @site
    end

    def update
      @site = current_site
      @site.update_attributes(params[:site])
      respond_with @site, location: edit_current_site_url(new_host_if_subdomain_changed)
    end

    protected

    def filter_attributes
      unless can?(:manage, Locomotive::Membership)
        params[:site].delete(:memberships_attributes) if params[:site]
      end
    end

    def new_host_if_subdomain_changed
      if !Locomotive.config.manage_subdomain? || @site.domains.include?(request.host)
        {}
      else
        { host: site_url(@site, { fullpath: false, protocol: false }) }
      end
    end

    def ensure_domains_list
      params[:site][:domains] = [] unless params[:site][:domains]
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
locomotive_cms-2.2.2 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.2.1 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.2.0 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.1.4 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.1.3 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.1.2 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.1.1 app/controllers/locomotive/current_site_controller.rb
locomotive_cms-2.1.0 app/controllers/locomotive/current_site_controller.rb