- Frontend:
- Create UserService to handle user-related API calls (gestionnaires, parents, AMs, admins)
- Update AdminDashboardScreen to use dynamic widgets
- Implement dynamic management widgets:
- GestionnaireManagementWidget
- ParentManagementWidget
- AssistanteMaternelleManagementWidget
- AdminManagementWidget
- Add data models: ParentModel, AssistanteMaternelleModel
- Update AppUser model
- Update ApiConfig
- Backend:
- Update controllers (Parents, AMs, Gestionnaires, Users) to allow ADMINISTRATEUR role to list users
- Fix: Activate endpoint GET /gestionnaires (import GestionnairesModule in UserModule)
- Docs:
- Add note about backend fix for Gestionnaires module
- Update .cursorrules to forbid worktrees
- Seed:
- Add test data seed script (reset-and-seed-db.sh)
Co-authored-by: Cursor <cursoragent@cursor.com>
2.1 KiB
Note Backend - Activation du module Gestionnaires (Ticket #92)
Problème
L'endpoint GET /api/v1/gestionnaires renvoie une erreur 404 Not Found.
Cela est dû au fait que le GestionnairesModule n'est pas importé dans l'arbre des modules de l'application (via UserModule ou AppModule).
Solution de contournement actuelle (Frontend)
Le frontend utilise actuellement l'endpoint générique /api/v1/users et filtre les résultats côté client pour ne garder que les utilisateurs ayant le rôle gestionnaire.
Fichier concerné : frontend/lib/services/user_service.dart
Correctif Backend à appliquer
Pour activer proprement l'endpoint dédié, il faut effectuer les modifications suivantes dans le backend :
1. Importer le module dans UserModule
Fichier : backend/src/routes/user/user.module.ts
Ajouter GestionnairesModule dans les imports.
import { GestionnairesModule } from './gestionnaires/gestionnaires.module';
@Module({
imports: [
// ... autres imports
GestionnairesModule, // <--- AJOUTER ICI
],
// ...
})
export class UserModule { }
2. Ajouter AuthModule dans GestionnairesModule
Fichier : backend/src/routes/user/gestionnaires/gestionnaires.module.ts
Le contrôleur utilise AuthGuard, qui dépend de JwtService fourni par AuthModule.
import { AuthModule } from 'src/routes/auth/auth.module';
@Module({
imports: [
TypeOrmModule.forFeature([Users]),
AuthModule // <--- AJOUTER ICI
],
controllers: [GestionnairesController],
providers: [GestionnairesService],
})
export class GestionnairesModule { }
Après application du correctif
Une fois ces modifications backend effectuées :
- Redémarrer le serveur backend.
- Modifier le frontend (
frontend/lib/services/user_service.dart) pour utiliser à nouveau l'endpoint dédié :static Future<List<AppUser>> getGestionnaires() async { final response = await http.get( Uri.parse('${ApiConfig.baseUrl}${ApiConfig.gestionnaires}'), headers: await _headers(), ); // ... }