Sha256: df8192c379451dc76ef289456be9fed961cc80d658e67cf431933fbe5d3692c3

Contents?: true

Size: 739 Bytes

Versions: 3

Compression:

Stored size: 739 Bytes

Contents

module Theblog
  class ContentNodePolicy < ApplicationPolicy
    def index?
      true
    end

    def show?
      true
    end

    def new?
      user.has_role?(:editor, :moderator, :admin)
    end

    def create?
      user.has_role?(:editor, :moderator, :admin)
    end

    def update?
      account_can_update_record?
    end

    def publish?
      account_can_update_record?
    end

    def draft?
      account_can_update_record?
    end

    def block?
      user.has_role?(:moderator, :admin)
    end

    def unblock?
      user.has_role?(:moderator, :admin)
    end

    def account_can_update_record?
      (user == record.author && user.has_role?(:editor)) ||
        user.has_role?(:moderator, :admin)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
theblog-0.0.2.3 app/policies/theblog/content_node_policy.rb
theblog-0.0.2.2 app/policies/theblog/content_node_policy.rb
theblog-0.0.2.1 app/policies/theblog/content_node_policy.rb