Corrige la suppression d'adhérent (FK) et intègre le vrai logo

- deleteMember: supprime d'abord les promotions liées et détache les comptes
  utilisateurs (transaction) avant de supprimer l'adhérent, ce qui évite la
  violation de clé étrangère (erreur serveur au clic « Supprimer »).
- Logo: remplace le SVG provisoire par le logo officiel (public/assets/logo.png)
  et met à jour toutes les références (accueil, login, backend, favicon).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XwfhYHzC9hQWPDnQ2p53GL
This commit is contained in:
Claude committed 2026-06-26 18:26:31 +00:00
1 parent 51f5691f45
commit 39221fd7ef
7 files changed
+13 -54

No files matched your search

+7 -1
View File
@@ -129,7 +129,13 @@ export async function deleteMember(formData: FormData) {
if (!can(role, "manageMembers")) throw new Error("Accès refusé");
const id = Number(formData.get("id"));
if (!id) return;
await db.delete(members).where(eq(members.id, id));
// Remove dependent rows first to satisfy foreign-key constraints:
// delete the member's promotions and detach any linked user account.
await db.transaction(async (tx) => {
await tx.delete(promotions).where(eq(promotions.memberId, id));
await tx.update(users).set({ memberId: null }).where(eq(users.memberId, id));
await tx.delete(members).where(eq(members.id, id));
});
revalidatePath("/backend/adherents");
revalidatePath("/");
}