From 6cf31165f9e5a59ab5f6f8e5f4b655299dfb00f4 Mon Sep 17 00:00:00 2001 From: susie-laptop Date: Wed, 12 Mar 2025 22:24:05 -0400 Subject: [PATCH] [dev]add permission page --- src/layouts/HeaderWithNav.jsx | 18 +- src/pages/Permissions/PermissionsPage.jsx | 44 +++ .../components/PendingRequests.css | 37 +++ .../components/PendingRequests.jsx | 292 ++++++++++++++++++ .../components/UserPermissionDetails.jsx | 182 +++++++++++ .../components/UserPermissions.jsx | 206 ++++++++++++ src/router/router.jsx | 13 + src/services/permissionService.js | 55 ++++ src/store/auth/auth.mock.js | 13 - src/store/auth/auth.slice.js | 3 +- src/store/auth/auth.thunk.js | 3 +- src/store/chatHistory/chatHistory.mock.js | 153 --------- src/store/chatHistory/chatHistory.slice.js | 130 -------- src/store/chatHistory/chatHistory.thunks.js | 87 ------ src/store/permissions/permissions.slice.js | 83 +++++ src/store/permissions/permissions.thunks.js | 48 +++ src/store/store.js | 2 + 17 files changed, 982 insertions(+), 387 deletions(-) create mode 100644 src/pages/Permissions/PermissionsPage.jsx create mode 100644 src/pages/Permissions/components/PendingRequests.css create mode 100644 src/pages/Permissions/components/PendingRequests.jsx create mode 100644 src/pages/Permissions/components/UserPermissionDetails.jsx create mode 100644 src/pages/Permissions/components/UserPermissions.jsx create mode 100644 src/services/permissionService.js delete mode 100644 src/store/auth/auth.mock.js delete mode 100644 src/store/chatHistory/chatHistory.mock.js delete mode 100644 src/store/chatHistory/chatHistory.slice.js delete mode 100644 src/store/chatHistory/chatHistory.thunks.js create mode 100644 src/store/permissions/permissions.slice.js create mode 100644 src/store/permissions/permissions.thunks.js diff --git a/src/layouts/HeaderWithNav.jsx b/src/layouts/HeaderWithNav.jsx index 3ee1685..9c9751a 100644 --- a/src/layouts/HeaderWithNav.jsx +++ b/src/layouts/HeaderWithNav.jsx @@ -8,6 +8,7 @@ export default function HeaderWithNav() { const navigate = useNavigate(); const location = useLocation(); const { user } = useSelector((state) => state.auth); + console.log('user', user); const handleLogout = async () => { try { @@ -22,6 +23,9 @@ export default function HeaderWithNav() { return location.pathname.startsWith(path); }; + // 检查用户是否有管理权限(leader 或 admin) + const hasManagePermission = user && (user.role === 'leader' || user.role === 'admin'); + return (