Checkpoint: Fix: la procédure deleteAll des importLogs permet maintenant aux admins de supprimer tous les logs (pas seulement les leurs). Correction de deleteAllImportLogs dans db.ts pour accepter userId=null (suppression totale).
This commit is contained in:
@@ -485,10 +485,15 @@ export async function getAllImportLogs(): Promise<ImportLog[]> {
|
|||||||
return db.select().from(importLogs).orderBy(desc(importLogs.importedAt));
|
return db.select().from(importLogs).orderBy(desc(importLogs.importedAt));
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteAllImportLogs(userId: number): Promise<void> {
|
export async function deleteAllImportLogs(userId: number | null): Promise<void> {
|
||||||
const db = await getDb();
|
const db = await getDb();
|
||||||
if (!db) throw new Error("Database not available");
|
if (!db) throw new Error("Database not available");
|
||||||
|
if (userId === null) {
|
||||||
|
// Admin : supprime tous les logs
|
||||||
|
await db.delete(importLogs);
|
||||||
|
} else {
|
||||||
await db.delete(importLogs).where(eq(importLogs.userId, userId));
|
await db.delete(importLogs).where(eq(importLogs.userId, userId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ============= LLM LOG OPERATIONS =============
|
// ============= LLM LOG OPERATIONS =============
|
||||||
|
|||||||
@@ -1609,7 +1609,12 @@ export const appRouter = router({
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
deleteAll: protectedProcedure.mutation(async ({ ctx }) => {
|
deleteAll: protectedProcedure.mutation(async ({ ctx }) => {
|
||||||
|
// Les admins suppriment tous les logs, les utilisateurs standard suppriment les leurs
|
||||||
|
if (ctx.user.role === 'admin') {
|
||||||
|
await deleteAllImportLogs(null);
|
||||||
|
} else {
|
||||||
await deleteAllImportLogs(ctx.user.id);
|
await deleteAllImportLogs(ctx.user.id);
|
||||||
|
}
|
||||||
return { success: true };
|
return { success: true };
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user