完善角色权限与数据隔离
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { Navigate, Outlet } from 'react-router-dom'
|
||||
import { Result, Spin } from 'antd'
|
||||
import { useAuth } from '@/stores/auth'
|
||||
|
||||
const RequireAuth = () => {
|
||||
@@ -35,4 +36,16 @@ export const RequireTenantAdmin = () => {
|
||||
return <Outlet />
|
||||
}
|
||||
|
||||
export const RequirePermission = ({ anyOf }: { anyOf: string[] }) => {
|
||||
const { user, permissions, permissionsLoaded } = useAuth()
|
||||
if (!user) return <Navigate to="/login" replace />
|
||||
if (!permissionsLoaded) {
|
||||
return <div className="h-full flex items-center justify-center"><Spin /></div>
|
||||
}
|
||||
if (!anyOf.some(code => permissions.has(code))) {
|
||||
return <Result status="403" title="403" subTitle="无权访问此页面" />
|
||||
}
|
||||
return <Outlet />
|
||||
}
|
||||
|
||||
export default RequireAuth
|
||||
|
||||
Reference in New Issue
Block a user