Skip to content
Snippets Groups Projects
Commit c42092ba authored by Eugen Rochko's avatar Eugen Rochko Committed by GitHub
Browse files

Add option to opt out of search engines on public profile/status pages (#4199)

parent 999170d8
No related branches found
No related tags found
No related merge requests found
......@@ -39,6 +39,7 @@ class Settings::PreferencesController < ApplicationController
:setting_delete_modal,
:setting_auto_play_gif,
:setting_system_font_ui,
:setting_noindex,
notification_emails: %i(follow follow_request reblog favourite mention digest),
interactions: %i(must_be_follower must_be_following)
)
......
......@@ -23,6 +23,7 @@ class UserSettingsDecorator
user.settings['delete_modal'] = delete_modal_preference
user.settings['auto_play_gif'] = auto_play_gif_preference
user.settings['system_font_ui'] = system_font_ui_preference
user.settings['noindex'] = noindex_preference
end
def merged_notification_emails
......@@ -57,6 +58,10 @@ class UserSettingsDecorator
boolean_cast_setting 'setting_auto_play_gif'
end
def noindex_preference
boolean_cast_setting 'setting_noindex'
end
def boolean_cast_setting(key)
settings[key] == '1'
end
......
......@@ -99,6 +99,10 @@ class User < ApplicationRecord
settings.system_font_ui
end
def setting_noindex
settings.noindex
end
def activate_session(request)
session_activations.activate(session_id: SecureRandom.hex,
user_agent: request.user_agent,
......
......@@ -2,6 +2,9 @@
= display_name(@account)
- content_for :header_tags do
- if @account.user&.setting_noindex
%meta{ name: 'robots', content: 'noindex' }/
%link{ rel: 'salmon', href: api_salmon_url(@account.id) }/
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_url(@account, format: 'atom') }/
......
......@@ -2,6 +2,9 @@
= t('accounts.people_who_follow', name: display_name(@account))
- content_for :header_tags do
- if @account.user&.setting_noindex
%meta{ name: 'robots', content: 'noindex' }/
= render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
= render 'accounts/header', account: @account
......
......@@ -2,6 +2,9 @@
= t('accounts.people_followed_by', name: display_name(@account))
- content_for :header_tags do
- if @account.user&.setting_noindex
%meta{ name: 'robots', content: 'noindex' }/
= render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
= render 'accounts/header', account: @account
......
......@@ -2,6 +2,8 @@
%html{ lang: I18n.locale }
%head
%meta{ charset: 'utf-8' }/
%meta{ name: 'robots', content: 'noindex' }/
= stylesheet_pack_tag 'common', media: 'all'
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
......
......@@ -40,6 +40,9 @@
= ff.input :must_be_follower, as: :boolean, wrapper: :with_label
= ff.input :must_be_following, as: :boolean, wrapper: :with_label
.fields-group
= f.input :setting_noindex, as: :boolean, wrapper: :with_label
.fields-group
= f.input :setting_boost_modal, as: :boolean, wrapper: :with_label
= f.input :setting_delete_modal, as: :boolean, wrapper: :with_label
......
- content_for :header_tags do
- if @account.user&.setting_noindex
%meta{ name: 'robots', content: 'noindex' }/
%link{ rel: 'alternate', type: 'application/atom+xml', href: account_stream_entry_url(@account, @stream_entry, format: 'atom') }/
%link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: account_stream_entry_url(@account, @stream_entry), format: 'json') }/
......
......@@ -12,6 +12,7 @@ en:
note:
one: <span class="note-counter">1</span> character left
other: <span class="note-counter">%{count}</span> characters left
setting_noindex: Affects your public profile and status pages
imports:
data: CSV file exported from another Mastodon instance
sessions:
......@@ -41,6 +42,7 @@ en:
setting_default_sensitive: Always mark media as sensitive
setting_delete_modal: Show confirmation dialog before deleting a toot
setting_system_font_ui: Use system's default font
setting_noindex: Opt-out of search engine indexing
severity: Severity
type: Import type
username: Username
......
......@@ -21,6 +21,7 @@ defaults: &defaults
auto_play_gif: false
delete_modal: true
system_font_ui: false
noindex: false
notification_emails:
follow: false
reblog: false
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment