SmartAuth 2.0.50 : l'invite d'installation ne revient plus, cache de routes fiabilisé
L'invite d'installation cesse de revenir
Une application SmartMaker installée sur l'écran d'accueil redemandait périodiquement à être installée. Le manifeste servi par SmartAuth se déclare maintenant lui-même comme application liée : le navigateur reconnaît qu'elle est déjà là et n'affiche plus l'invite.
Sur iPhone et iPad, c'est le seul signal disponible. Aucune interface du navigateur n'y dit à une page qu'elle a été lancée depuis l'écran d'accueil.
Savoir quels appareils ont installé l'application
Un nouvel appel, POST /account/device-install-state, permet à l'application
de signaler qu'elle tourne installée plutôt que dans un onglet. L'information
est conservée sur l'appareil logique de l'utilisateur, visible depuis l'onglet
SmartAuth de sa fiche.
Elle ne redescend jamais : ouvrir la même adresse dans un onglet après installation ne fait pas oublier que l'application est installée. Un appareil qui n'a rien signalé reste distinct d'un appareil qui utilise le navigateur, ce qui évite de compter comme "non installé" les appareils qui utilisent encore une version antérieure de l'application.
Cache de routes : plus d'avertissement trompeur
Les modules qui exposent leurs propres routes se déclarent depuis la version précédente. Deux défauts restaient :
- SmartAuth s'avertissait lui-même de ne pas être déclaré, ce qui était faux ;
- l'avertissement invitant à migrer du balayage de fichiers vers la déclaration apparaissait même quand aucun module installé n'était concerné.
Les deux sont corrigés. L'avertissement ne se déclenche plus que lorsqu'un module présent peut réellement être migré, et le journal indique la cause exacte d'une reconstruction du cache.
Corrections et travaux internes
- Les objets Dolibarr dont la classe ne déclare pas
$fieldssont de nouveau correctement identifiés par les correspondances d'objets. - Les formulaires de configuration OAuth2 sont protégés contre le double envoi, et les libellés manquants sont traduits dans les huit langues livrées.
- Le vidage du cache mémoire intervient en dernier à l'installation du module, pour qu'aucun état intermédiaire ne soit remis en cache.
- Le socle annoncé est aligné sur Dolibarr 18.0 et PHP 7.4, ce qui correspond à ce qui est réellement testé. La rétrocompatibilité vers Dolibarr 16, devenue inutile, a été retirée.
- L'archive de distribution est désormais vérifiée : elle ne peut plus partir avec une dépendance de développement embarquée.
- Toutes les pages d'administration et de liste du module sont couvertes par des tests qui échouent au moindre arrêt fatal.