From 48b8daa397ad069b74738ced7cb950ca34d23d22 Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 3 May 2022 04:52:28 -0500 Subject: [PATCH] posts: add is_taken_down flag. Posts with the is_taken_down flag are "double-banned" and only visible to moderators. --- app/models/post.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index aa26d55f5..7700ad09f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -11,6 +11,7 @@ class Post < ApplicationRecord RESTRICTED_TAGS_REGEX = /(?:^| )(?:#{Danbooru.config.restricted_tags.join("|")})(?:$| )/o deletable + has_bit_flags %w[has_embedded_notes is_taken_down] normalize :source, :normalize_source before_validation :merge_old_changes @@ -1509,8 +1510,6 @@ class Post < ApplicationRecord end end - has_bit_flags ["has_embedded_notes"] - def safeblocked? CurrentUser.safe_mode? && (rating != "s" || Danbooru.config.safe_mode_restricted_tags.any? { |tag| tag.in?(tag_array) }) end @@ -1521,8 +1520,10 @@ class Post < ApplicationRecord end def banblocked?(user = CurrentUser.user) - return false unless is_banned? - (has_tag?("paid_reward") && !user.is_approver?) || !user.is_gold? + return true if is_taken_down? && !user.is_moderator? + return true if is_banned? && has_tag?("paid_reward") && !user.is_approver? + return true if is_banned? && !user.is_gold? + false end def visible?(user = CurrentUser.user)