Checkpoint: Amélioration de la page Paramètres avec :
- Ajout de 3 nouveaux paramètres globaux : délai d'expiration QR codes (minutes), durée de validité tokens (heures), notifications actives (boolean) - Création de la table historiqueParametres pour tracer toutes les modifications avec userId, userName, champModifié, ancienneValeur, nouvelleValeur et dateModification - Ajout d'un bouton "Tester l'URL" avec indicateur visuel de statut (vert si accessible, rouge si erreur) - Affichage de l'historique des modifications dans un tableau avec toutes les informations de traçabilité - Mise à jour automatique de l'historique lors de chaque modification de paramètre
This commit is contained in:
@@ -1472,15 +1472,46 @@ export const appRouter = router({
|
||||
return getParametres();
|
||||
}),
|
||||
|
||||
update: adminProcedure
|
||||
.input(z.object({
|
||||
urlPublique: z.string().url().optional(),
|
||||
delaiExpirationQR: z.number().int().positive().optional(),
|
||||
dureeValiditeToken: z.number().int().positive().optional(),
|
||||
notificationsActives: z.boolean().optional(),
|
||||
}))
|
||||
.mutation(async ({ input, ctx }) => {
|
||||
const { updateParametres } = await import("./parametresDb");
|
||||
await updateParametres(input, ctx.user.id, ctx.user.name || "Administrateur");
|
||||
return { success: true };
|
||||
}),
|
||||
|
||||
updateUrlPublique: adminProcedure
|
||||
.input(z.object({
|
||||
urlPublique: z.string().url(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
.mutation(async ({ input, ctx }) => {
|
||||
const { updateUrlPublique } = await import("./parametresDb");
|
||||
await updateUrlPublique(input.urlPublique);
|
||||
await updateUrlPublique(input.urlPublique, ctx.user.id, ctx.user.name || "Administrateur");
|
||||
return { success: true };
|
||||
}),
|
||||
|
||||
testerUrl: adminProcedure
|
||||
.input(z.object({
|
||||
url: z.string(),
|
||||
}))
|
||||
.mutation(async ({ input }) => {
|
||||
const { testerUrl } = await import("./parametresDb");
|
||||
return testerUrl(input.url);
|
||||
}),
|
||||
|
||||
getHistorique: adminProcedure
|
||||
.input(z.object({
|
||||
limit: z.number().int().positive().default(50),
|
||||
}))
|
||||
.query(async ({ input }) => {
|
||||
const { getHistoriqueParametres } = await import("./parametresDb");
|
||||
return getHistoriqueParametres(input.limit);
|
||||
}),
|
||||
}),
|
||||
|
||||
// ===== ANALYTICS =====
|
||||
|
||||
Reference in New Issue
Block a user