fix[v-permission]: support dynamic set roles (#3251)
This commit is contained in:
		@@ -1,11 +1,11 @@
 | 
			
		||||
import store from '@/store'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  inserted(el, binding, vnode) {
 | 
			
		||||
    const { value } = binding
 | 
			
		||||
    const roles = store.getters && store.getters.roles
 | 
			
		||||
function checkPermission(el, binding) {
 | 
			
		||||
  const { value } = binding
 | 
			
		||||
  const roles = store.getters && store.getters.roles
 | 
			
		||||
 | 
			
		||||
    if (value && value instanceof Array && value.length > 0) {
 | 
			
		||||
  if (value && value instanceof Array) {
 | 
			
		||||
    if (value.length > 0) {
 | 
			
		||||
      const permissionRoles = value
 | 
			
		||||
 | 
			
		||||
      const hasPermission = roles.some(role => {
 | 
			
		||||
@@ -15,8 +15,17 @@ export default {
 | 
			
		||||
      if (!hasPermission) {
 | 
			
		||||
        el.parentNode && el.parentNode.removeChild(el)
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      throw new Error(`need roles! Like v-permission="['admin','editor']"`)
 | 
			
		||||
    }
 | 
			
		||||
  } else {
 | 
			
		||||
    throw new Error(`need roles! Like v-permission="['admin','editor']"`)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  inserted(el, binding) {
 | 
			
		||||
    checkPermission(el, binding)
 | 
			
		||||
  },
 | 
			
		||||
  update(el, binding) {
 | 
			
		||||
    checkPermission(el, binding)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user