diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-08-08 09:59:14 -0500 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-08-08 12:46:17 -0500 |
commit | 4dfc40324b1f3b20550982621501e162d2ed3bed (patch) | |
tree | 1578cba8809b7db27dc82f4d439471194d5fad31 /app/helpers/moderation_helper.rb | |
parent | d019e55b7bc496d3c4d942fb4ffe65bb7e149249 (diff) |
add new `reject unknown` policy option to prevent spam & harassment from large/undermoderated servers
Diffstat (limited to 'app/helpers/moderation_helper.rb')
-rw-r--r-- | app/helpers/moderation_helper.rb | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/app/helpers/moderation_helper.rb b/app/helpers/moderation_helper.rb index fda553c37..2f1561772 100644 --- a/app/helpers/moderation_helper.rb +++ b/app/helpers/moderation_helper.rb @@ -1,7 +1,7 @@ module ModerationHelper include LogHelper - POLICIES = %w(silence unsilence suspend unsuspend force_unlisted allow_public force_sensitive allow_nonsensitive reset) + POLICIES = %w(silence unsilence suspend unsuspend force_unlisted mark_known mark_unknown reject_unknown allow_public force_sensitive allow_nonsensitive reset) EXCLUDED_DOMAINS = %w(tailma.ws monsterpit.net monsterpit.cloud monsterpit.gallery monsterpit.blog) def janitor_account @@ -30,6 +30,10 @@ module ModerationHelper end case policy + when 'mark_unknown', 'reject_unknown' + acct.mark_unknown! + when 'mark_known' + acct.mark_known! when 'silence' acct.silence! when 'unsilence' @@ -52,6 +56,7 @@ module ModerationHelper acct.unsilence! acct.allow_public! acct.allow_nonsensitive! + acct.mark_known! end acct.save @@ -77,7 +82,7 @@ module ModerationHelper true end - def domain_policy(domain, policy, reason = nil, force_sensitive = false, reject_media = false, reject_reports = false) + def domain_policy(domain, policy, reason = nil, force_sensitive: false, reject_unknown: false, reject_media: false, reject_reports: false) return if policy.blank? policy = policy.to_s return false unless policy.in?(POLICIES) @@ -87,10 +92,9 @@ module ModerationHelper return false if domain.in?(EXCLUDED_DOMAINS) - if policy == 'force_sensitive' - policy = 'noop' - force_sensitive = true - end + policy = 'noop' if policy == 'force_sensitive' || policy == 'reject_unknown' + force_sensitive = true if policy == 'force_sensitive' + reject_unknown = true if policy == 'reject_unknown' if policy.in? %w(silence suspend force_unlisted) return false unless domain_exists?(domain) @@ -98,6 +102,7 @@ module ModerationHelper domain_block = DomainBlock.find_or_create_by(domain: domain) domain_block.severity = policy domain_block.force_sensitive = force_sensitive + domain_block.reject_unknown = reject_unknown domain_block.reject_media = reject_media domain_block.reject_reports = reject_reports domain_block.reason = reason.strip if reason && !reason.strip.blank? |