You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2021-12-01 13:25:55

slegrand
Member
Registered: 2020-07-01
Posts: 5

Besoin d'envoyer plusieurs fois les mêmes requêtes pour ajout ticket

Bonjour,

J'ai un problème très bizarre que je constate lors de la création d'un ticket via l'API REST. Ce problème survient apparemment uniquement lorsque la personne a plusieurs habilitations avec différents profils et différentes entités.

Dans mon code Javascript, je fais (en pseudo code) :

const data = await Promise.all([
  POST sur '/changeActiveEntities/' avec { entities_id: xx } en contenu ,
  POST sur '/changeActiveProfile/' avec { profiles_id: xx } en contenu,
])
si data[0] && data[1] ont le code HTTP 200 alors
  POST sur '/Ticket' avec objet ticket en contenu
fin si

Pour la majorité des utilisateurs, cela fonctionne parfaitement, le ticket est créé dès la première requête. Par contre, pour ceux qui ont des habilitations plus complexes (plusieurs profils et plusieurs entités), les requêtes /changeActiveEntities/ et /changeActiveProfile/ reçoivent bien un HTTP 200 mais la première requête /Ticket échoue avec une erreur Vous n'avez pas les droits requis pour réaliser cette action. Le plus bizarre c'est que si je place mon code JS dans une boucle et que je fais donc plusieurs tentatives de création de ticket, au bout d'un certain nombre de fois (aléatoire, cela peut aller jusqu'à + de 10 tentatives !), la requête de création de ticket finit par réussir ?! C'est comme si les requêtes /changeActiveEntities/ et /changeActiveProfile/, malgré leur code de retour HTTP 200, ne prenaient effectivement effet qu'au bout de plusieurs tentatives.

Est-ce que quelqu'un aurait déjà eu ce genre de problème ? Y a-t-il un ordre à respecter pour les requêtes /changeActiveEntities/ et /changeActiveProfile/ ?

Merci d'avance.

Offline

#2 2021-12-28 11:27:09

slegrand
Member
Registered: 2020-07-01
Posts: 5

Re: Besoin d'envoyer plusieurs fois les mêmes requêtes pour ajout ticket

Je pense avoir trouvé la réponse. Apparemment, il faut tout d'abord changer le profil puis ensuite seulement changer l'entité. Autrement dit faire :

  await POST sur '/changeActiveProfile/' avec { profiles_id: xx } en contenu
  await POST sur '/changeActiveEntities/' avec { entities_id: xx } en contenu

Offline

Board footer

Powered by FluxBB