Project

General

Profile

Anomalie #15651

FIX : notifications d’annotations

Added by Quentin RIBAC over 1 year ago. Updated 12 months ago.

Status:
Développé / Analysé (S)
Priority:
1-Majeur
Target version:
Start date:
12/09/2020
Due date:
02/08/2021
Tags Courrier:

Description

Bonjour,

Les notifications d’annotations ne fonctionnaient pas en sélectionnant le type de diffusion « liste de diffusion », destinataire ou copie.

Version de Maarch Courrier : 20.03.13 chez le client, mais le code n’a pas été modifié après vérification sur le labs en 20.03.16.

Je mets ce ticket comme bloquant car le code actuel envoie parfois des notifications aux mauvaises personnes à propos de courriers ne les concernant pas, ce qui est un problème de confidentialité et de sécurité des données.

De plus, la solution est simple à comprendre et implémenter.

Modifications effectuées :

Pour les notifications AND (utilisateurs destinataires du courrier)

Dans le fichier /modules/notifications/diffusion_types/dest_user.php, lignes 24 à 31 :

case 'notes':
    $from .= ' JOIN notes ON notes.identifier = li.res_id';
    $from .= ' JOIN res_letterbox lb ON lb.res_id = notes.identifier';
    // remplacement de
    // $where .= ' AND notes.id = :recordid AND us.id != notes.user_id'
    // par
    $where .= ' AND notes.identifier = :recordid AND us.id != notes.user_id'
           .' AND ('
           .' notes.id not in (SELECT DISTINCT note_id FROM note_entities) '
           // remplacement de
           // .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN users_entities ue ON ne.item_id = ue.entity_id WHERE ne.note_id = :recordid)'
           // par
           .' OR us.user_id IN (SELECT ue.user_id FROM note_entities ne JOIN users_entities ue ON ne.item_id = ue.entity_id WHERE ne.note_id = notes.id)'
           .')';

:recordid fait référence à un res_id de courrier et non une notes.id.

Il faut donc remplacer notes.id par notes.identifier quand on compare à :recordid pour la cohérence.
Et à la fin de la requête, il faut utiliser l’identifiant de la notes notes.id plutôt que l’identifiant du courrier :recordid pour comparer avec ne.note_id.

La même modification est à appliquer dans le fichier /modules/notifications/diffusion_types/copy_list.php, par deux fois, une fois des lignes 28 à 36, une seconde des lignes 73 à 81.

History

#2 Updated by Support Maarch over 1 year ago

  • Status changed from A qualifier to A traiter

#3 Updated by Emmanuel DILLARD over 1 year ago

  • Status changed from A traiter to Prêt à développer
  • Priority changed from 0-Bloquant to 1-Majeur

#4 Updated by Emmanuel DILLARD over 1 year ago

  • Due date set to 12/14/2020
  • Status changed from Prêt à développer to Etude planifiée

#5 Updated by Emmanuel DILLARD over 1 year ago

  • Status changed from Etude planifiée to Prêt à développer

#6 Updated by Emmanuel DILLARD over 1 year ago

  • Project changed from Backlog to CURRENT SPRINT
  • Due date changed from 12/14/2020 to 02/15/2021
  • Status changed from Prêt à développer to En cours de dev (S)
  • Tags Courrier 20.03.17 added
  • vérifier en 20.10

#7 Updated by Emmanuel DILLARD over 1 year ago

  • Due date changed from 02/15/2021 to 02/08/2021

#8 Updated by Florian AZIZIAN over 1 year ago

  • Assignee deleted (EDI PO)

#9 Updated by Guillaume HEURTIER over 1 year ago

  • Assignee set to Guillaume HEURTIER

#11 Updated by Guillaume HEURTIER over 1 year ago

  • Status changed from En cours de dev (S) to Développé / Analysé (S)

Après analyse, dans cette partie du code :recordid correspond bien à un identifiant de notes, il ne faut donc pas comparer avec le resId.
Vu avec Quentin, l'anomalie initiale est déjà résolu chez le client.

#12 Updated by Emmanuel DILLARD over 1 year ago

  • Project changed from CURRENT SPRINT to Backlog

#13 Updated by Emmanuel DILLARD over 1 year ago

  • Tags Courrier deleted (20.03.17)

#14 Updated by Emmanuel DILLARD 12 months ago

  • Project changed from Backlog to Backlog Courrier
  • Target version changed from 20.03 (Support restreint) to 20.03 (Restreint)

Also available in: Atom PDF