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

Un message modifié par son auteurice puis modéré est présenté comme modifié par le membre l’ayant modéré #6575

Open
AmauryCarrade opened this issue Jan 16, 2024 · 3 comments
Labels
C-Front Concerne l'interface du site S-BUG Corrige un problème

Comments

@AmauryCarrade
Copy link
Member

AmauryCarrade commented Jan 16, 2024

Description du bug

Lorsqu'un message est modifié par son auteur ou autrice initiale, puis modéré (masqué) par un·e membre, le texte « Modifié par… » au dessus du message indique qu'il a été modifié par le ou la modératrice. Si on clique sur le lien pour voir l’historique (auteurice ou modérateurice uniquement), on constate que ce n'est pas le cas.

On peut observer (si on a les droits de modération) un exemple réel ici.

Le bug est également présent si l’on est connecté·e comme simple membre, ou si l’on est déconnecté·e. Dans un tel cas, il n'y a aucun moyen de savoir que c'est une information erronée, car on n'a pas accès à l'historique de modification.

Comment reproduire ?

La liste des étapes qui permet de reproduire le bug :

  1. Comme utilisateurice normal·e :
    1. poster un message quelque part (potentiellement, que là où les modifications sont historisées, potentiellement pas) ;
    2. modifier ce message.
  2. Comme modérateurice :
    1. Modérer (masquer) le-dit message.

Comportement attendu

Le message est masqué, et le ou la modératrice est correctement attribuée de ce fait ; le message est juste marqué comme “Modifié” — et non comme “Modifié par <le ou la modératrice>”.

Capture d'écran

Voici le bug reproduit en image. Tout d'abord, voici le message sus-donné comme exemple, tel que visible actuellement.

Message sur le forum par rougeliste2 daté de dimanche 7 janvier, et marqué comme modifié par Gabbro. Le message est masqué par Gabbro. Son contenu n'est pas visible. En dessous, on voit un signalement résolu de Situphen avec comme message “lien spam”, daté du 11 janvier.

Voici ensuite, la liste des modifications si l’on clique sur le lien.

La liste des modifications, une le 7 et une le 10 janvier, les deux par rougeliste2.

Informations techniques

  • OS : macOS 14.2.1
  • Navigateur : Firefox 122.0b8
  • Version/environnement de ZdS : production
@AmauryCarrade AmauryCarrade added S-BUG Corrige un problème C-Front Concerne l'interface du site labels Jan 16, 2024
@AmauryCarrade AmauryCarrade changed the title Un message modéré modifié par son auteurice est présenté comme modifié par le membre l'ayant modéré Un message modifié par son auteurice puis modéré est présenté comme modifié par le membre l’ayant modéré Jan 16, 2024
@Situphen
Copy link
Member

Situphen commented Jan 16, 2024

J'ai regardé un peu dans le code et c'est géré à deux endroits (ce qui n'est pas optimal mais c'est un autre sujet).

Pour les messages du forum :

def perform_hide_message(request, post, user, data):
is_staff = user.has_perm("forum.change_post")
if post.author == user or is_staff:
for alert in post.alerts_on_this_comment.all():
alert.solve(user, _("Le message a été masqué."))
post.is_visible = False
post.editor = user
post.text_hidden = data.get("text_hidden", "")
messages.success(request, _("Le message est désormais masqué."))
for user in Notification.objects.get_users_for_unread_notification_on(post):
signals.topic_read.send(sender=post.topic.__class__, instance=post.topic, user=user)
else:
raise PermissionDenied

Pour les commentaires :

def hide_comment_by_user(self, user, text_hidden):
"""Hide a comment and save it
:param user: the user that hid the comment
:param text_hidden: the hide reason
:return:
"""
self.is_visible = False
self.text_hidden = text_hidden
self.editor = user
self.save()

On y voit en effet que c'est l'auteur de l'action de masquage qui est marqué comme "éditeur" du message dans la base de données.

Pour modifier cette situation, il faudrait d'une part modifier ces bouts de code mais aussi faire une passe sur tous les messages actuellement en base de données pour corriger éventuellement les "éditeurs" des messages. Un gros chantier !

Alternativement, on pourrait ne plus stocker cette notion en base de données et la calculer à la volée, mais niveau performance ce ne serait pas idéal.

Bref, je ne pense pas que ce sera fait d'aussitôt !

@AmauryCarrade
Copy link
Member Author

Merci pour l'investigation !

J'aurais tendance à penser que le plus propre serait d'avoir :

  • un nouveau champ moderator pour identifier la personne ayant effectué un acte de modération pour la dernière fois ;
  • une migration analysant l'historique d'édition pour remettre les bons éditeurs (ce qui ne devrait pas être trop complexe non plus, en soit : il suffit de prendre le dernier enregistrement correspondant au-dit message s'il existe, et de ne rien toucher sinon, pour prendre en compte les vieux messages qui n'ont pas d'historique).

Par contre, ce n'est vraiment pas prioritaire vu que le bug est très peu gênant en pratique — ce serait si quelqu'un est motivé·e :p

Ça pourrait faire un ticket facile !

@AmauryCarrade AmauryCarrade added this to À analyser in Triage des tickets pour débutant via automation Jan 17, 2024
@AmauryCarrade AmauryCarrade moved this from À analyser to À prémâcher in Triage des tickets pour débutant Jan 17, 2024
@Situphen
Copy link
Member

Il y a l'écriture de la migration à prévoir donc pas sûr qu'on puisse considérer ce ticket facile :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-Front Concerne l'interface du site S-BUG Corrige un problème
Projects
Status: À traiter
Development

No branches or pull requests

2 participants