Skip to content

Commit c3d481a

Browse files
committed
Implement follower-only threads
1 parent 1eaaa42 commit c3d481a

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

app/models/comment_thread.rb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
class 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

Comments
 (0)