Add discoverable_local setting

This commit is contained in:
KMY 2023-08-09 13:21:54 +09:00
parent 88339b3657
commit 790ffc1e4e
7 changed files with 25 additions and 1 deletions

View file

@ -20,7 +20,7 @@ class Settings::ProfilesController < Settings::BaseController
private
def account_params
params.require(:account).permit(:display_name, :note, :bio_markdown, :avatar, :header, :locked, :my_actor_type, :searchability, :dissubscribable, :group_allow_private_message, :discoverable, :hide_collections, fields_attributes: [:name, :value])
params.require(:account).permit(:display_name, :note, :bio_markdown, :avatar, :header, :locked, :my_actor_type, :searchability, :dissubscribable, :group_allow_private_message, :discoverable, :discoverable_local, :hide_collections, fields_attributes: [:name, :value])
end
def set_account

View file

@ -111,6 +111,10 @@ module HasUserSettings
settings['bio_markdown']
end
def setting_discoverable_local
settings['discoverable_local']
end
def setting_display_media
settings['web.display_media']
end

View file

@ -13,6 +13,7 @@ class UserSettings
setting :noindex, default: -> { ::Setting.noindex }
setting :noai, default: true
setting :bio_markdown, default: false
setting :discoverable_local, default: false
setting :hide_statuses_count, default: false
setting :hide_following_count, default: false
setting :hide_followers_count, default: false

View file

@ -96,6 +96,14 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer
end
def discoverable
if object.local?
object.user&.setting_discoverable_local ? false : original_discoverable
else
original_discoverable
end
end
def original_discoverable
object.suspended? ? false : (object.discoverable || false)
end

View file

@ -10,6 +10,11 @@ class UpdateAccountService < BaseService
params.delete(:bio_markdown)
account.user.send(update_method, user_params)
end
if account.user && params.key?(:discoverable_local)
user_params = { settings_attributes: { discoverable_local: params['discoverable_local'] } }
params.delete(:discoverable_local)
account.user.send(update_method, user_params)
end
account.send(update_method, params).tap do |ret|
next unless ret

View file

@ -64,6 +64,10 @@
.fields-group
= f.input :discoverable, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.discoverable'), recommended: true
= f.simple_fields_for :settings, current_user.settings do |ff|
.fields-group
= ff.input :discoverable_local, input_html: { name: 'account[discoverable_local]' }, wrapper: :with_label, kmyblue: true, label: I18n.t('simple_form.labels.defaults.discoverable_local'), hint: I18n.t('simple_form.hints.defaults.discoverable_local')
.fields-group
= f.input :locked, as: :boolean, wrapper: :with_label, hint: t('simple_form.hints.defaults.locked')