update oauth

This commit is contained in:
lendry
2026-06-25 14:23:55 +03:00
parent c3e06e03cf
commit 1796008a28
21 changed files with 340 additions and 64 deletions

View File

@@ -6,16 +6,37 @@ 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 }
{
href: '/admin/users',
label: 'Пользователи',
icon: Users,
permissions: ['canViewUsers', 'canManageUsers'] 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 Boolean(user[link.permission]) || (link.altPermission ? Boolean(user[link.altPermission]) : false) || user.isSuperAdmin;
return link.permissions.some((permission) => Boolean(user[permission])) || user.isSuperAdmin;
});
return (