Description du bug
Dans le fichier useHomeData.ts, il y a une sécurité introduite lors du commit 3afdca5 qui déconnecte automatiquement les utilisateurs si leur compte utilise un ancien service supprimé (l'IUT de Lannion), via la variable REMOVED_SERVICE_ID = 9.
Le problème, c'est que les services sont gérés via un enum dans stores/account/types.ts. Quand j'ai ajouté mon nouveau service Wigor à la fin de la liste, il a automatiquement récupéré l'index 9.
Résultat : l'application croit que Wigor est le service supprimé. Dès qu'un utilisateur se connecte avec, le hook useHomeData supprime le compte et renvoie directement à la page d'accueil (onboarding).
Ceci oblige les à attribuer une id différente pour chaque nouveau service qu'on ajoute :
export enum Services {
PRONOTE = 0,
SKOLENGO = 1,
ECOLEDIRECTE = 2,
TURBOSELF = 3,
ARD = 4,
IZLY = 5,
MULTI = 6,
ALISE = 7,
APPSCHO = 8,
// LANNION = 9, // On bloque le 9 pour l'ancien service
WIGOR = 10, // Wigor passe à 10
// Les futurs services repartiront de 11
}
Cela impactera les futures contributions qui ajouteront un nouveau service.
Ici dans mon cas çà impacte le service Wigor pour les écoles supérieurs des groupes d'écoles C&D et Igensia.
Étapes à reproduire
Ajouté un nouveau service à la fin de la liste de stores/account/types.ts
export enum Services {
PRONOTE, // 0
SKOLENGO, // 1
ECOLEDIRECTE, // 2
TURBOSELF, // 3
ARD, // 4
IZLY, // 5
MULTI, // 6
ALISE, // 7
APPSCHO, // 8
WIGOR // 9 <- Prend l'index 9 automatiquement et crée le conflit
}
Comportement attendu
Lorsqu'on ajoute un nouveau service à la suite des autres dans l'enum (comme Wigor), l'application devrait permettre à l'utilisateur de se connecter et de rester sur la page d'accueil sans déclencher de fausse alerte de sécurité.
L'ajout d'une nouvelle contribution ne devrait pas obliger le développeur à devoir tricher sur les IDs pour éviter l'index 9 codé en dur. L'application doit être capable de faire la différence entre un service obsolète supprimé et un tout nouveau service actif.
Appareil
Emulateur IOS Iphone 17 Pro / Emulateur Android Pixel 9
Version du système d'exploitation
IOS 26.4
Papillon testé depuis
Play/App Store (version stable)
Version utilisée
8.4.3
Service scolaire/cantine
🎒🏫 Universités et autres (à préciser dans la description du bug)
Capture(s) d'écran / vidéo

Description du bug
Dans le fichier
useHomeData.ts, il y a une sécurité introduite lors du commit3afdca5qui déconnecte automatiquement les utilisateurs si leur compte utilise un ancien service supprimé (l'IUT de Lannion), via la variableREMOVED_SERVICE_ID = 9.Le problème, c'est que les services sont gérés via un enum dans stores/account/types.ts. Quand j'ai ajouté mon nouveau service
Wigorà la fin de la liste, il a automatiquement récupéré l'index9.Résultat : l'application croit que Wigor est le service supprimé. Dès qu'un utilisateur se connecte avec, le hook
useHomeDatasupprime le compte et renvoie directement à la page d'accueil(onboarding).Ceci oblige les à attribuer une id différente pour chaque nouveau service qu'on ajoute :
Cela impactera les futures contributions qui ajouteront un nouveau service.
Ici dans mon cas çà impacte le service Wigor pour les écoles supérieurs des groupes d'écoles C&D et Igensia.
Étapes à reproduire
Ajouté un nouveau service à la fin de la liste de stores/account/types.ts
Comportement attendu
Lorsqu'on ajoute un nouveau service à la suite des autres dans l'enum (comme
Wigor), l'application devrait permettre à l'utilisateur de se connecter et de rester sur la page d'accueil sans déclencher de fausse alerte de sécurité.L'ajout d'une nouvelle contribution ne devrait pas obliger le développeur à devoir tricher sur les IDs pour éviter l'index
9codé en dur. L'application doit être capable de faire la différence entre un service obsolète supprimé et un tout nouveau service actif.Appareil
Emulateur IOS Iphone 17 Pro / Emulateur Android Pixel 9
Version du système d'exploitation
IOS 26.4
Papillon testé depuis
Play/App Store (version stable)
Version utilisée
8.4.3
Service scolaire/cantine
🎒🏫 Universités et autres (à préciser dans la description du bug)
Capture(s) d'écran / vidéo