| import { checkRole, matchPermission } from './utils/permission'; |
| /** |
| * @see https://umijs.org/zh-CN/plugins/plugin-access |
| * */ |
| export default function access(initialState: { currentUser?: API.CurrentUser } | undefined) { |
| const { currentUser } = initialState ?? {}; |
| const hasPerms = (perm: string) => { |
| return matchPermission(initialState?.currentUser?.permissions, perm); |
| }; |
| const roleFiler = (route: { authority: string[] }) => { |
| return checkRole(initialState?.currentUser?.roles, route.authority); |
| }; |
| return { |
| canAdmin: currentUser && currentUser.access === 'admin', |
| hasPerms, |
| roleFiler, |
| }; |
| } |
| |
| export function setSessionToken( |
| access_token: string | undefined, |
| refresh_token: string | undefined, |
| expireTime: number, |
| ): void { |
| if (access_token) { |
| localStorage.setItem('access_token', access_token); |
| } else { |
| localStorage.removeItem('access_token'); |
| } |
| if (refresh_token) { |
| localStorage.setItem('refresh_token', refresh_token); |
| } else { |
| localStorage.removeItem('refresh_token'); |
| } |
| localStorage.setItem('expireTime', `${expireTime}`); |
| } |
| |
| export function getAccessToken() { |
| return localStorage.getItem('access_token'); |
| } |
| |
| export function getRefreshToken() { |
| return localStorage.getItem('refresh_token'); |
| } |
| |
| export function getTokenExpireTime() { |
| return localStorage.getItem('expireTime'); |
| } |
| |
| export function clearSessionToken() { |
| sessionStorage.removeItem('user'); |
| localStorage.removeItem('access_token'); |
| localStorage.removeItem('refresh_token'); |
| localStorage.removeItem('expireTime'); |
| } |