From 3b06175e8f5cb9d688e8ec376dbfd88abf5f3278 Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Fri, 10 May 2019 03:48:11 -0500 Subject: Moderation: add `force sensitive` and `force unlisted` actions. Accounts: add federatable `adult content` tag. Handle from remote accounts as well. --- app/services/post_status_service.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'app/services/post_status_service.rb') diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index d54f9295e..5a73b541f 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -30,6 +30,7 @@ class PostStatusService < BaseService @in_reply_to = @options[:thread] @tags = @options[:tags] @local_only = @options[:local_only] + @sensitive = (@account.force_sensitive? ? true : @options[:sensitive]) return idempotency_duplicate if idempotency_given? && idempotency_duplicate? @@ -58,7 +59,7 @@ class PostStatusService < BaseService end @visibility = @options[:visibility] || @account.user&.setting_default_privacy - @visibility = :unlisted if @visibility == :public && @account.silenced? + @visibility = :unlisted if @visibility.in?([nil, 'public']) && @account.silenced? || @account.force_unlisted if @in_reply_to.present? && @in_reply_to.visibility.present? v = %w(public unlisted private direct limited) @@ -67,6 +68,8 @@ class PostStatusService < BaseService @local_only = true if @account.user_always_local? || @in_reply_to&.local_only + @sensitive = (@account.default_sensitive? || @options[:spoiler_text].present?) if @sensitive.nil? + @scheduled_at = @options[:scheduled_at]&.to_datetime @scheduled_at = nil if scheduled_in_the_past? rescue ArgumentError @@ -176,7 +179,7 @@ class PostStatusService < BaseService media_attachments: @media || [], thread: @in_reply_to, poll_attributes: poll_attributes, - sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?, + sensitive: @sensitive, spoiler_text: @options[:spoiler_text] || '', visibility: @visibility, local_only: @local_only, -- cgit