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
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |