'use client'; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { motion } from 'framer-motion'; import { Building2, Palette, KeyRound, Mail, Sliders, ArrowRight, Loader2 } from 'lucide-react'; import { createClient } from '@/lib/supabase/client'; import { useRouter } from 'next/navigation'; const menuItems = [ { title: 'Firmendaten & Anschrift', description: 'Verwaltung der eigenen Firmenanschrift, Rechnungsadresse und Sublines für Dokumente.', href: '/admin/einstellungen/firmendaten', icon: Building2, color: 'text-blue-400', bgColor: 'bg-blue-500/10 border-blue-500/20', }, { title: 'Branding & Farbschema', description: 'Anpassung von Farbschemata (Primary / Accent), Buttons und Themes für den Webshop.', href: '/admin/einstellungen/branding', icon: Palette, color: 'text-violet-400', bgColor: 'bg-violet-500/10 border-violet-500/20', }, { title: 'CASPOS LicServer', description: 'REST API Konfiguration für den Lizenzserver & automatisierte Schlüsselgenerierung.', href: '/admin/einstellungen/licserver', icon: KeyRound, color: 'text-amber-400', bgColor: 'bg-amber-500/10 border-amber-500/20', }, { title: 'SMTP E-Mail Server', description: 'Serverdaten & Authentifizierung für Bestellbestätigungen und Benachrichtigungen.', href: '/admin/settings', icon: Mail, color: 'text-sky-400', bgColor: 'bg-sky-500/10 border-sky-500/20', }, { title: 'System & Backup', description: 'Demo-Banner Steuerung sowie ZIP-Export und Wiederherstellung der Datenbank.', href: '/admin/einstellungen/system', icon: Sliders, color: 'text-emerald-400', bgColor: 'bg-emerald-500/10 border-emerald-500/20', }, ]; export default function AdminSettingsOverview() { const [loading, setLoading] = useState(true); const router = useRouter(); useEffect(() => { async function checkAccess() { try { const supabase = createClient(); const { data: { user } } = await supabase.auth.getUser(); if (!user) { router.push('/auth/login'); return; } const { data } = await supabase.from('users').select('role').eq('id', user.id).single(); if (!data || data.role === 'verwaltung') { router.push('/admin'); return; } } catch (err) { console.error(err); } finally { setLoading(false); } } checkAccess(); }, [router]); if (loading) { return
Wählen Sie eine Kategorie aus, um Konfigurationen, Server-Anbindungen oder Branding anzupassen.
{item.description}