Files
live-hub-py/web/frontend/src/hooks/usePermissions.ts
T
yml2213 dd56de9bd4 fix: 修复proxy_service和account_service中不当的顶层import
- proxy_service.py: 将requests和WhitelistManager改为函数内延迟import,
  避免启动时加载不需要的依赖;移除未使用的get_exit_ip_via_proxy导入
- account_service.py: 移除未使用的func、joinedload、AuditLog、
  user_has_permission顶层导入
2026-06-23 08:35:29 +08:00

24 lines
693 B
TypeScript

import { useCallback, useMemo } from 'react';
import { getUser, type AuthUser } from '../store/auth';
export function usePermissions(userOverride?: AuthUser | null) {
const user = userOverride === undefined ? getUser() : userOverride;
const permissions = useMemo(() => user?.permissions ?? [], [user]);
const permissionSet = useMemo(() => new Set(permissions), [permissions]);
const can = useCallback((permission: string) => permissionSet.has(permission), [permissionSet]);
const canAny = useCallback(
(items: string[]) => items.some((permission) => permissionSet.has(permission)),
[permissionSet],
);
return {
user,
can,
canAny,
permissions,
};
}