Some checks failed
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Lint (ubuntu-latest) (push) Has been cancelled
CI / Lint (windows-latest) (push) Has been cancelled
CI / Check (ubuntu-latest) (push) Has been cancelled
CI / Check (windows-latest) (push) Has been cancelled
CodeQL / Analyze (${{ matrix.language }}) (none, javascript-typescript) (push) Has been cancelled
Deploy Website on push / Deploy Push Playground Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Docs Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Antd Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Element Ftp (push) Has been cancelled
Deploy Website on push / Deploy Push Naive Ftp (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
CI / CI OK (push) Has been cancelled
Deploy Website on push / Rerun on failure (push) Has been cancelled
29 lines
768 B
TypeScript
29 lines
768 B
TypeScript
import { verifyAccessToken } from '~/utils/jwt-utils';
|
|
import { MOCK_MENU_LIST } from '~/utils/mock-data';
|
|
import { unAuthorizedResponse } from '~/utils/response';
|
|
|
|
const namesMap: Record<string, any> = {};
|
|
|
|
function getNames(menus: any[]) {
|
|
menus.forEach((menu) => {
|
|
namesMap[menu.name] = String(menu.id);
|
|
if (menu.children) {
|
|
getNames(menu.children);
|
|
}
|
|
});
|
|
}
|
|
getNames(MOCK_MENU_LIST);
|
|
|
|
export default eventHandler(async (event) => {
|
|
const userinfo = verifyAccessToken(event);
|
|
if (!userinfo) {
|
|
return unAuthorizedResponse(event);
|
|
}
|
|
const { id, name } = getQuery(event);
|
|
|
|
return (name as string) in namesMap &&
|
|
(!id || namesMap[name as string] !== String(id))
|
|
? useResponseSuccess(true)
|
|
: useResponseSuccess(false);
|
|
});
|