• v1.6.30 57e81b1c7f

    emitlinks released this 2026-10-27 13:15:30 +00:00 | 19 commits to main since this release

    AirWatch Sync 1.6.30

    1.6.30 — le résultat de la synchro n'est plus écrasé par une erreur CSRF

    Correction (erreur « Cannot read properties of undefined (reading 'error') »)

    • Quand le jeton CSRF de la page était périmé ou consommé (jetons purgés de
      la session, onglet gardé ouvert, rechargement partiel), GLPI répondait une
      page HTML au premier POST. L'ancienne logique de retry relançait la
      fonction en récursif et perdait la réponse JSON de la synchro : la
      synchro réussissait côté serveur, mais l'interface affichait l'erreur
      JavaScript Cannot read properties of undefined (reading 'error').
    • Le retry est maintenant une simple reprise avec un jeton frais : la
      réponse JSON remonte jusqu'au rendu, et le résultat de la synchro s'affiche
      normalement.

    Message d'échec plus explicite

    • Si la requête échoue encore après le retry (jeton refusé, session expirée,
      erreur serveur), le message « GLPI a rejeté la requête » est conservé et
      accompagné d'un extrait de la réponse du serveur, ce qui permet de voir la
      cause réelle au lieu d'une erreur JavaScript ou d'un message tronqué.

    Appliqué aussi au panneau par appareil

    • Le bouton de synchro d'un asset (DevicePanel) avait exactement le même
      défaut : même correction.

    Vérifié

    • Syntaxe PHP (php -l) et JS généré (node --check) des deux pages.
    • Tests logiques Node avec stub fetch reproduisant le 403 CSRF de GLPI :
      l'ancienne version reproduit l'erreur exacte de l'utilisateur (la synchro
      passe côté serveur mais l'UI affiche le TypeError) ; la nouvelle version
      affiche le résultat dans tous les scénarios (retry réussi, endpoint de
      jeton mort, serveur toujours en erreur).
    Downloads