Add disallow unlisted-public post setting

This commit is contained in:
KMY 2023-07-04 16:32:35 +09:00
parent 8a6e52bd25
commit 2196665969
6 changed files with 13 additions and 0 deletions

View file

@ -171,6 +171,10 @@ module HasUserSettings
settings['default_searchability'] || 'private'
end
def setting_disallow_unlisted_public_searchability
settings['disallow_unlisted_public_searchability']
end
def allows_report_emails?
settings['notification_emails.report']
end

View file

@ -21,6 +21,7 @@ class UserSettings
setting :default_privacy, default: nil
setting :default_reblog_privacy, default: nil
setting :default_searchability, default: :direct
setting :disallow_unlisted_public_searchability, default: false
setting :public_post_to_unlisted, default: false
setting :reject_public_unlisted_subscription, default: false
setting :reject_unlisted_subscription, default: false

View file

@ -83,6 +83,8 @@ class PostStatusService < BaseService
end
def searchability
return :private if @options[:searchability]&.to_sym == :public && @visibility&.to_sym == :unlisted && @account.user&.setting_disallow_unlisted_public_searchability
case @options[:searchability]&.to_sym
when :public
case @visibility&.to_sym when :public, :public_unlisted, :login, :unlisted then :public when :private then :private else :direct end

View file

@ -36,6 +36,9 @@
.fields-group
= ff.input :'web.enable_login_privacy', wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_enable_login_privacy'), hint: false
.fields-group
= ff.input :disallow_unlisted_public_searchability, wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_disallow_unlisted_public_searchability'), hint: I18n.t('simple_form.hints.defaults.setting_disallow_unlisted_public_searchability')
.fields-group
= ff.input :public_post_to_unlisted, wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.setting_public_post_to_unlisted'), hint: I18n.t('simple_form.hints.defaults.setting_public_post_to_unlisted')