import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:em2rp/providers/user_provider.dart'; import 'package:em2rp/views/login_page.dart'; class AuthGuard extends StatelessWidget { final Widget child; final String? requiredRole; // Si non null, la page est réservée à ce rôle (ex: "ADMIN") const AuthGuard({ super.key, required this.child, this.requiredRole, }); @override Widget build(BuildContext context) { final userProvider = Provider.of(context); // Si l'utilisateur n'est pas connecté (aucun uid ou email) if (userProvider.uid == null || userProvider.email == null) { // Retourne la page de connexion. // Vous pouvez aussi déclencher une redirection automatique si nécessaire. return const LoginPage(); } // Si la page requiert un rôle spécifique et que l'utilisateur ne le possède pas if (requiredRole != null && userProvider.role != requiredRole) { return Scaffold( appBar: AppBar(title: const Text("Accès refusé")), body: const Center( child: Text("Vous n'êtes pas autorisé à accéder à cette page."), ), ); } // Sinon, afficher la page demandée return child; } }