permissions.js 635 Bytes
import store from '@/store'

const permissions = {
  inserted(element, binding) {
    const { value } = binding
    const permissions = store.getters['user/permissions']
    if (value && value instanceof Array && value.length > 0) {
      const hasPermission = permissions.some((role) => value.includes(role))
      if (!hasPermission)
        element.parentNode && element.parentNode.removeChild(element)
    }
  },
}

const install = function (Vue) {
  Vue.directive('permissions', permissions)
}

if (window.Vue) {
  window['permissions'] = permissions
  Vue.use(install)
}

permissions.install = install
export default permissions