update oauth
This commit is contained in:
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user