Class: Locomotive::SitePolicy

Inherits:
ApplicationPolicy show all
Defined in:
app/policies/locomotive/site_policy.rb

Defined Under Namespace

Classes: Scope

Instance Attribute Summary

Attributes inherited from ApplicationPolicy

#membership, #resource

Instance Method Summary collapse

Methods inherited from ApplicationPolicy

#destroy_all?, #edit?, #initialize, #new?, #site_admin?, #site_admin_or_designer?, #site_staff?, #super_admin?

Constructor Details

This class inherits a constructor from Locomotive::ApplicationPolicy

Instance Method Details

#create?Boolean

Returns:



24
25
26
# File 'app/policies/locomotive/site_policy.rb', line 24

def create?
  true
end

#destroy?Boolean

Returns:



32
33
34
# File 'app/policies/locomotive/site_policy.rb', line 32

def destroy?
  super_admin? || site_admin?
end

#index?Boolean

Returns:



16
17
18
# File 'app/policies/locomotive/site_policy.rb', line 16

def index?
  true
end

#permitted_attributesObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'app/policies/locomotive/site_policy.rb', line 48

def permitted_attributes
  plain = [:name, :handle, :picture, :remove_picture, :seo_title, :meta_keywords, :meta_description, :timezone_name, :robots_txt, :asset_host, :cache_enabled, :redirect_to_first_domain, :redirect_to_https, :private_access, :password, :prefix_default_locale]
  hash  = { domains: [], locales: [], url_redirections: [] }

  unless update_advanced?
    plain -= [:timezone_name, :robots_txt, :cache_enabled, :prefix_default_locale, :asset_host]
    hash.delete(:locales)
    hash.delete(:url_redirections)
  end

  unless point?
    plain -= [:handle, :redirect_to_first_domain, :redirect_to_https, :private_access, :password]
    hash.delete(:domains)
  end

  plain << hash
end

#point?Boolean

Returns:



36
37
38
# File 'app/policies/locomotive/site_policy.rb', line 36

def point?
  !resource.try(:persisted?) || super_admin? || site_admin?
end

#show?Boolean

Returns:



20
21
22
# File 'app/policies/locomotive/site_policy.rb', line 20

def show?
  true
end

#show_developers_documentation?Boolean

Returns:



44
45
46
# File 'app/policies/locomotive/site_policy.rb', line 44

def show_developers_documentation?
  super_admin? || site_admin?
end

#update?Boolean

Returns:



28
29
30
# File 'app/policies/locomotive/site_policy.rb', line 28

def update?
  super_admin? || site_staff?
end

#update_advanced?Boolean

Returns:



40
41
42
# File 'app/policies/locomotive/site_policy.rb', line 40

def update_advanced?
  super_admin? || site_admin?
end