Files
aiot-uniapp/src/hooks/useAccess.ts

42 lines
1.2 KiB
TypeScript
Raw Normal View History

import { useUserStore } from '@/store/user'
/**
* Hook
* @description
*/
function useAccess() {
const userStore = useUserStore()
/**
*
* @description
* @param roles
* @returns
*/
function hasAccessByRoles(roles: string[]): boolean {
const userRoleSet = new Set(userStore.roles)
const intersection = roles.filter(item => userRoleSet.has(item))
return intersection.length > 0
}
/**
*
* @description
* @param codes
* @returns
*/
function hasAccessByCodes(codes: string[]): boolean {
const userCodesSet = new Set(userStore.permissions)
const intersection = codes.filter(item => userCodesSet.has(item))
return intersection.length > 0
}
return {
hasAccessByCodes,
hasAccessByRoles,
}
}
export { useAccess }
export default useAccess