diff --git a/server/routers.ts b/server/routers.ts index 2919a22..a8d71f5 100644 --- a/server/routers.ts +++ b/server/routers.ts @@ -1024,7 +1024,7 @@ export const appRouter = router({ return await generateEmailPreview(input); }), - exportExcel: adminProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { + exportExcel: protectedProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { const sequence = await db.getSequenceById(input.sequenceId); if (!sequence) throw new TRPCError({ code: 'NOT_FOUND', message: 'Séquence introuvable' }); @@ -1065,7 +1065,7 @@ export const appRouter = router({ }; }), - exportPDF: adminProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { + exportPDF: protectedProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { const sequence = await db.getSequenceById(input.sequenceId); if (!sequence) throw new TRPCError({ code: 'NOT_FOUND', message: 'Séquence introuvable' }); @@ -1106,7 +1106,7 @@ export const appRouter = router({ }; }), - exportFeuillePresence: adminProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { + exportFeuillePresence: protectedProcedure.input(z.object({ sequenceId: z.number() })).mutation(async ({ input }) => { const sequence = await db.getSequenceById(input.sequenceId); if (!sequence) throw new TRPCError({ code: 'NOT_FOUND', message: 'Séquence introuvable' }); diff --git a/todo.md b/todo.md index 00fe146..738db9f 100644 --- a/todo.md +++ b/todo.md @@ -1200,3 +1200,10 @@ - [x] Ajouter une validation frontend en temps réel dans les champs de date pour afficher un message d'erreur immédiat - [ ] Restreindre les droits des formateurs (pas de modification/suppression de formations et séquences) - [ ] Restreindre les droits des formateurs pour qu'ils ne puissent pas créer/modifier/supprimer des apprenants + +## Autoriser les formateurs à accéder aux exports et feuilles de présence + +- [x] Identifier les procédures backend concernées (exports PDF/Excel, feuille de présence) +- [x] Modifier les restrictions pour autoriser les formateurs +- [ ] Tester les modifications +- [ ] Déployer sur le VPS