diff --git a/app/models/post.rb b/app/models/post.rb index 70f3e1038..29645eb87 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1794,11 +1794,11 @@ class Post < ApplicationRecord has_bit_flags BOOLEAN_ATTRIBUTES def safeblocked? - CurrentUser.safe_mode? && (rating != "s" || has_tag?("toddlercon|toddler|diaper|tentacle|rape|bestiality|beastiality|lolita|loli|nude|shota|pussy|penis")) + CurrentUser.safe_mode? && (rating != "s" || Danbooru.config.safe_mode_restricted_tags.any? { |tag| tag.in?(tag_array) }) end def levelblocked? - !Danbooru.config.can_user_see_post?(CurrentUser.user, self) + !CurrentUser.is_gold? && Danbooru.config.restricted_tags.any? { |tag| tag.in?(tag_array) } end def banblocked? @@ -1806,10 +1806,7 @@ class Post < ApplicationRecord end def visible? - return false if safeblocked? - return false if levelblocked? - return false if banblocked? - return true + !safeblocked? && !levelblocked? && !banblocked? end def reload(options = nil) diff --git a/config/danbooru_default_config.rb b/config/danbooru_default_config.rb index 6a0226e38..9cb4b0e44 100644 --- a/config/danbooru_default_config.rb +++ b/config/danbooru_default_config.rb @@ -350,20 +350,14 @@ module Danbooru 20 end - def is_post_restricted?(post) - false + # Tags that are not visible in safe mode. + def safe_mode_restricted_tags + restricted_tags + %w[censored condom nipples nude penis pussy sexually_suggestive] end - def is_user_restricted?(user) - !user.is_gold? - end - - def can_user_see_post?(user, post) - if is_user_restricted?(user) && is_post_restricted?(post) - false - else - true - end + # Tags that are only visible to Gold+ users. + def restricted_tags + [] end def max_appeals_per_day