Page 1 sur 1

profils superviseur et visibilité des tickets

Posté : jeu. 23 mai 2019 14:02
par JoshuaSign_
Bonjour,

J'ai du mal à comprendre le fonctionnement lié au profil superviseur, je m'explique.

Si je ne souhaite utiliser que 3 profils : technicien, superviseur, adminitstrateur
et que je configure les droits de façon à ce que tous le monde puisse voir tous les tickets,
bien que les droits sur les superviseurs soient identiques à ceux des administrateurs, à l'exception d'un accès limité à certains menu de la section administration,
je constate que les superviseurs ne voient pas les memes tickets que les administrateurs (dans la liste des tickets "nouveaux" par exemple... )

Par contre les techniciens, voient bien tous les tickets... étrange.

J'ai cherché à comprendre, et je constate que la requete qui est lancée est différente pour les superviseurs et les admins :
selon le profil on a

Code : Tout sélectionner

tincidents.user LIKE '0' AND
tincidents.technician LIKE '%' AND
ou bien

Code : Tout sélectionner

tincidents.user LIKE '%' AND
tincidents.technician LIKE '0' AND
En allant plus loin j'ai trouvé ce bout de code dans le dashboard.php (ligne 121) qui semble etre à l'origine du phénomene :

Code : Tout sélectionner

//if admin user
if($_SESSION['profile_id']==0 || $_SESSION['profile_id']==4)
{
        if($_POST['technician']=='') $_POST['technician']= $_GET['userid'];
        if($_POST['user']=='') $_POST['user']= '%';
} else {
        if($_POST['user']=='') $_POST['user']= $_GET['userid'];
        if($_POST['technician']=='') $_POST['technician']= '%';
}
Hors, $_SESSION['profile_id'] prete à confusion car il ne s'agit pas d'un ID de profil mais bien du level de profil.
Donc ce code dit : si tuser a un niveau admin ou technicien alors... sinon ...
Pourtant le commentaire indique "if admin user"

Je me demande si c'est bien ce qu'il etait prévu de faire, et je n'en comprend pas le sens : pourquoi considérer les admins et les techniciens de façon identique ?

NB : le $_SESSION['profile_id'] est setté dans index.php (ligne 169)

Code : Tout sélectionner

//find profile id of connected user 
        $qprofile=$db->query("SELECT profile FROM tusers WHERE id LIKE $uid");
        $_SESSION['profile_id']=$qprofile->fetch();
        $qprofile->closeCursor();
        $_SESSION['profile_id']=$_SESSION['profile_id'][0];

Re: profils superviseur et visibilité des tickets

Posté : mar. 28 mai 2019 11:55
par JoshuaSign_
up?