diff options
author | ThibG <thib@sitedethib.com> | 2020-03-25 22:40:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-25 22:40:58 +0100 |
commit | f08f880f584271a922a0d8d3759e634d67947d12 (patch) | |
tree | 71b651db208da3c374ad6aab5520524dd890d722 /app | |
parent | 858d0dd168b737a77506d6aa00f6ed582d0e33c6 (diff) |
Fix media not being marked sensitive when client sets a CW but no text (#13277)
Mastodon enforces the “sensitive” flag on media attachments whenever a toot is posted with a Content Warning. However, it does so *after* potentially converting the Content Warning to toot text (when there is no toot text), which leads to inconsistent and surprising behavior for API clients. This commit fixes this inconsistency.
Diffstat (limited to 'app')
-rw-r--r-- | app/services/post_status_service.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index c61b3baa2..0a383d6a3 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -48,6 +48,7 @@ class PostStatusService < BaseService private def preprocess_attributes! + @sensitive = (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present? @text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present? @visibility = @options[:visibility] || @account.user&.setting_default_privacy @visibility = :unlisted if @visibility&.to_sym == :public && @account.silenced? @@ -157,7 +158,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, language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account), |