Sha256: c672416c153fa44e4e0e244ba4cd0b713346b5c344de461244fca1f070d1671f

Contents?: true

Size: 685 Bytes

Versions: 3

Compression:

Stored size: 685 Bytes

Contents

# frozen_string_literal: true
module Thredded
  class MessageboardPolicy
    # @param user [Thredded.user_class]
    # @param messageboard [Thredded::Messageboard]
    def initialize(user, messageboard)
      @user = user
      @messageboard = messageboard
    end

    def create?
      @user.thredded_admin?
    end

    def read?
      @user.thredded_admin? || @user.thredded_can_read_messageboards.include?(@messageboard)
    end

    def post?
      @user.thredded_admin? || @user.thredded_can_write_messageboards.include?(@messageboard)
    end

    def moderate?
      @user.thredded_admin? || @user.thredded_can_moderate_messageboards.include?(@messageboard)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
thredded-0.3.2 app/policies/thredded/messageboard_policy.rb
thredded-0.3.1 app/policies/thredded/messageboard_policy.rb
thredded-0.3.0 app/policies/thredded/messageboard_policy.rb