feat: can also see the menu without permission, but jump to 403

This commit is contained in:
vince
2024-07-10 22:13:55 +08:00
parent 4674380266
commit 95b6bcce6a
5 changed files with 36 additions and 6 deletions

View File

@@ -34,14 +34,12 @@ async function generateRoutesByFrontend(
*/
function hasAuthority(route: RouteRecordRaw, access: string[]) {
const authority = route.meta?.authority;
if (!authority) {
return true;
}
return (
access.some((value) => authority.includes(value)) ||
menuHasVisibleWithForbidden(route)
);
const canAccess = access.some((value) => authority.includes(value));
return canAccess || (!canAccess && menuHasVisibleWithForbidden(route));
}
/**
@@ -57,7 +55,11 @@ function hasVisible(route?: RouteRecordRaw) {
* @param route
*/
function menuHasVisibleWithForbidden(route: RouteRecordRaw) {
return !!route.meta?.menuVisibleWithForbidden;
return (
!!route.meta?.authority &&
Reflect.has(route.meta || {}, 'menuVisibleWithForbidden') &&
!!route.meta?.menuVisibleWithForbidden
);
}
export { generateRoutesByFrontend, hasAuthority, hasVisible };