Attention :
show_group_ticket != show_ticket.
Votre modification etait correcte sauf qu'il faut deja que
l'utilisateur ait le droit de voir les ticket de ses groupes avant de
tester l'appartenance au groupe.
&& ( !haveRight("show_group_ticket",1)
|| !in_array($job->fields["FK_group"],$_SESSION["glpigroups"])
Il y a un problème (bug) en fait uniquement dans le cas ou l'utilisateur
depuis le central :
- n'avait pas le droit de voir les tickets (show_ticket)
- avait le droit de voir les tickets de ses groupes (show_group_ticket)
Mais on peut aussi l'ecrire dans l'autre sens ce n'est pas un problème.
Julien
Jean-Christophe Boggio a écrit :
Bonjour,
Pardonnez-moi, j'ai un peu de mal à lire cette ligne avec toutes
ces négations et je ne comprends pas votre ajout :
if ( !haveRight("show_ticket","1")
&& $job->fields["author"]!=$_SESSION["glpiID"]
&& $job->fields["assign"]!=$_SESSION["glpiID"]
&& ( !haveRight("show_group_ticket",1)
|| !in_array($job->fields["FK_group"],$_SESSION["glpigroups"])
)
)
Ce que je traduis par :
Si ( l'utilisateur ne peut pas voir tous les tickets
et l'utilisateur n'est pas l'auteur
et l'utilisateur n'a pas reçu la gestion du ticket
et ( l'utilisateur ne peut pas voir tous les tickets
ou l'utilisateur ne fait pas partie du groupe du ticket
)
)
alors print " "
sinon print "<a href..."
Il me semble que votre ajout est déjà contenu sur la première
ligne et, puisque les conditions sont séparées par des ET, cette
condition est redondante (et du coup une "fausse correction").
En écrivant le test à l'envers, on peut essayer d'y voir plus clair
(notez que je permute aussi, le "alors" et le "sinon") :
Si ( l'utilisateur peut voir tous les tickets
ou l'utilisateur est l'auteur
ou l'utilisateur a reçu la gestion du ticket
ou ( l'utilisateur peut voir tous les tickets
et l'utilisateur fait partie du groupe du ticket
)
)
alors print "<a href..."
sinon print " "
Ma modification mettait les 4 conditions au même niveau :
Si ( l'utilisateur ne peut pas voir tous les tickets
et l'utilisateur n'est pas l'auteur
et l'utilisateur n'a pas reçu la gestion du ticket
et l'utilisateur ne fait pas partie du groupe du ticket
)
alors print " "
sinon print "<a href..."
Ce qui, à l'envers s'écrit :
Si ( l'utilisateur peut voir tous les tickets
ou l'utilisateur est l'auteur
ou l'utilisateur a reçu la gestion du ticket
ou l'utilisateur fait partie du groupe du ticket
)
alors print "<a href..."
sinon print " "
Quel bug vouliez-vous corriger ? Pouvez-vous m'éclairer ?
Désolé de vous faire perdre du temps sur ce détail.
A bientôt,
_______________________________________________
Glpi-dev mailing list
[email protected]
https://mail.gna.org/listinfo/glpi-dev