'use client'; import Link from 'next/link'; import { 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, permission: 'canViewUsers' as const, altPermission: 'canManageUsers' as const }, { href: '/admin/oauth', label: 'OAuth', icon: Boxes, permission: 'canManageOAuth' as const }, { href: '/admin/rbac', label: 'Роли', icon: ShieldCheck, permission: 'canManageRoles' as const, superAdminOnly: true }, { href: '/admin/settings', label: 'Настройки', icon: Settings2, permission: '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 Boolean(user[link.permission]) || (link.altPermission ? Boolean(user[link.altPermission]) : false) || user.isSuperAdmin; }); return ( ); }