mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-11-04 04:08:44 +08:00 
			
		
		
		
	Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vue3 into dev
Conflicts: src/views/infra/fileConfig/fileConfig.data.ts src/views/system/sms/smsChannel/sms.channel.data.ts
This commit is contained in:
		
							
								
								
									
										45
									
								
								src/utils/permission.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								src/utils/permission.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 | 
			
		||||
 | 
			
		||||
const { t } = useI18n() // 国际化
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 字符权限校验
 | 
			
		||||
 * @param {Array} value 校验值
 | 
			
		||||
 * @returns {Boolean}
 | 
			
		||||
 */
 | 
			
		||||
export function checkPermi(value: string[]) {
 | 
			
		||||
  if (value && value instanceof Array && value.length > 0) {
 | 
			
		||||
    const { wsCache } = useCache()
 | 
			
		||||
    const permissionDatas = value
 | 
			
		||||
    const all_permission = '*:*:*'
 | 
			
		||||
    const permissions = wsCache.get(CACHE_KEY.USER).permissions
 | 
			
		||||
    const hasPermission = permissions.some((permission) => {
 | 
			
		||||
      return all_permission === permission || permissionDatas.includes(permission)
 | 
			
		||||
    })
 | 
			
		||||
    return !!hasPermission
 | 
			
		||||
  } else {
 | 
			
		||||
    console.error(t('permission.hasPermission'))
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 角色权限校验
 | 
			
		||||
 * @param {string[]} value 校验值
 | 
			
		||||
 * @returns {Boolean}
 | 
			
		||||
 */
 | 
			
		||||
export function checkRole(value: string[]) {
 | 
			
		||||
  if (value && value instanceof Array && value.length > 0) {
 | 
			
		||||
    const { wsCache } = useCache()
 | 
			
		||||
    const permissionRoles = value
 | 
			
		||||
    const super_admin = 'admin'
 | 
			
		||||
    const roles = wsCache.get(CACHE_KEY.USER).roles
 | 
			
		||||
    const hasRole = roles.some((role) => {
 | 
			
		||||
      return super_admin === role || permissionRoles.includes(role)
 | 
			
		||||
    })
 | 
			
		||||
    return !!hasRole
 | 
			
		||||
  } else {
 | 
			
		||||
    console.error(t('permission.hasRole'))
 | 
			
		||||
    return false
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user