|
|
|
@ -44,7 +44,8 @@ class UserController extends GetxController { |
|
|
|
final storedRole = prefs.getString('role') ?? ''; |
|
|
|
final storedUserId = prefs.getInt('user_id') ?? 0; |
|
|
|
final storedPointDeVenteId = prefs.getInt('point_de_vente_id') ?? 0; |
|
|
|
final storedPointDeVenteDesignation = prefs.getString('point_de_vente_designation') ?? ''; |
|
|
|
final storedPointDeVenteDesignation = |
|
|
|
prefs.getString('point_de_vente_designation') ?? ''; |
|
|
|
|
|
|
|
if (storedUsername.isNotEmpty) { |
|
|
|
try { |
|
|
|
@ -60,13 +61,13 @@ class UserController extends GetxController { |
|
|
|
_pointDeVenteId.value = storedPointDeVenteId; |
|
|
|
_pointDeVenteDesignation.value = storedPointDeVenteDesignation; |
|
|
|
|
|
|
|
if (_pointDeVenteDesignation.value.isEmpty && _pointDeVenteId.value > 0) { |
|
|
|
if (_pointDeVenteDesignation.value.isEmpty && |
|
|
|
_pointDeVenteId.value > 0) { |
|
|
|
await loadPointDeVenteDesignation(); |
|
|
|
} |
|
|
|
|
|
|
|
// ✅ Précharger les permissions en arrière-plan (non bloquant) |
|
|
|
_preloadPermissionsInBackground(); |
|
|
|
|
|
|
|
} catch (dbError) { |
|
|
|
print("❌ Erreur BDD, utilisation du fallback: $dbError"); |
|
|
|
_username.value = storedUsername; |
|
|
|
@ -105,13 +106,15 @@ class UserController extends GetxController { |
|
|
|
if (_pointDeVenteId.value <= 0) return; |
|
|
|
|
|
|
|
try { |
|
|
|
final pointDeVente = await AppDatabase.instance.getPointDeVenteById(_pointDeVenteId.value); |
|
|
|
final pointDeVente = |
|
|
|
await AppDatabase.instance.getPointDeVenteById(_pointDeVenteId.value); |
|
|
|
if (pointDeVente != null) { |
|
|
|
_pointDeVenteDesignation.value = pointDeVente['nom'] as String; |
|
|
|
await saveUserData(); |
|
|
|
} |
|
|
|
} catch (e) { |
|
|
|
print('❌ Erreur lors du chargement de la désignation du point de vente: $e'); |
|
|
|
print( |
|
|
|
'❌ Erreur lors du chargement de la désignation du point de vente: $e'); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -160,7 +163,8 @@ class UserController extends GetxController { |
|
|
|
await prefs.setString('lastname', _lastname.value); |
|
|
|
await prefs.setInt('user_id', _userId.value); |
|
|
|
await prefs.setInt('point_de_vente_id', _pointDeVenteId.value); |
|
|
|
await prefs.setString('point_de_vente_designation', _pointDeVenteDesignation.value); |
|
|
|
await prefs.setString( |
|
|
|
'point_de_vente_designation', _pointDeVenteDesignation.value); |
|
|
|
|
|
|
|
print("✅ Données sauvegardées avec succès"); |
|
|
|
} catch (e) { |
|
|
|
@ -198,7 +202,6 @@ class UserController extends GetxController { |
|
|
|
_pointDeVenteDesignation.value = ''; |
|
|
|
|
|
|
|
print("✅ Données utilisateur et cache de session vidés"); |
|
|
|
|
|
|
|
} catch (e) { |
|
|
|
print('❌ Erreur lors de l\'effacement: $e'); |
|
|
|
} |
|
|
|
@ -231,12 +234,12 @@ class UserController extends GetxController { |
|
|
|
await _cacheService.loadUserPermissions(_username.value); |
|
|
|
|
|
|
|
return _cacheService.hasPermission(_username.value, permission, route); |
|
|
|
|
|
|
|
} catch (e) { |
|
|
|
print('❌ Erreur vérification permission: $e'); |
|
|
|
// Fallback vers la méthode originale en cas d'erreur |
|
|
|
try { |
|
|
|
return await AppDatabase.instance.hasPermission(_username.value, permission, route); |
|
|
|
return await AppDatabase.instance |
|
|
|
.hasPermission(_username.value, permission, route); |
|
|
|
} catch (fallbackError) { |
|
|
|
print('❌ Erreur fallback permission: $fallbackError'); |
|
|
|
return false; |
|
|
|
@ -245,7 +248,8 @@ class UserController extends GetxController { |
|
|
|
} |
|
|
|
|
|
|
|
/// ✅ Vérification de permissions multiples |
|
|
|
Future<bool> hasAnyPermission(List<String> permissionNames, String menuRoute) async { |
|
|
|
Future<bool> hasAnyPermission( |
|
|
|
List<String> permissionNames, String menuRoute) async { |
|
|
|
for (String permissionName in permissionNames) { |
|
|
|
if (await hasPermission(permissionName, menuRoute)) { |
|
|
|
return true; |
|
|
|
|