Files
orion-visor/orion-ops-ui/src/hooks/permission.ts

50 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-07-24 10:05:07 +08:00
import { RouteLocationNormalized, RouteRecordRaw } from 'vue-router';
import { useUserStore } from '@/store';
export default function usePermission() {
const userStore = useUserStore();
return {
2023-08-02 17:08:40 +08:00
/**
* 访
*/
2023-07-24 10:05:07 +08:00
accessRouter(route: RouteLocationNormalized | RouteRecordRaw) {
2023-08-02 17:08:40 +08:00
// route.name
// TODO
2023-07-24 10:05:07 +08:00
},
2023-08-02 17:08:40 +08:00
/**
*
*/
hasPermission(permission: string) {
return userStore.permission?.includes('*') ||
userStore.permission?.includes(permission);
},
/**
*
*/
hasAnyPermission(permission: string[]) {
return userStore.permission?.includes('*') ||
permission.map(s => userStore.permission?.includes(s))
.filter(Boolean).length > 0;
2023-07-24 10:05:07 +08:00
},
2023-08-02 17:08:40 +08:00
/**
*
*/
hasRole(role: string) {
return userStore.roles?.includes('admin') ||
userStore.roles?.includes(role);
},
/**
*
*/
hasAnyRole(role: string[]) {
return userStore.roles?.includes('*') ||
role.map(s => userStore.roles?.includes(s))
.filter(Boolean).length > 0;
}
2023-07-24 10:05:07 +08:00
};
}