| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- const USER_INFO_KEY = "user_info"
- const ALL_PERMISSION = "*:*:*"
- export const checkPermission = (permission: string): boolean => {
- try {
- const info = uni.getStorageSync(USER_INFO_KEY)
- if (info == null) return false
-
- const infoStr = info as string
- if (infoStr.length === 0) return false
-
- const userObj = JSON.parse(infoStr) as UTSJSONObject
- const permissions = userObj['permissions']
-
- if (permissions == null || !(permissions instanceof Array)) return false
-
- const permissionArray = permissions as UTSArray<string>
-
- if (permissionArray.includes(ALL_PERMISSION)) {
- return true
- }
-
- return permissionArray.includes(permission)
- } catch (e) {
- console.error('权限检查异常:', e)
- return false
- }
- }
- export const checkPermissions = (permissions: string[]): boolean => {
- if (permissions == null || permissions.length === 0) return false
-
- try {
- const info = uni.getStorageSync(USER_INFO_KEY)
- if (info == null) return false
-
- const infoStr = info as string
- if (infoStr.length === 0) return false
-
- const userObj = JSON.parse(infoStr) as UTSJSONObject
- const userPermissions = userObj['permissions']
-
- if (userPermissions == null || !(userPermissions instanceof Array)) return false
-
- const permissionArray = userPermissions as UTSArray<string>
-
- if (permissionArray.includes(ALL_PERMISSION)) {
- return true
- }
-
- return permissions.some((perm: string) => permissionArray.includes(perm))
- } catch (e) {
- console.error('权限检查异常:', e)
- return false
- }
- }
- export const hasAnyPermission = (permissions: string[]): boolean => {
- return checkPermissions(permissions)
- }
- export const hasAllPermissions = (permissions: string[]): boolean => {
- if (permissions == null || permissions.length === 0) return false
-
- try {
- const info = uni.getStorageSync(USER_INFO_KEY)
- if (info == null) return false
-
- const infoStr = info as string
- if (infoStr.length === 0) return false
-
- const userObj = JSON.parse(infoStr) as UTSJSONObject
- const userPermissions = userObj['permissions']
-
- if (userPermissions == null || !(userPermissions instanceof Array)) return false
-
- const permissionArray = userPermissions as UTSArray<string>
-
- if (permissionArray.includes(ALL_PERMISSION)) {
- return true
- }
-
- return permissions.every((perm: string) => permissionArray.includes(perm))
- } catch (e) {
- console.error('权限检查异常:', e)
- return false
- }
- }
|