rafalp / Misago

Misago is fully featured modern forum application that is fast, scalable and responsive.
http://misago-project.org
GNU General Public License v2.0
2.49k stars 521 forks source link

Content reporting #484

Open rafalp opened 9 years ago

rafalp commented 9 years ago

There should be a way to flag posts/private thread posts and user profiles for moderators to address.

CyberFox001 commented 1 year ago

Hello,

At our association, we plan to use Misago as our forum.

We will be interested to develop this feature and do it as an upstream contribution.

Is this features still wanted ?

If yes, do you have any requirement ?

rafalp commented 1 year ago

Hey, thanks for offering help here. I was thinking about implementing reports only after I've simplified user permissions but that's not a blocker.

My plan for this feature was to first research current state of art for reporting content. For example, some places use "report" but other use "flag". Which one should Misago use?

Next thing to research would be, what content should support reporting? Is it good enough to report posts only? But what if I spot a user with offensive avatar in search result, who never posted? Then I have to post a public thread or reach with private message to one of forum staff. Option for reporting users would be useful too.

So likely we would want to have following models:

Extra questions:

CyberFox001 commented 1 year ago

I'm not a expert in moderation, so my answer is only suggestions.

For the name, "report" or "flag", I don't know. But "report" seems more talking to me about what the action does. Like "Ask for moderation".

On the question "What can be reported", I think "Anything a user can create". So, report posts and users accounts is a good thing.

About the models you suggest, why do you think to make reason separate from report ?

What should happen when report reason is deleted by admin but it has reports?

Maybe auto-delete reports with no more reasons ?

How long should reports be stored?

I think, in the first version, as long as admins or moderators don't delete themes. Maybe we can add an action to delete all report older than a selected date ?

What states should reports have?

Maybe:

How should forum notify team members about new reports?

It's a good question. On our old forum, we are notified by emails. We also have an RSS feed for all new posts and the moderator teams look at it for spam.

Should users report same content multiple times? Should there be an anti-flood limit preventing users from opening more than some reports in given time?

Maybe an option for administrators/moderators to "silence" a user who flood the report system ?

What to do when moderator closes report but reporter is unhappy with resolution?

Maybe an option for the user to ask a second opinion from another moderator ? In this case, it would require 2 closes from 2 different moderators

When a report is accepted, I think of multiple actions that can be done by administrator/moderators directly from the report:

rafalp commented 1 year ago

About the models you suggest, why do you think to make reason separate from report?

Because that way you have cheap filtering by standard report reason in potential admin panel.

Maybe auto-delete reports with no more reasons?

IMHO reasons and reports should be one to many relation (report would have foreign key to a reason), and deleting a reason should either be prohibited if there are reports for given reason, or should delete reports together with a reason.

Maybe we can add an action to delete all report older than a selected date?

Seems ok, but should only apply for "resolved" reports. And should be an opt-in.

Submitted Accepted Closed

What would those statuses mean?

It's a good question. On our old forum, we are notified by emails. We also have an RSS feed for all new posts and the moderator teams look at it for spam.

Misago now has notifications framework, so we can use that for sending notifications.

But there is no moderators list anywhere in Misago that we could use to get the list of users that should be notified. In v4 I've had user groups and category_moderator table that held category_id, group_id, user_id columns, so pulling moderators to notify was as simple as pulling all users that intersect for reported post's category/group/user. I would like to get this part fleshed out even if in minimal state before we start work on reports.

Maybe an option for administrators/moderators to "silence" a user who flood the report system?

Makes sense. It may be a flag on user account (like there's already one for locking avatars and other for signatures). I also like this because then we can have an easy filter for users banned from reporting content.

I am also thinking there should be an anti-flood system for reports like "one report per 5 seconds". There are humans, and there are bots talking to API.

Maybe an option for the user to ask a second opinion from another moderator ? In this case, it would require 2 closes from 2 different moderators

I don't like extra complexity this includes. I would consider having admin setting like "let users report same content multiple times" or don't do this settings at all and just leave it to moderators to decide what they want to do when users keeps pooping reports.

When a report is accepted, I think of multiple actions that can be done by administrator/moderators directly from the report:

This is out of scope of reports IMHO. Misago already has moderator tools for user content and accounts, so its up to moderator to decide what they want to do after seeing the report.

We could tie moderator action with report and have fancy UI for resolution, but that feels like extra complexity. Misago could store separate log of moderator actions instead, and have simple text-area to let moderator enter resolution message if they want to, eg. "I've closed this user's account. Thanks for report!"

CyberFox001 commented 1 year ago

Because that way you have cheap filtering by standard report reason in potential admin panel.

Ah, ReportReason are the category of a report ?

Seems ok, but should only apply for "resolved" reports. And should be an opt-in.

I was thinking of a manual action, triggered by moderators with a button in reports list UI. Do you think of an automated action, run by cron ?

Submitted
Accepted
Closed

What would those statuses mean?

This is out of scope of reports IMHO. Misago already has moderator tools for user content and accounts, so its up to moderator to decide what they want to do after seeing the report.

Yes, but on the UX side, it's better if you can do the moderation actions in relation to the report from the report page or the reports list page ?

I was thinking about 2 other points.

On the user side: Users need a feedback about their reports. So, they would need an UI where they can see all their own reports, their status and what action have been taken. And if a moderator refuse a report, user need to know why.

What moderators do when the report made by user is unclear and need more explanation ? Or when moderators need explanations from reported user ? Do we add a button "Start a discussion in PM with AAA user" ?

rafalp commented 1 year ago

Ah, ReportReason are the category of a report ?

Correct, basically those:

Zrzut ekranu 2023-05-22 o 15 13 46

Submitted: When a user create the report Accepted: When an administrator accepted the report and take action Closed: When the report is refused and no action have been taken

I would use NEW, RESOLVED, REJECTED for new, handled by moderator and rejected by moderator as invalid. This is how Misago did it in past.

Yes, but on the UX side, it's better if you can do the moderation actions in relation to the report from the report page or the reports list page ?

Sadly, this is a massive amount of work as every moderation action in Misago would need to be connected to content reporting system.

On the user side: Users need a feedback about their reports. So, they would need an UI where they can see all their own reports, their status and what action have been taken. And if a moderator refuse a report, user need to know why.

What moderators do when the report made by user is unclear and need more explanation ? Or when moderators need explanations from reported user ? Do we add a button "Start a discussion in PM with AAA user" ?

Let's not think about those for MVP. I think most forums have so little activity forum staff and posters can reach to each other via private thread or asking in public why something is or isn't done.