fix: enforce platform role menu access
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user