fix: exclude NSFW posts from search, discover, trending, hashtag pages - only allow in following feed + own profile
This commit is contained in:
parent
27b48128fe
commit
8ea63edf8c
|
|
@ -165,7 +165,20 @@ func (r *PostRepository) GetFeed(ctx context.Context, userID string, categorySlu
|
|||
AND NOT public.has_block_between(p.author_id, CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END)
|
||||
AND ($3 = FALSE OR (COALESCE(p.video_url, '') <> '' OR (COALESCE(p.image_url, '') ILIKE '%.mp4')))
|
||||
AND ($5 = '' OR c.slug = $5)
|
||||
AND ($6 = TRUE OR COALESCE(p.is_nsfw, FALSE) = FALSE)
|
||||
AND (
|
||||
COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||
OR (
|
||||
$6 = TRUE
|
||||
AND (
|
||||
p.author_id = CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END
|
||||
OR EXISTS (
|
||||
SELECT 1 FROM public.follows f
|
||||
WHERE f.follower_id = CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END
|
||||
AND f.following_id = p.author_id AND f.status = 'accepted'
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
ORDER BY p.created_at DESC
|
||||
LIMIT $1 OFFSET $2
|
||||
`
|
||||
|
|
@ -758,6 +771,7 @@ func (r *PostRepository) SearchPosts(ctx context.Context, query string, viewerID
|
|||
OR $1 = ANY(p.tags)
|
||||
)
|
||||
AND p.deleted_at IS NULL AND p.status = 'active'
|
||||
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||
AND (
|
||||
p.author_id = CASE WHEN $3 != '' THEN $3::uuid ELSE NULL END
|
||||
OR pr.is_private = FALSE
|
||||
|
|
@ -1307,6 +1321,7 @@ func (r *PostRepository) GetPopularPublicPosts(ctx context.Context, viewerID str
|
|||
WHERE p.deleted_at IS NULL AND p.status = 'active'
|
||||
AND pr.is_private = FALSE
|
||||
AND p.visibility = 'public'
|
||||
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||
ORDER BY (COALESCE(m.like_count, 0) * 2 + COALESCE(m.comment_count, 0) * 5) DESC, p.created_at DESC
|
||||
LIMIT $1
|
||||
`
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ func (r *TagRepository) GetPostsByHashtag(ctx context.Context, hashtagName, view
|
|||
WHERE h.name = $1
|
||||
AND p.deleted_at IS NULL
|
||||
AND p.status = 'active'
|
||||
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||
ORDER BY p.created_at DESC
|
||||
LIMIT $4 OFFSET $5
|
||||
`, normalized, normalized, viewerID, limit, offset)
|
||||
|
|
|
|||
Loading…
Reference in a new issue