ybt | 02e716d | 2025-04-15 17:19:32 +0800 | [diff] [blame^] | 1 | import React from 'react'; |
| 2 | import { Navigate } from 'react-router-dom'; |
| 3 | |
| 4 | const PermissionRoute = ({ requiredRoles, children }) => { |
| 5 | // 从localStorage获取用户信息 |
| 6 | const user = JSON.parse(localStorage.getItem('user') || '{}'); |
| 7 | const userRole = user.role || 'guest'; |
| 8 | |
| 9 | // 检查用户是否有所需角色 |
| 10 | if (requiredRoles.includes(userRole)) { |
| 11 | return children; |
| 12 | } |
| 13 | |
| 14 | // 如果没有权限,重定向到未授权页面 |
| 15 | return <Navigate to="/unauthorized" replace />; |
| 16 | }; |
| 17 | |
| 18 | export default PermissionRoute; |