Retour d'expérience sur la nouvelle File d'attente de revue (2019)

I’d like to use a webhook to remove spammers from our central database when I delete them in the review queue, but no event is triggered when I set up my webhook like this. Is it supposed to, or do I misunderstand the ‘… and when its status is updated’ part?

1 « J'aime »

Does a “user delete” webhook get triggered?

3 « J'aime »

It does. Unfortunately it’s not passing a deletion and I’d like to specifically only act when a user has been deleted+IP blocked.

1 « J'aime »

I’d like to request the ability to auto-hide images by default, specifically for flagged posts by TL0 users. While there’s the need to see inappropriate images and act on them per each community’s standards, it would be helpful to hide images for those in office settings or working from home with kids around (as I often am).

6 « J'aime »

The API for “bypassing” requiring review queue scoring is still not sufficient over a period of time as the score is recalculated periodically. If the queue is not handled at the time of the reviewable being created, the “forced” item can disappear off of high-filtered lists before moderators can review those items.

Perhaps we should have force-review a boolean on the reviewable that is joined to the score query here.

5 « J'aime »

TL0 user’s images are blurred by default. This can be disabled via the blur_tl0_flagged_posts_media setting.

This is also done. When the force_review flag is set to true, pending reviewables will appear in the queue even if they don’t meet the minimum visibility threshold score.

8 « J'aime »

@Roman - Sorry I haven’t got back to you about this yet. If it is still potentially helpful, I’ve got the logs and pulled out some records (cleansed of identifying info). Running currently on 2.6.0beta3. All the integer out of range errors seem to be for the same type of records.

2020-11-26 06:02:13.009 UTC [25408] discourse@discourse ERROR:  integer out of range
2020-11-26 06:02:13.009 UTC [25408] discourse@discourse STATEMENT:  INSERT INTO "notifications" ("notification_type", "user_id", "data", "created_at", "updated_at", "topic_id", "post_number") VALUES (9, 1533, '{"topic_title":"{private info removed}","original_post_id":17769856,"original_post_type":1,"original_username":"{private info removed}","revision_number":null,"display_username":"{private info removed}"}', '2020-11-26 06:02:13.008758', '2020-11-26 06:02:13.008758', 1333533, 4) RETURNING "id"
2020-11-26 06:02:13.038 UTC [29728] discourse@discourse ERROR:  integer out of range
2020-11-26 06:02:13.038 UTC [29728] discourse@discourse STATEMENT:  INSERT INTO "notifications" ("notification_type", "user_id", "data", "created_at", "updated_at", "topic_id", "post_number") VALUES (9, 1533, '{"topic_title":"{private info removed}","original_post_id":17725230,"original_post_type":1,"original_username":"{private info removed}","revision_number":null,"display_username":"{private info removed}"}', '2020-11-26 06:02:13.037676', '2020-11-26 06:02:13.037676', 1313715, 38) RETURNING "id"
2020-11-26 06:02:13.052 UTC [27579] discourse@discourse ERROR:  integer out of range
2020-11-26 06:02:13.052 UTC [27579] discourse@discourse STATEMENT:  INSERT INTO "notifications" ("notification_type", "user_id", "data", "created_at", "updated_at", "topic_id", "post_number") VALUES (9, 1533, '{"topic_title":"{private info removed}","original_post_id":17713480,"original_post_type":1,"original_username":"{private info removed}","revision_number":null,"display_username":"{private info removed}"}', '2020-11-26 06:02:13.051222', '2020-11-26 06:02:13.051222', 1314869, 237) RETURNING "id"
2020-11-26 06:02:13.149 UTC [27554] discourse@discourse ERROR:  integer out of range
2020-11-26 06:02:13.149 UTC [27554] discourse@discourse STATEMENT:  INSERT INTO "notifications" ("notification_type", "user_id", "data", "created_at", "updated_at", "topic_id", "post_number") VALUES (9, 180552, '{"topic_title":"{private info removed}","original_post_id":17713479,"original_post_type":1,"original_username":"{private info removed}","revision_number":null,"display_username":"{private info removed}"}', '2020-11-26 06:02:13.148264', '2020-11-26 06:02:13.148264', 1313773, 48) RETURNING "id"
2020-11-26 06:02:13.170 UTC [28970] discourse@discourse ERROR:  integer out of range
2020-11-26 06:02:13.170 UTC [28970] discourse@discourse STATEMENT:  INSERT INTO "notifications" ("notification_type", "user_id", "data", "created_at", "updated_at", "topic_id", "post_number") VALUES (9, 46891, '{"topic_title":"{private info removed}","original_post_id":17760644,"original_post_type":1,"original_username":"{private info removed}","revision_number":null,"display_username":"{private info removed}"}', '2020-11-26 06:02:13.168959', '2020-11-26 06:02:13.168959', 1328670, 25) RETURNING "id"
1 « J'aime »

It could also be nice to have a way to see a list of reviewables that have been reviewed, filtered by the moderator that handled flags - “assigned to” as a filter when looking in past handled flags seems to be very similar semantically to someone looking for a “handled by” filter but it is different.

Should “assigned to” with resolved flags/reviewables query who handled flags, or can this be a separate filter?

4 « J'aime »

I think this is a great suggestion @Roman - can you add to your list?

5 « J'aime »

J’utilise un webhook et l’API pour ajouter de nouveaux sujets à la file d’attente de modération, afin que les modérateurs puissent vérifier leur conformité. Actuellement, je signale le premier message d’un nouveau sujet via l’API. Cela fonctionne, mais cela donne une mauvaise impression lorsqu’on consulte l’historique d’administration de l’utilisateur. Existe-t-il une autre méthode qui ne nuise pas à la réputation de l’utilisateur ?

1 « J'aime »

Y a-t-il une raison pour laquelle vous ne pouvez pas utiliser approuver les nouveaux sujets sauf niveau de confiance ? Cette fonctionnalité est intégrée à Discourse.

2 « J'aime »

Je conviens que cela fonctionnerait pour de nombreux cas d’usage. Nous avons besoin d’étiquettes provenant de plusieurs groupes d’étiquettes, ce qui n’est pas pris en charge par Discourse. Nous souhaitons autoriser le nouveau sujet sans approbation, tout en veillant à ce que les étiquettes soient correctes selon le temps disponible.

Je pense que ce que je propose, c’est un moyen de placer des éléments arbitraires dans la file d’examen. Actuellement, trois types sont pris en charge : publication signalée, publication en file d’attente et utilisateur. Nous détournons la publication signalée car c’est ce qui se rapproche le plus de ce que nous voulons, mais il serait agréable de pouvoir ajouter un élément « examiner les étiquettes » dans la file d’examen, même si nous ne pouvons le faire que via l’API.

1 « J'aime »

Il n’y a pas de moyen simple de faire ce que vous voulez.

La meilleure façon de procéder serait de créer un plugin qui ajoute un nouveau type révisable, ainsi qu’un certain type de point de terminaison pour les créer.

1 « J'aime »

Y a-t-il un moyen de désactiver cette boîte de dialogue ? Nous rejetons presque exclusivement les spammeurs, et cela ajoute simplement un clic à notre flux de travail :

3 « J'aime »

J’ai posté à propos du même problème ici : Account rejection email - #11 by simon.

3 « J'aime »

Lorsque le motif de rejet est lié au spam, nous n’avons absolument pas besoin de cette boîte de dialogue @sam @Roman..

2 « J'aime »

Existe-t-il un moyen d’ajouter un élément révisable de type « User » à la file d’examen via l’API ? Ou cela n’est-il accessible qu’au code qui crée un nouvel utilisateur ?

Mon cas d’usage est le suivant : je souhaite que les modérateurs examinent toutes les mises à jour des utilisateurs afin de s’assurer qu’elles sont conformes à la politique. J’ai donc un webhook user_updated et je souhaite ajouter l’utilisateur mis à jour à la file d’examen.

Je parviens à déduire comment signaler un message (/post_actions…) en signalant manuellement un message et en surveillant le trafic réseau, mais je ne sais pas comment procéder de la même manière pour un User. J’imagine que cela ressemble à /user_actions…

1 « J'aime »

Il n’est pas possible de le faire via l’API pour le moment. Je pense que vous devrez ajouter un plugin qui intercepte une mise à jour d’un utilisateur et crée un élément révisable.

2 « J'aime »

2 messages ont été déplacées vers un nouveau sujet : Répondre aux approbations de messages

Salut, ceci est une critique constructive de la file d’attente de révision.

Je sais que des améliorations ont été apportées aux boutons « Rejeter / Approuver » pour les rendre moins ambigus (« Est-ce que j’approuve le message ou est-ce que j’approuve le signalement ? »). Mais il y a toujours une double signification à ces statuts, ce qui rend la révision de la liste des éléments déjà traités assez confuse pour moi car le filtre Statut et le Statut en haut à droite n’ont pas vraiment de sens. Voici quelques exemples :

Message approuvé signalé pour avoir tapé trop vite – > Message approuvé → Statut : Approuvé

Signalement approuvé sur un message inapproprié → Message rejeté → Statut : Approuvé

Utilisateur rejeté pour spam de profil → Utilisateur suspendu → Statut : Rejeté

Signalement rejeté sur un message → Message conservé → Statut : Rejeté

Il semble donc qu’il faille différencier les statuts suivants, et certains éléments pourraient avoir les deux :

  • Utilisateur/message approuvé
  • Utilisateur/message rejeté
    ---
  • Modération approuvée
  • Modération rejetée

Une autre suggestion d’amélioration dans le cas des spammeurs de profils utilisateurs, j’apprécierais une option pour supprimer le compte et bloquer l’adresse e-mail mais pas l’adresse IP, car ils utilisent souvent des plages d’adresses IP partagées que des utilisateurs légitimes pourraient également utiliser.

1 « J'aime »