Skip to content

Commit

Permalink
Change “privacy and reach” settings so that unchecking boxes always i…
Browse files Browse the repository at this point in the history
…ncrease privacy and checking them always increase reach (mastodon#26508)
  • Loading branch information
ClearlyClaire authored Aug 17, 2023
1 parent 0446394 commit cc4560d
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
2 changes: 1 addition & 1 deletion app/controllers/settings/privacy_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ def update
private

def account_params
params.require(:account).permit(:discoverable, :locked, :hide_collections, settings: UserSettings.keys)
params.require(:account).permit(:discoverable, :unlocked, :show_collections, settings: UserSettings.keys)
end

def set_account
Expand Down
13 changes: 13 additions & 0 deletions app/models/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -442,8 +442,21 @@ def from_text(text)
EntityCache.instance.mention(username, domain)
end
end

def inverse_alias(key, original_key)
define_method("#{key}=") do |value|
public_send("#{original_key}=", !ActiveModel::Type::Boolean.new.cast(value))
end

define_method(key) do
!public_send(original_key)
end
end
end

inverse_alias :show_collections, :hide_collections
inverse_alias :unlocked, :locked

def emojis
@emojis ||= CustomEmoji.from_text(emojifiable_text, domain)
end
Expand Down
4 changes: 2 additions & 2 deletions app/views/settings/privacy/show.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
= f.input :discoverable, as: :boolean, wrapper: :with_label, recommended: true

.fields-group
= f.input :locked, as: :boolean, wrapper: :with_label
= f.input :unlocked, as: :boolean, wrapper: :with_label

%h4= t('privacy.search')

Expand All @@ -33,7 +33,7 @@
%p.lead= t('privacy.privacy_hint_html')

.fields-group
= f.input :hide_collections, as: :boolean, wrapper: :with_label
= f.input :show_collections, as: :boolean, wrapper: :with_label

= f.simple_fields_for :settings, current_user.settings do |ff|
.fields-group
Expand Down
8 changes: 4 additions & 4 deletions config/locales/simple_form.en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ en:
discoverable: Your public posts and profile may be featured or recommended in various areas of Mastodon and your profile may be suggested to other users.
display_name: Your full name or your fun name.
fields: Your homepage, pronouns, age, anything you want.
hide_collections: People will not be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
locked: People will request to follow you and you will be able to either accept or reject new followers.
note: 'You can @mention other people or #hashtags.'
show_collections: People will be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
unlocked: People will be able to follow you without requesting approval. Uncheck if you want to review follow requests and chose whether to accept or reject new followers.
account_alias:
acct: Specify the username@domain of the account you want to move from
account_migration:
Expand Down Expand Up @@ -143,8 +143,8 @@ en:
fields:
name: Label
value: Content
hide_collections: Hide follows and followers from profile
locked: Manually review new followers
show_collections: Show follows and followers on profile
unlocked: Automatically accept new followers
account_alias:
acct: Handle of the old account
account_migration:
Expand Down

0 comments on commit cc4560d

Please sign in to comment.