'use client'; import Link from 'next/link'; import { Bot, Boxes, Settings2, ShieldCheck, Users } from 'lucide-react'; import { cn } from '@/lib/utils'; import { PublicUser } from '@/lib/api'; const links = [ { href: '/admin/users', label: 'Пользователи', icon: Users, permissions: ['canViewUsers', 'canManageUsers'] as const }, { href: '/admin/bots', label: 'Боты', icon: Bot, permissions: ['canManageBots'] as const }, { href: '/admin/oauth', label: 'OAuth', icon: Boxes, permissions: ['canViewOAuth', 'canManageOAuth'] as const }, { href: '/admin/rbac', label: 'Роли', icon: ShieldCheck, permissions: ['canManageRoles'] as const, superAdminOnly: true }, { href: '/admin/settings', label: 'Настройки', icon: Settings2, permissions: ['canManageSettings'] as const } ]; export function AdminNav({ active, user }: { active: string; user: PublicUser }) { const visible = links.filter((link) => { if (link.superAdminOnly && !user.canManageRoles) return false; return link.permissions.some((permission) => Boolean(user[permission])) || user.isSuperAdmin; }); return ( ); }