Sha256: 6456a8e719bcf31fd29ec0a58fc711ac5951d23332f209194b740c055203b691
Contents?: true
Size: 703 Bytes
Versions: 3
Compression:
Stored size: 703 Bytes
Contents
# frozen_string_literal: true module Thredded class PostPolicy # @param user [Thredded.user_class] # @param post [Thredded::Post] def initialize(user, post) @user = user @post = post end def create? @user.thredded_admin? || !@post.postable.locked? && messageboard_policy.post? end def update? @user.thredded_admin? || own_post? || messageboard_policy.moderate? end def destroy? @post.postable.first_post != @post && update? end private def messageboard_policy @messageboard_policy ||= MessageboardPolicy.new(@user, @post.messageboard) end def own_post? @user.id == @post.user_id end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
thredded-0.3.2 | app/policies/thredded/post_policy.rb |
thredded-0.3.1 | app/policies/thredded/post_policy.rb |
thredded-0.3.0 | app/policies/thredded/post_policy.rb |