import { useState } from "react"; import { useAuthUnified } from "@/hooks/useAuthUnified"; import { hasPermission } from "@/lib/permissions"; import { Settings, Database, Server, Bug, Cloud } from "lucide-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { AlertTriangle } from "lucide-react"; // Import des composants existants import BackupManager from "./BackupManager"; import NocoDBConfig from "./NocoDBConfig"; import DatabaseDebug from "./DatabaseDebug"; import WeatherSettings from "./WeatherSettings"; export default function Utilities() { const { user } = useAuthUnified(); // Détecter l'onglet actif basé sur l'URL pour la compatibilité const [activeTab, setActiveTab] = useState(() => { const path = window.location.pathname; if (path === '/backup') return 'backups'; if (path === '/nocodb-config') return 'nocodb'; if (path === '/database-debug') return 'debug'; if (path === '/weather-settings') return 'weather'; return 'backups'; }); // Vérification des permissions pour chaque onglet const canManageBackups = hasPermission(user?.role || '', 'backups', 'manage'); const canManageNocoDB = user?.role === 'admin'; const canDebugDatabase = user?.role === 'admin'; const canManageWeather = user?.role === 'admin'; // Si l'utilisateur n'a aucune permission, afficher le message d'accès refusé if (!canManageBackups && !canManageNocoDB && !canDebugDatabase && !canManageWeather) { return (
Outils de gestion et de maintenance du système