17 lines
536 B
TypeScript
17 lines
536 B
TypeScript
import { checkRole, matchPermission } from './utils/permission';
|
|
|
|
|
|
export default function access(initialState: { currentUser: any } | undefined) {
|
|
const { currentUser } = initialState ?? {};
|
|
const hasPerms = (perm: string) => {
|
|
return matchPermission(initialState?.perms, perm);
|
|
};
|
|
const roleFiler = (route: { authority: string[] }) => {
|
|
return checkRole(initialState?.currentUser?.roles, route.authority);
|
|
};
|
|
return {
|
|
canAdmin: currentUser && currentUser.access === 'admin',
|
|
hasPerms,
|
|
roleFiler,
|
|
};
|
|
} |