Skip to content
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
Merged

Add moderation warnings #9519

merged 2 commits into from
Dec 22, 2018

Conversation

Gargron
Copy link
Member

@Gargron 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 added work in progress Not to be merged, currently being worked on moderation Administration and moderation tooling labels Dec 14, 2018
@Gargron Gargron force-pushed the feature-moderation-warnings branch 12 times, most recently from 4c58062 to 3a8a955 Compare December 21, 2018 22:27
@Gargron Gargron removed the work in progress Not to be merged, currently being worked on label Dec 21, 2018
@Packbat
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
Copy link
Member Author

Gargron commented Dec 22, 2018

Updated table.

@joyeusenoelle
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 ."

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.
@tribela
Copy link
Contributor

tribela commented Dec 22, 2018

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

@Gargron
Copy link
Member Author

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.

@tribela
Copy link
Contributor

tribela 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)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be time to create a view.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validate the enum and create a constant for future reference?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, right I forgot rails does that!

@Gargron Gargron merged commit 3c033c4 into master Dec 22, 2018
@Gargron Gargron deleted the feature-moderation-warnings branch December 22, 2018 19:02
@Cassolotl
Copy link

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
Copy link
Contributor

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
Copy link
Member Author

Gargron commented Dec 23, 2018

It should be "by", my mistake

@ClearlyClaire
Copy link
Contributor

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

hiyuki2578 pushed a commit to ProjectMyosotis/mastodon that referenced this pull request Oct 2, 2019
* 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.

* Use Account#local_username_and_domain
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
moderation Administration and moderation tooling
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants