docs: Marquer les tâches #76 et le bug de purge Hive comme terminés

Tâche #76: Accès admin limité web uniquement -  Terminé 26/01
Bug: Boxes Hive non purgées à la connexion -  Corrigé 26/01

Corrections aujourd'hui:
- #15: Nouveau membre non synchronisé (sécurité + sync + API)
- #76: Accès admin limité web uniquement
- Bug: Nettoyage automatique des boxes Hive à la connexion
- Optimisation: operation_id en session (évite requêtes SQL)
This commit is contained in:
2026-01-26 17:42:33 +01:00
parent 957386f78c
commit 495ba046ec
9 changed files with 44 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
// ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
// This file is automatically generated by deploy-app.sh script
// Last update: 2026-01-26 17:20:35
// Last update: 2026-01-26 17:39:00
// Source: ../VERSION file
//
// GEOSECTOR App Version Service
@@ -8,10 +8,10 @@
class AppInfoService {
// Version number (format: YY.MM.DDNN - auto-incremented on each DEV deploy)
static const String version = '26.01.2606';
static const String version = '26.01.2607';
// Build number (version without dots: YYMMDDNN)
static const String buildNumber = '26012606';
static const String buildNumber = '26012607';
// Full version string (format: vYY.MM.DDNN+YYMMDDNN)
static String get fullVersion => 'v$version+$buildNumber';

View File

@@ -42,14 +42,19 @@ class DataLoadingService extends ChangeNotifier {
// Chat boxes removed - handled by new chat module
/// Traite toutes les données reçues de l'API lors du login
/// Les boxes sont déjà propres, on charge juste les données
/// Nettoie d'abord les boxes puis charge les nouvelles données
Future<void> processLoginData(Map<String, dynamic> apiResult) async {
try {
debugPrint('📊 Début du chargement des données (boxes déjà propres)...');
debugPrint('📊 Début du chargement des données...');
// Vérifier que les boxes sont ouvertes
_verifyBoxesAreOpen();
// Nettoyer les boxes AVANT de charger les nouvelles données
// Cela évite que les données d'un ancien utilisateur persistent
await _clearAllDataBoxes();
debugPrint('🧹 Boxes nettoyées pour le nouvel utilisateur');
// Charger les données directement (les boxes sont vides et propres)
if (apiResult['clients'] != null) {
await _processClients(apiResult['clients']);
@@ -111,6 +116,31 @@ class DataLoadingService extends ChangeNotifier {
debugPrint('✅ Toutes les boîtes requises sont ouvertes');
}
/// Nettoie les boxes de données utilisateur lors d'une nouvelle connexion
/// Ne touche PAS aux requêtes en attente (pendingRequests) pour la sync hors ligne
Future<void> _clearAllDataBoxes() async {
try {
debugPrint('🧹 Nettoyage des boxes de données utilisateur...');
// Vider toutes les boxes de données métier
await _operationBox.clear();
await _sectorBox.clear();
await _passageBox.clear();
await _membreBox.clear();
await _userSectorBox.clear();
await _amicaleBox.clear();
// Ne PAS toucher aux boxes suivantes:
// - pendingRequests (requêtes en attente de sync)
// - users (géré par CurrentUserService)
debugPrint('✅ Boxes de données nettoyées');
} catch (e) {
debugPrint('❌ Erreur lors du nettoyage des boxes: $e');
rethrow;
}
}
/// Nettoie complètement toutes les données lors du logout
Future<void> cleanDataAfterLogout() async {
try {