Module ticket : accès au suivi de tickets d'autres clients depuis interface publique

Bonjour,
Un client m’a indiqué aujourd’hui qu’en consultant la liste de ses tickets depuis l’interface publique, il avait accès à des tickets d’autres clients. Après vérification en utilisant un de ses id de suivi et son e-mail, effectivement, dans la liste des tickets, il y a des tickets qui ne le concerne pas. Si on clic sur le ticket pour l’ouvrir, on a un message qui dit « Not Allowed ». Moindre mal donc mais mon client a quand même le sujet de tickets qui ne le concerne pas ce qui n’est vraiment pas top en terme de confidentialité…
J’étais en 10.0.x et j’ai tenté de migrer sur la 11.0.4 mais le problème est toujours présent.
J’ai tenté avec d’autres clients qui affichent bien uniquement leurs propres tickets. Après avoir testé pas mal d’id de suivi, j’ai trouvé un autre client qui est concerné par le problème.
Je n’arrive pas à trouver de liens entre les clients concernés par le problème et ceux qui ne le sont pas. Et quand le problème se produit, le client n’affiche pas non plus tous les tickets mais un certains nombres qui ne les concernent pas. La non plus je trouve aucune logique. Certains sont clôturés, d’autres non lus…
Est-ce que d’autres utilisateurs peuvent tester pour voir si il s’agit d’un bug ou si ce problème ne concerne que moi ?

Bonjour
Pas de doublon au niveau du track_id ?
@+

non… Les track_id sont bien différents…
Je n’ai pas eu le temps de chercher plus longuement aujourd’hui mais demain je vais me pencher sérieusement sur la question car c’est pas terrible que certains clients puissent voir le sujet des tickets d’autres clients… Je vais regarder ce qui se passe au niveau des requêtes mySql déjà.

Je crois que je tiens une piste. J’utilisais le module ticket de Librethic avant que ce module ne soit intégré à Dolibarr. Lorsque le module Dolibarr est arrivé, j’avais encore des tickets en cours dans l’ancien module mais j’ai souhaité passé sur le nouveau module. Les 2 ne pouvaient pas fonctionner ensemble car ils ont une base commune. Du coup le module Ticket Librethic est toujours présent mais désactivé. Et je pense qu’il y a un conflit à ce niveau entre les 2 modules (du coup peut être des track_id identiques mais liés à l’ancien module… où je ne sais pas exactement, je n’ai pas eu le temps de creuser plus encore).
En tout cas, à priori le soucis arrive sur des clients qui ont déjà utilisé l’ancien module ticket.

Les 2 modules n’utilisent pas les mêmes tables sauf si vous avez renommé
@+

Bonjour,
Je fais enfin suite à mon message ! J’ai manqué de temps pour m’occuper de ça mais là le problème devient urgent…

Effectivement. Je vois bien les tables différentes et j’ai activé le module syslog pour voir les requêtes et elles se font bien dans les bonnes tables. Je n’ai rien renommé.
J’ai rejoué les requêtes dans phpMyAdmin et effectivement, j’ai bien les tickets d’autres utilisateurs / sociétés qui ressortent… Je ne trouve pas pourquoi…
La requête se base sur l’e-mail du client pour récupérer la liste des tickets (voici la fin avec le WHERE. J’ai bien entendu caché l’e-mail de mon client)) :

WHERE t.entity IN (1) AND ((tc.source = 'external' AND tc.element='' AND tc.active=1) OR (sp.email='[email protected]' OR s.email='[email protected]' OR t.origin_email='[email protected]')) ORDER BY t.datec DESC

Pourtant dans mes résultats, j’ai des tickets qui ressortent avec dans la colonne « origin_email » des adresses sans aucun rapport avec l’adresse de mon client… Mais pas tous les autres tickets non plus. Seulement certains venant d’autres adresses…

Autre élément étrange, ça ne le fait pas avec tous mes clients. J’ai testé par exemple avec un client qui ouvre de nombreux tickets. La requête ne fait bien ressortir que ses propres tickets. Alors que pour d’autres, j’ai ce bug (sans que ça fasse ressortir les mêmes tickets que pour le 1er client qui m’a signalé le problème).

J’ai essayé de chercher une différence dans les fiches clients entre le client pour lequel ça bug et celui pour lequel ça ne bug pas. Mais pour le moment je n’ai pas trouvé…

J’ai avancé. Je pense qu’il s’agit bien d’un bug. Il doit y avoir une erreur dans la requête. Le bug se produit lorsque j’ai un contact créé dans le client et que c’est l’e-mail de ce contact qui consulte les tickets.
J’ai testé sur plusieurs clients et le cas est toujours le même. Je donne un exemple :
Le client [email protected] ouvre des tickets. Je n’ai pas de fiche contact pour ce client. Aucun soucis lorsqu’il consulte la liste de ses tickets. Il accès bien seulement aux siens.
Le client [email protected] ouvre des tickets. J’ai une fiche contact pour ce client avec cette même adresse mail. Lorsqu’il consulte ses tickets, il trouve dans la liste des tickets associés à une autre adresse mail. Il ne peut pas les ouvrir mais il peut tout de même voir les détails dispos dans la liste. Si pour tester je change son adresse mail dans sa fiche contact (en indiquant par exemple [email protected]), tout revient dans l’ordre. Il n’affiche plus que ses tickets (et ceux créés par d’autres contacts de sa fiche client).
Reste à trouver la motivation d’analyser la requête pour voir à quel endroit le lien n’est pas bon :wink: Ca devrait pas être trop dur mais là il est tard ! :smiley:
Si d’autres peuvent faire le même test que moi juste pour confirmer que c’est un bug qui n’est pas seulement sur mon installation. Par contre je suis toujours en 11.0.4. Il ne me semble pas avoir vu passer quelque chose à ce sujet dans le changelog mais je n’ai pas vérifié en détail les bugs dans github mais je n’ai rien vu à ce sujet non plus.
Allez, dodo… La suite demain ! :wink:

Je relance le sujet. Un volontaire pour faire le test et confirmer qu’il s’agit d’un bug pour tout le monde et pas seulement pour mon installation ? :wink:
Procédure du test :
Etre utilisateur du module ticket et avoir déjà quelques tickets dans le module

  1. Créer un client avec une adresse [email protected]
  2. Créer un contact de client avec une adresse [email protected]
  3. Ouvrir un ticket avec l’adresse mail de ce contact [email protected]
  4. Allez consulter la liste complète des tickets associés à [email protected] (depuis l’interface publique) et vérifier si il n’y a que son ticket ou bien des tickets associés à d’autres personnes dont il n’a pas de rapport. Chez moi, à ce stade, le client [email protected] ne voit pas forcément ces tickets mais va voir d’autres tickets dont il n’est pas à l’origine (et n’a aucun lien). Par contre en cliquant sur le ticket pour voir le détail l’accès lui est bien refusé (mais il voit quand même les sujets de tickets qu’il ne devrait pas voir dans la liste et en plus il ne voit pas ses propres tickets, à part celui par lequel il est arrivé sur l’interface publique)

Merci pour votre aide !

Bonjour

Je confirme de mon côté que en effet, si le mail est bien rempli dans la partie contact sur l’utilisateur qui se connecte il est capable de voir des ticket qui ne lui appartiennent pas…

Je suis en 13.0.2 t ce problème semble toujours d’actualité…

Une idée ?
Un grand merci

Bonjour. Merci pour votre retour. Suite à quelques ennuis, je n’ai pas eu de temps pour avancer sur ce bug. Il faudrait remonter le bug sur github. Pour le moment, j’ai pu éviter le problème car j’ai assez peu de clients concernés et j’ai pu mettre une autre adresse mail dans la fiche contact du client. Mais ça reste problématique.