Blame view

src/directive/permission/permission.js 562 Bytes
d7d9c38c2   Adam   auto commit the c...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  import store from '@/store'
  
  export default {
    inserted(el, binding, vnode) {
      const { value } = binding
      const roles = store.getters && store.getters.roles
  
      if (value && value instanceof Array && value.length > 0) {
        const permissionRoles = value
  
        const hasPermission = roles.some(role => {
          return permissionRoles.includes(role)
        })
  
        if (!hasPermission) {
          el.parentNode && el.parentNode.removeChild(el)
        }
      } else {
        throw new Error(`need roles! Like v-permission="['admin','editor']"`)
      }
    }
  }