45 lines
980 B
Ruby
45 lines
980 B
Ruby
module Locomotive
|
|
class CurrentSiteController < BaseController
|
|
|
|
sections 'settings', 'site'
|
|
|
|
skip_load_and_authorize_resource
|
|
|
|
load_and_authorize_resource :class => 'Site'
|
|
|
|
helper 'Locomotive::Sites'
|
|
|
|
before_filter :filter_attributes
|
|
|
|
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)
|
|
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
|
|
|
|
end
|
|
end
|