import { useUserStore } from '@/store/modules/user'
|
function checkRolePermission(el, binding) {
|
const userStore = useUserStore()
|
const userRoles = userStore.getUserInfo.roles
|
if (!userRoles?.length) {
|
removeElement(el)
|
return
|
}
|
const requiredRoles = Array.isArray(binding.value) ? binding.value : [binding.value]
|
const hasPermission = requiredRoles.some((role) => userRoles.includes(role))
|
if (!hasPermission) {
|
removeElement(el)
|
}
|
}
|
function removeElement(el) {
|
if (el.parentNode) {
|
el.parentNode.removeChild(el)
|
}
|
}
|
const rolesDirective = {
|
mounted: checkRolePermission,
|
updated: checkRolePermission
|
}
|
function setupRolesDirective(app) {
|
app.directive('roles', rolesDirective)
|
}
|
export { setupRolesDirective }
|