fix: enforce platform role menu access

This commit is contained in:
2026-07-27 12:48:35 +08:00
parent cd58e1f6b6
commit 160172bf10
33 changed files with 481 additions and 107 deletions

View File

@@ -7,19 +7,24 @@ export default function usePermission() {
accessRouter(route: RouteLocationNormalized | RouteRecordRaw) {
return (
!route.meta?.requiresAuth ||
!route.meta?.roles ||
route.meta?.roles?.includes('*') ||
route.meta?.roles?.includes(userStore.role)
userStore.role === 'root' ||
(!route.meta?.menuCode && !route.meta?.roles) ||
Boolean(
route.meta?.menuCode &&
userStore.menuCodes.includes(route.meta.menuCode),
) ||
Boolean(route.meta?.roles?.includes(userStore.role))
);
},
findFirstPermissionRoute(_routers: any, role = 'admin') {
findFirstPermissionRoute(_routers: any, role = userStore.role) {
const cloneRouters = [..._routers];
while (cloneRouters.length) {
const firstElement = cloneRouters.shift();
if (
firstElement?.meta?.roles?.find((el: string[]) => {
return el.includes('*') || el.includes(role);
})
role === 'root' ||
(firstElement?.meta?.menuCode &&
userStore.menuCodes.includes(firstElement.meta.menuCode)) ||
firstElement?.meta?.roles?.includes(role)
)
return { name: firstElement.name };
if (firstElement?.children) {