diff --git a/client/src/components/DashboardLayout.tsx b/client/src/components/DashboardLayout.tsx index b280e00..e4391ff 100644 --- a/client/src/components/DashboardLayout.tsx +++ b/client/src/components/DashboardLayout.tsx @@ -69,6 +69,11 @@ const menuSections = [ { icon: Settings, label: "Configuration SMTP", path: "/admin/email-config" }, { icon: Settings, label: "Paramètres", path: "/admin/parametres" }, { icon: FileText, label: "Attestations de formation", path: "/admin/attestations" }, + ] + }, + { + title: "Gestion technique", + items: [ { icon: Shield, label: "Sécurité SSH (Fail2Ban)", path: "/admin/fail2ban" }, ] }, diff --git a/client/src/pages/admin/AdminFail2Ban.tsx b/client/src/pages/admin/AdminFail2Ban.tsx index a816540..b3ee10f 100644 --- a/client/src/pages/admin/AdminFail2Ban.tsx +++ b/client/src/pages/admin/AdminFail2Ban.tsx @@ -1,5 +1,6 @@ import { useState } from "react"; import { trpc } from "@/lib/trpc"; +import DashboardLayout from "@/components/DashboardLayout"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; @@ -60,6 +61,7 @@ export default function AdminFail2Ban() { const alertLevel = recentBans && recentBans >= 10 ? "danger" : recentBans && recentBans >= 5 ? "warning" : "safe"; return ( +
@@ -235,5 +237,6 @@ export default function AdminFail2Ban() {
+ ); } diff --git a/todo.md b/todo.md index 271f04a..50b0564 100644 --- a/todo.md +++ b/todo.md @@ -877,3 +877,6 @@ - [x] Créer l'interface admin du tableau de bord Fail2Ban avec possibilité de débannir - [x] Implémenter le système d'alertes email pour les attaques massives (>10 IPs/heure) - [x] Tester et déployer le monitoring Fail2Ban sur le VPS +- [x] Créer une nouvelle section "Gestion technique" dans le menu de navigation +- [x] Déplacer "Sécurité SSH (Fail2Ban)" de Configuration vers Gestion technique +- [x] Intégrer la page AdminFail2Ban dans DashboardLayout pour afficher le menu latéral