11class CommentThread < ApplicationRecord
2- include PostRelated
3-
2+ include CommunityRelated
3+
4+ belongs_to :post , optional : true
45 has_many :comments
56 has_many :thread_follower
67 belongs_to :locked_by , class_name : 'User' , optional : true
@@ -9,8 +10,8 @@ class CommentThread < ApplicationRecord
910
1011 scope :deleted , -> { where ( deleted : true ) }
1112 scope :undeleted , -> { where ( deleted : false ) }
12- scope :initially_visible , -> { where ( deleted : false , archived : false ) . where ( 'reply_count > 0' ) }
13- scope :publicly_available , -> { where ( deleted : false ) . where ( 'reply_count > 0' ) }
13+ scope :initially_visible , -> { where ( deleted : false , archived : false , is_private : false ) . where ( 'reply_count > 0' ) }
14+ scope :publicly_available , -> { where ( deleted : false , is_private : false ) . where ( 'reply_count > 0' ) }
1415 scope :archived , -> { where ( archived : true ) }
1516
1617 after_create :create_follower
@@ -29,7 +30,7 @@ def followed_by?(user)
2930
3031 def can_access? ( user )
3132 ( !deleted? || user &.privilege? ( 'flag_curate' ) || user &.has_post_privilege? ( 'flag_curate' , post ) ) &&
32- post . can_access? ( user )
33+ ( ! post || post & .can_access? ( user ) ) && ( ! is_private || followed_by? ( user ) )
3334 end
3435
3536 private
0 commit comments