New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add moderation warnings #9519

Merged
merged 2 commits into from Dec 22, 2018

Conversation

Projects
None yet
8 participants
@Gargron
Copy link
Member

Gargron commented Dec 14, 2018

Moderation warnings are meant to formalize the process of warning users about their misconduct prior to harsher measures, so that other staff can track that process. At the same time, the warning system is meant to solve the issue of absolute intransparency about moderation actions concerning your account, i.e. if you are banned, you won't know when and why you were banned.

However, sometimes moderation actions need to be covert, and as such, you can opt to generate no warnings/e-mails when perfming said actions.

In terms of moderation UI, whereas previously, "disable" and "silence" were one-click actions, now they are unified into a form that allows you to enter warning text (or choose from custom presets to save time). That form likewise oversees the "suspend" action, which previously was on a separate page that required you to enter the username of the account for confirmation (that is no longer so).

That new form is not only unified between various actions, but also between actions that are part of a report, and actions taken directly from the account page. Of course, warnings can only be sent to local users.


Action UI:

image

E-mail the user receives:

image

Warning presets UI:

image


Here are the e-mail contents for various action types:

Action Subject Message (above optional custom text)
none Warning for %{acct}
disable Your account %{acct} has been frozen While your account is frozen, your account data remains intact, but you cannot perform any actions until it is unlocked.
silence Your account %{acct} has been limited While your account is limited, only people who are already following you will see your toots on this server, and you may be excluded from various public listings. However, others may still manually follow you.
suspend Your account %{acct} has been suspended Your account has been suspended, and all of your toots and your uploaded media files have been irreversibly removed from this server, and servers where you had followers.

Below this explanation, you can enter custom text, or choose one of the preset options. You can add presets.

The e-mail also contains a link to "review server policies" at /about/more

@Gargron Gargron force-pushed the feature-moderation-warnings branch 12 times, most recently from 4c58062 to 3a8a955 Dec 15, 2018

@Gargron Gargron force-pushed the feature-moderation-warnings branch from 3a8a955 to 1857971 Dec 21, 2018

@Packbat

This comment has been minimized.

Copy link

Packbat commented Dec 21, 2018

I think it would make sense to include account and instance in the subject line and message. Tentative suggestion:

Action Subject Message (above optional custom text)
none Warning for [account]@[instance]  
disable Your account [account]@[instace] has been disabled You have been locked out of your account [account]@[instance]. Your login sessions and app tokens are still intact, but you cannot perform any actions until your account is unlocked.
silence Your account [account]@[instance] has been quarantined While your account [account]@[instance] is quarantined, only people who are already following you will see your toots on this server.
suspend Your account [account]@[instance] has been deleted Your account [account]@[instance] and all of your toots and media attachments have been removed.

@Gargron Gargron force-pushed the feature-moderation-warnings branch from 1857971 to 032339f Dec 22, 2018

@Gargron

This comment has been minimized.

Copy link
Member

Gargron commented Dec 22, 2018

Updated table.

@joyeusenoelle

This comment has been minimized.

Copy link
Contributor

joyeusenoelle commented Dec 22, 2018

Suggest additional text after the custom text, along the lines of:

disable: "Please contact <admin email address> to discuss re-enabling your login."
silence: "Please contact <admin email address> to discuss removing the limit on your account."
suspend: "Your account cannot be recovered. If you return to Mastodon, please choose another server here: https://joinmastodon.org ."

Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.

Additionally, there are warning presets you can configure to save
time when performing the above.
@Kjwon15

This comment has been minimized.

Copy link
Contributor

Kjwon15 commented Dec 22, 2018

What's mean "none"?
Will send email at just reported? or send at mark as solved?

@Gargron Gargron force-pushed the feature-moderation-warnings branch from 032339f to 1b1f184 Dec 22, 2018

@Gargron

This comment has been minimized.

Copy link
Member

Gargron commented Dec 22, 2018

None means no action against the account, allows you to just send a warning e-mail. Sending a warning with no action when coming from a report will mark that particular report as closed.

@Kjwon15

This comment has been minimized.

Copy link
Contributor

Kjwon15 commented Dec 22, 2018

I suggest to send this kind of emails to the reporters.
When I using Twitter's one, It was very not satisfied which not giving any feedback for reportings.

@@ -13,75 +13,42 @@ def show
authorize @report, :show?

@report_note = @report.notes.new
@report_notes = (@report.notes.latest + @report.history).sort_by(&:created_at)
@report_notes = (@report.notes.latest + @report.history + @report.target_account.targeted_account_warnings.latest.custom).sort_by(&:created_at)

This comment has been minimized.

@krainboltgreene

krainboltgreene Dec 22, 2018

Member

Might be time to create a view.

This comment has been minimized.

@Gargron

Gargron Dec 22, 2018

Member

In most cases this is only 4-5 items at most in total. That being said, how do I query a view in Rails?


scope :latest, -> { order(created_at: :desc) }
scope :custom, -> { where.not(text: '') }
end

This comment has been minimized.

@krainboltgreene

krainboltgreene Dec 22, 2018

Member

Validate the enum and create a constant for future reference?

This comment has been minimized.

@Gargron

Gargron Dec 22, 2018

Member

Validate the enum how? I believe the enum can't be set to a value that isn't defined

This comment has been minimized.

@krainboltgreene

krainboltgreene Dec 24, 2018

Member

Oh, right I forgot rails does that!

@Gargron Gargron merged commit 3c033c4 into master Dec 22, 2018

11 checks passed

ci/circleci: build Your tests passed on CircleCI!
Details
ci/circleci: check-i18n Your tests passed on CircleCI!
Details
ci/circleci: install Your tests passed on CircleCI!
Details
ci/circleci: install-ruby2.3 Your tests passed on CircleCI!
Details
ci/circleci: install-ruby2.4 Your tests passed on CircleCI!
Details
ci/circleci: install-ruby2.5 Your tests passed on CircleCI!
Details
ci/circleci: test-ruby2.3 Your tests passed on CircleCI!
Details
ci/circleci: test-ruby2.4 Your tests passed on CircleCI!
Details
ci/circleci: test-ruby2.5 Your tests passed on CircleCI!
Details
ci/circleci: test-webui Your tests passed on CircleCI!
Details
codeclimate All good!
Details

@Gargron Gargron deleted the feature-moderation-warnings branch Dec 22, 2018

@Cassolotl

This comment has been minimized.

Copy link

Cassolotl commented Dec 22, 2018

Is "Notify the user per email" the same meaning as "Notify the user by email"? I've not seen it written that way before.

@danhunsaker

This comment has been minimized.

Copy link
Collaborator

danhunsaker commented Dec 23, 2018

I tend to see/use "via" rather than "by", but agree that "per" seems unusual, and may in fact have a different meaning than intended. ("Per" generally means "in accordance with".)

@Gargron

This comment has been minimized.

Copy link
Member

Gargron commented Dec 23, 2018

It should be "by", my mistake

@ThibG

This comment has been minimized.

Copy link
Collaborator

ThibG commented Dec 23, 2018

Nothing in the admin accounts UI explains that those records are warnings.
screenshot_2018-12-23 tmi - mastodon instance perso de thibg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment