Merge branch 'feature/14-premiere-connexion-config' into develop (#14)

This commit is contained in:
MARTIN Julien 2026-02-15 23:20:00 +01:00
commit 111935e451
4 changed files with 12 additions and 11 deletions

View File

@ -53,8 +53,7 @@ export class ConfigController {
// @Roles('super_admin') // @Roles('super_admin')
async completeSetup(@Request() req: any) { async completeSetup(@Request() req: any) {
try { try {
// TODO: Récupérer l'ID utilisateur depuis le JWT const userId = req.user?.id ?? null;
const userId = req.user?.id || 'system';
await this.configService.markSetupCompleted(userId); await this.configService.markSetupCompleted(userId);

View File

@ -259,10 +259,10 @@ export class AppConfigService implements OnModuleInit {
/** /**
* Marquer la configuration initiale comme terminée * Marquer la configuration initiale comme terminée
* @param userId ID de l'utilisateur qui termine la configuration * @param userId ID de l'utilisateur qui termine la configuration (null si non authentifié)
*/ */
async markSetupCompleted(userId: string): Promise<void> { async markSetupCompleted(userId: string | null): Promise<void> {
await this.set('setup_completed', 'true', userId); await this.set('setup_completed', 'true', userId ?? undefined);
this.logger.log('✅ Configuration initiale marquée comme terminée'); this.logger.log('✅ Configuration initiale marquée comme terminée');
} }

View File

@ -6,7 +6,7 @@ class Env {
); );
// Construit une URL vers l'API v1 à partir d'un chemin (commençant par '/') // Construit une URL vers l'API v1 à partir d'un chemin (commençant par '/')
static String apiV1(String path) => "${apiBaseUrl}/api/v1$path"; static String apiV1(String path) => '$apiBaseUrl/api/v1$path';
} }

View File

@ -1,10 +1,11 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:p_tits_pas/services/auth_service.dart';
/// Barre principale du dashboard admin : 2 onglets (Gestion des utilisateurs | Paramètres) + infos utilisateur. /// Barre du dashboard admin : onglets Gestion des utilisateurs | Paramètres + déconnexion.
class DashboardAppBarAdmin extends StatelessWidget implements PreferredSizeWidget { class DashboardAppBarAdmin extends StatelessWidget implements PreferredSizeWidget {
final int selectedIndex; final int selectedIndex;
final ValueChanged<int> onTabChange; final ValueChanged<int> onTabChange;
/// Si false, l'onglet "Gestion des utilisateurs" est grisé et inaccessible.
final bool setupCompleted; final bool setupCompleted;
const DashboardAppBarAdmin({ const DashboardAppBarAdmin({
@ -115,9 +116,10 @@ class DashboardAppBarAdmin extends StatelessWidget implements PreferredSizeWidge
child: const Text('Annuler'), child: const Text('Annuler'),
), ),
ElevatedButton( ElevatedButton(
onPressed: () { onPressed: () async {
Navigator.pop(context); Navigator.pop(context);
// TODO: Implémenter la logique de déconnexion await AuthService.logout();
if (context.mounted) context.go('/login');
}, },
child: const Text('Déconnecter'), child: const Text('Déconnecter'),
), ),
@ -127,7 +129,7 @@ class DashboardAppBarAdmin extends StatelessWidget implements PreferredSizeWidge
} }
} }
/// Sous-barre affichée quand "Gestion des utilisateurs" est actif : 4 onglets sans infos utilisateur. /// Sous-barre : Gestionnaires | Parents | Assistantes maternelles | Administrateurs.
class DashboardUserManagementSubBar extends StatelessWidget { class DashboardUserManagementSubBar extends StatelessWidget {
final int selectedSubIndex; final int selectedSubIndex;
final ValueChanged<int> onSubTabChange; final ValueChanged<int> onSubTabChange;