51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import store from '@/store'
 | 
						|
 | 
						|
/**
 | 
						|
 * 字符权限校验
 | 
						|
 * @param {Array} value 校验值
 | 
						|
 * @returns {Boolean}
 | 
						|
 */
 | 
						|
export function checkPermi(value) {
 | 
						|
  if (value && value instanceof Array && value.length > 0) {
 | 
						|
    const permissions = store.getters && store.getters.permissions
 | 
						|
    const permissionDatas = value
 | 
						|
    const all_permission = "*:*:*"
 | 
						|
 | 
						|
    const hasPermission = permissions.some(permission => {
 | 
						|
      return all_permission === permission || permissionDatas.includes(permission)
 | 
						|
    })
 | 
						|
 | 
						|
    if (!hasPermission) {
 | 
						|
      return false
 | 
						|
    }
 | 
						|
    return true
 | 
						|
  } else {
 | 
						|
    console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
 | 
						|
    return false
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * 角色权限校验
 | 
						|
 * @param {Array} value 校验值
 | 
						|
 * @returns {Boolean}
 | 
						|
 */
 | 
						|
export function checkRole(value) {
 | 
						|
  if (value && value instanceof Array && value.length > 0) {
 | 
						|
    const roles = store.getters && store.getters.roles
 | 
						|
    const permissionRoles = value
 | 
						|
    const super_admin = "admin"
 | 
						|
 | 
						|
    const hasRole = roles.some(role => {
 | 
						|
      return super_admin === role || permissionRoles.includes(role)
 | 
						|
    })
 | 
						|
 | 
						|
    if (!hasRole) {
 | 
						|
      return false
 | 
						|
    }
 | 
						|
    return true
 | 
						|
  } else {
 | 
						|
    console.error(`need roles! Like checkRole="['admin','editor']"`)
 | 
						|
    return false
 | 
						|
  }
 | 
						|
} |