admin-vben5/packages/business/access/src/use-access.ts

27 lines
750 B
TypeScript
Raw Normal View History

import { computed } from 'vue';
import { preferences } from '@vben-core/preferences';
import { useCoreAccessStore } from '@vben-core/stores';
function useAccess() {
const coreAccessStore = useCoreAccessStore();
const accessMode = computed(() => {
return preferences.app.accessMode;
});
/**
*
* @description: Determine whether there is permissionThe role is judged by the user's role
* @param roles
*/
function hasAuthByRole(roles: string[]) {
const userRoleSet = new Set(coreAccessStore.getUserRoles);
const intersection = roles.filter((item) => userRoleSet.has(item));
return intersection.length > 0;
}
return { accessMode, hasAuthByRole };
}
export { useAccess };