[Corrigé 3.1.41] Droit - Affiche les superviseurs/Administrateurs dans la liste des techniciens sur un ticket
Posté : lun. 6 mai 2019 17:00
Bonjour,
Il me semble que ces droits ne peuvent pas fonctionner de façon exclusive et indépendante :
- Affiche les administrateurs dans la liste des techniciens sur un ticket
- Affiche les superviseurs dans la liste des techniciens sur un ticket
Je m'explique :
- pour le premier on s'attend à ce que si on donne ce droit, alors les admin seront présentés dans la liste des techniciens, mais pas les superviseurs : c'est bien le cas.
- pour le second on s'attend à ce que si on donne ce droit, alors les superviseurs seront présentés dans la liste des techniciens, mais pas les administrateurs : ce n'est pas le cas.
Du coup on ne peut pas avoir les "techniciens + superviseurs" sans admins dans la liste des techniciens, est c'est bien dommage.
Notre approche est d'avoir un admin systeme, qui ne s'occupe pas de résoudre les tickets mais seulement de faire de la maintenance applicative sur GestSup (création des listes, mises à jours, gestion des droits, etc...)
Et des supperviseurs qui ont le role de chef de services/équipes.
J'ai donc effectuée cette petite modification afin d'obtenir "le meilleur des 2 mondes" :
ticket.php - ligne 500 (environs)
Il me semble que ces droits ne peuvent pas fonctionner de façon exclusive et indépendante :
- Affiche les administrateurs dans la liste des techniciens sur un ticket
- Affiche les superviseurs dans la liste des techniciens sur un ticket
Je m'explique :
- pour le premier on s'attend à ce que si on donne ce droit, alors les admin seront présentés dans la liste des techniciens, mais pas les superviseurs : c'est bien le cas.
- pour le second on s'attend à ce que si on donne ce droit, alors les superviseurs seront présentés dans la liste des techniciens, mais pas les administrateurs : ce n'est pas le cas.
Du coup on ne peut pas avoir les "techniciens + superviseurs" sans admins dans la liste des techniciens, est c'est bien dommage.
Notre approche est d'avoir un admin systeme, qui ne s'occupe pas de résoudre les tickets mais seulement de faire de la maintenance applicative sur GestSup (création des listes, mises à jours, gestion des droits, etc...)
Et des supperviseurs qui ont le role de chef de services/équipes.
J'ai donc effectuée cette petite modification afin d'obtenir "le meilleur des 2 mondes" :
ticket.php - ligne 500 (environs)
Code : Tout sélectionner
<?php
//filter is service is send for technicians
if($rparameters['user_limit_service']==1 && $rright['dashboard_service_only']!=0) { //case for user who open ticket to auto-select categories of the service
if($_POST['u_service']) {$where_service=$_POST['u_service'];} else {$where_service=$globalrow['u_service'];}
if ($rright['ticket_tech_super']!=0 && $rright['ticket_tech_admin']!=0) { //display supervisor and admin in technician list
$query="SELECT * FROM `tusers` WHERE (profile='0' || profile='4' || profile='3') AND ( id IN (SELECT user_id FROM tusers_services WHERE service_id=$where_service)) OR id='0' ORDER BY lastname ASC, firstname ASC";
} elseif ($rright['ticket_tech_super']!=0) { //display technician and supervisor in technician list
$query="SELECT * FROM `tusers` WHERE (profile='0' || profile='3') AND ( id IN (SELECT user_id FROM tusers_services WHERE service_id=$where_service)) OR id='0' ORDER BY lastname ASC, firstname ASC";
} elseif ($rright['ticket_tech_admin']!=0) { //display technician and admin in technician list
$query="SELECT * FROM `tusers` WHERE (profile='0' || profile='4') AND ( id IN (SELECT user_id FROM tusers_services WHERE service_id=$where_service)) OR id='0' ORDER BY lastname ASC, firstname ASC";
} else { //display only technician in technician list
$query="SELECT * FROM `tusers` WHERE profile='0' AND ( id IN (SELECT user_id FROM tusers_services WHERE service_id=$where_service)) OR id='0' ORDER BY lastname ASC, firstname ASC";
}
} else {
//display technician and admin in technician list
if ($rright['ticket_tech_super']!=0 && $rright['ticket_tech_admin']!=0) { // supervisor, admin, technician
$query = "SELECT * FROM `tusers` WHERE (profile='0' || profile='4' || profile='3') OR id=0 ORDER BY lastname ASC, firstname ASC" ;
} elseif ($rright['ticket_tech_super']!=0) { // supervisor and technician
$query = "SELECT * FROM `tusers` WHERE (profile='0' || profile='3') OR id=0 ORDER BY lastname ASC, firstname ASC" ;
} elseif ($rright['ticket_tech_admin']!=0) { // admin and technician
$query = "SELECT * FROM `tusers` WHERE (profile='0' || profile='4') OR id=0 ORDER BY lastname ASC, firstname ASC" ;
} else {
$query="SELECT * FROM `tusers` WHERE profile='0' OR id='0' ORDER BY lastname ASC, firstname ASC";
}
}
}