import RenderAuthorize from '@/components/Authorized'; import { isDev } from './tools.ts'; // const isDev = false; let auth = []; /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable import/no-mutable-exports */ let Authorized = RenderAuthorize(getAuthority()); // Reload the rights component const reloadAuthorized = () => { Authorized = RenderAuthorize(getAuthority()); }; /** * hard code * block need it。 */ window.reloadAuthorized = reloadAuthorized; export { reloadAuthorized }; export default Authorized; // use localStorage to store the authority info, which might be sent from server in actual project. export function getAuthority(str) { if (!isDev) return [...auth]; const authorityString = typeof str === 'undefined' && localStorage ? localStorage.getItem('panda-oms-authority') : str; // authorityString could be admin, "admin", ["admin"] let authority; try { if (authorityString) { authority = JSON.parse(authorityString); } } catch (e) { authority = authorityString; } if (typeof authority === 'string') { return [authority]; } return authority; } export function setAuthority(authority) { const proAuthority = typeof authority === 'string' ? [authority] : authority; if (isDev) { localStorage.setItem('panda-oms-authority', JSON.stringify(proAuthority)); } else { auth = proAuthority; } // auto reload reloadAuthorized(); }