Sha256: 49e81992e38fb2a672f689b1cb741559882e40eb74ec7a18afede4681443ca23
Contents?: true
Size: 722 Bytes
Versions: 9
Compression:
Stored size: 722 Bytes
Contents
# frozen_string_literal: true require_dependency 'thredded/private_topic_policy' module Thredded class PrivatePostPolicy # @param user [Thredded.user_class] # @param post [Thredded::PrivatePost] def initialize(user, post) @user = user @post = post end def create? @user.thredded_admin? || @post.postable.users.include?(@user) && !@user.thredded_user_detail.blocked? end def read? PrivateTopicPolicy.new(@user, @post.postable).read? end def update? @user.thredded_admin? || own_post? end def destroy? @post.postable.first_post != @post && update? end private def own_post? @user.id == @post.user_id end end end
Version data entries
9 entries across 9 versions & 1 rubygems