privacy - add option to disable public activitypub outbox
parent
d9073f132b
commit
bca5a3073f
|
@ -55,8 +55,11 @@ class ActivityPub::OutboxesController < Api::BaseController
|
|||
|
||||
def set_statuses
|
||||
return unless page_requested?
|
||||
|
||||
@statuses = @account.statuses.permitted_for(@account, signed_request_account)
|
||||
if @account&.user && @account.user.hides_public_outbox?
|
||||
@statuses = Status.none
|
||||
else
|
||||
@statuses = @account.statuses.permitted_for(@account, signed_request_account)
|
||||
end
|
||||
@statuses = params[:min_id].present? ? @statuses.paginate_by_min_id(LIMIT, params[:min_id]).reverse : @statuses.paginate_by_max_id(LIMIT, params[:max_id])
|
||||
@statuses = cache_collection(@statuses, Status)
|
||||
end
|
||||
|
|
|
@ -50,6 +50,7 @@ class Settings::PreferencesController < Settings::BaseController
|
|||
:setting_user_is_kobold,
|
||||
:setting_hide_mascot,
|
||||
:setting_hide_interactions,
|
||||
:setting_hide_public_outbox,
|
||||
:setting_max_public_history,
|
||||
|
||||
:setting_default_privacy,
|
||||
|
|
|
@ -33,6 +33,7 @@ class UserSettingsDecorator
|
|||
user.settings['hide_captions'] = hide_captions_preference if change?('setting_hide_captions')
|
||||
user.settings['hide_mascot'] = hide_mascot_preference if change?('setting_hide_mascot')
|
||||
user.settings['hide_interactions'] = hide_interactions_preference if change?('setting_hide_interactions')
|
||||
user.settings['hide_public_outbox'] = hide_public_outbox_preference if change?('setting_hide_public_outbox')
|
||||
user.settings['larger_emoji'] = larger_emoji_preference if change?('setting_larger_emoji')
|
||||
user.settings['max_public_history'] = max_public_history_preference if change?('setting_max_public_history')
|
||||
|
||||
|
@ -116,6 +117,10 @@ class UserSettingsDecorator
|
|||
boolean_cast_setting 'setting_hide_interactions'
|
||||
end
|
||||
|
||||
def hide_public_outbox_preference
|
||||
boolean_cast_setting 'setting_hide_public_outbox'
|
||||
end
|
||||
|
||||
def max_public_history_preference
|
||||
settings['setting_max_public_history']
|
||||
end
|
||||
|
|
|
@ -134,6 +134,7 @@ class Account < ApplicationRecord
|
|||
:always_local_only?,
|
||||
:max_public_history,
|
||||
|
||||
:hides_public_outbox?,
|
||||
:hides_interactions?,
|
||||
:hides_network?,
|
||||
:hides_stats?,
|
||||
|
|
|
@ -122,6 +122,7 @@ class User < ApplicationRecord
|
|||
:hide_mntions_packm8,
|
||||
:hide_mascot,
|
||||
:hide_interactions,
|
||||
:hide_public_outbox,
|
||||
:max_public_history,
|
||||
|
||||
:auto_play_gif,
|
||||
|
@ -285,6 +286,10 @@ class User < ApplicationRecord
|
|||
@hides_interactions ||= (settings.hide_interactions || false)
|
||||
end
|
||||
|
||||
def hides_public_outbox?
|
||||
@hides_public_outbox ||= (settings.hide_public_outbox || false)
|
||||
end
|
||||
|
||||
def max_public_history
|
||||
@_max_public_history ||= (settings.max_public_history || 6)
|
||||
end
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
|
||||
.fields-group
|
||||
= f.input :setting_max_public_history, collection: [1, 3, 6, 7, 14, 30, 60, 90, 180, 365, 730, 1095, 2190], wrapper: :with_label, include_blank: false, label_method: lambda { |item| safe_join([t("simple_form.labels.defaults.setting_max_public_history_#{item}")]) }, selected: current_user.max_public_history.to_i
|
||||
= f.input :setting_hide_public_outbox, as: :boolean, wrapper: :with_label
|
||||
|
||||
- unless Setting.hide_followers_count
|
||||
.fields-group
|
||||
|
|
|
@ -153,6 +153,7 @@ en:
|
|||
setting_favourite_modal: Show confirmation dialog before admiring (in Glitch flavour)
|
||||
setting_hide_followers_count: Hide your packmates count
|
||||
setting_hide_network: Make your packmate lists private
|
||||
setting_hide_public_outbox: Hide your public ActivityPub outbox (affects discoverability)
|
||||
setting_max_public_history: Limit history of roars on public profile to
|
||||
setting_max_public_history_1: 1 day
|
||||
setting_max_public_history_3: 3 days
|
||||
|
|
Loading…
Reference in New Issue