Files
ReelShortWeb/src/stores/rbac.js
T

20 lines
659 B
JavaScript

// Author: fruit.com.cn
import { computed } from 'vue'
import { useUserStoreWithOut } from '@/store/modules/user'
/**
* 权限判断:权限码由登录接口下发并存在 user store 中。
* 用法:const { can, hasAny } = useRbac(); can('drama:create')
*/
export function useRbac() {
const userStore = useUserStoreWithOut()
const permissions = computed(() => {
const list = userStore.getUserInfo?.permissions
return Array.isArray(list) ? list : []
})
const can = (code) => permissions.value.includes(code)
const hasAny = (...codes) => codes.some((code) => permissions.value.includes(code))
return { permissions, can, hasAny }
}