Project

General

Profile

Anomalie #2977

Impossible d'effacer les messages

Added by Sashimi Wakamé over 6 years ago. Updated over 6 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
04/14/2013
Due date:
% Done:

0%

Resolution:
Navigateur:

Description

Soit un émetteur A qui envoie un message à un destinataire B.

1- Le destinataire B visualise le message dans sa boite de réception et l'émetteur A le visualise dans sa boite d'envoi.
2- Le destinataire B efface le message reçu qui disparait de sa boite de réception.

1er bug ?? Le message est toujours visible dans la boite d'envoi de A mais maintenant également visible dans la boite de réception de A.
2ème bug = A ce niveau la suppression du message par A n'est pas possible malgré la présence du bouton supprimer.

History

#1 Updated by Sashimi Wakamé over 6 years ago

Ooops ! sur un SPIP 3.0.7 [20352]

#2 Updated by b b over 6 years ago

1er bug ?? Le message est toujours visible dans la boite d'envoi de A mais maintenant également visible dans la boite de réception de A.

Je ne reproduis pas sous SPIP 3.0.7 SVN [20415], le message est bien visible dans la boite d'envoi de A (l’émetteur) mais pas dans la boite de réception de B (le destinataire).

2ème bug = A ce niveau la suppression du message par A n'est pas possible malgré la présence du bouton supprimer.

Ça je reproduis, cela vient de ces modifications :

http://zone.spip.org/trac/spip-zone/changeset/50367/

Le problème viens du fait que l'action supprimer_message passe par l'API générique editer_objet :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/action/supprimer_message.php?rev=#L30

Du coup, on passe les autorisations "classiques" de SPIP comme on peut le voir dans les logs :

Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: autoriser_message_supprimer_dist(supprimer,message,5,bruno): OK
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: include_spip action/editer_message.php non trouve
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: include_spip base/message_test_si_publie.php non trouve
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: autoriser instituer message 5 (bruno) ?
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: autoriser modifier message 5 (bruno) ?
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: autoriser_message_modifier_dist(modifier,message,5,bruno): niet
Apr 14 17:51:27 127.0.0.1 (pid 7309) :Pri:info: autoriser_message_instituer_dist(instituer,message,5,bruno): niet

Voilà un patch qui corrige les autorisations pour prendre cela en compte :

--- plugins-dist/organiseur/organiseur_autoriser.php.geanyvc.~BASE~
+++ plugins-dist/organiseur/organiseur_autoriser.php
@@ -44,6 +44,9 @@
 }

 function autoriser_message_instituer_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){
+    // rediriger vers la bonne autorisation en cas de suppression
+    if ($opt['statut'] == 'poub')
+        return autoriser('supprimer','message',$id,$qui,$opt);
     return autoriser('modifier','message',$id,$qui,$opt);
 }

++

#3 Updated by Sashimi Wakamé over 6 years ago

b b a écrit :

Je ne reproduis pas sous SPIP 3.0.7 SVN [20415], le message est bien visible dans la boite d'envoi de A (l’émetteur) mais pas dans la boite de réception de B (le destinataire).

Désolé, je n'ai pas été assez précis. Je me recite : Le message est toujours visible dans la boite d'envoi de A mais maintenant également visible dans la boite de réception de A.
Le message disparait bien effectivement de la boite de réception de B (le destinataire) mais il apparait dans la boite de réception de A (l'émetteur).
L'émetteur A visualise donc le message à la fois dans sa boite de réception et dans sa boite d'envoi !

#4 Updated by b b over 6 years ago

Ok vu. Quand un auteur affiche un de ses messages envoyés, un lien session_id_auteur/message est créé dans spip_auteurs_liens avec vu=oui :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/prive/squelettes/contenu/message.html?rev=#L36

C'est ce squelette qui génère la liste des messages de la boite de réception :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/prive/objets/liste/messages-recus.html#L30

Les résultats de cette boucle sont filtrés par le critère destinataire :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/organiseur_fonctions.php?rev=72036#L28

Or le critère n'exclut pas les liens sur vu=oui (uniquement sur vu=poub). Pourtant dans l'affichage de la liste, on considère comme vu si vu=poub ou oui :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/prive/objets/liste/messages-recus.html#L31

Il faut exclure de la boucle les message de l'auteur en cours en ajoutant un {id_auteur!=#ENV{destinataire}} :

http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/prive/objets/liste/messages-recus.html#L30

Testé, cela fix le pb chez moi et ne génère pas d'erreur dans http://zone.spip.org/trac/spip-zone/browser/_core_/plugins/organiseur/prive/squelettes/inclure/organiseur-interventions.html

Ou plus simplement, il serait peut être mieux d'ajouter cette exclusion directement dans le critère destinataire :

--- plugins-dist/organiseur/organiseur_fonctions.php.geanyvc.~BASE~
+++ plugins-dist/organiseur/organiseur_fonctions.php
@@ -22,10 +22,13 @@
     $boucle->from_type['auteurs_liens'] = 'LEFT';
     $where =
         array("'OR'",
-            array(
-                "'AND'",
-                array("'='","'auteurs_liens.id_auteur'","intval($_auteur)"),
-                array("'!='","'auteurs_liens.vu'","'\'poub\''"),
+            array("'AND'",
+                array("'!='","'".$boucle->id_table.".id_auteur'","intval($_auteur)"),
+                array(
+                    "'AND'",
+                    array("'='","'auteurs_liens.id_auteur'","intval($_auteur)"),
+                    array("'!='","'auteurs_liens.vu'","'\'poub\''"),
+                ),
             ),
             array("'OR'",
                 array("'='","'".$boucle->id_table.".type'","sql_quote('affich')"),

Voilà pour le premier bug :)

++

#5 Updated by b b over 6 years ago

Commité dans la branche de dev histoire d'avoir un avis sur la modif avant de reporter en 3.0 :

http://zone.spip.org/trac/spip-zone/changeset/72040

#6 Updated by Sashimi Wakamé over 6 years ago

Merci beaucoup !!!

#7 Updated by denisb - over 6 years ago

  • Status changed from Nouveau to Résolu

#8 Updated by b b over 6 years ago

Hop, je pense même qu'on peut fermer le ticket vu que j'ai reporté les modifs dans la branche stable :

http://zone.spip.org/trac/spip-zone/changeset/72123/

++

#9 Updated by cedric - over 6 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF