73 lines
1.5 KiB
JavaScript
73 lines
1.5 KiB
JavaScript
/**
|
|
* 权限管理类
|
|
*/
|
|
class AuthManager {
|
|
constructor() {
|
|
this.permissions = uni.getStorageSync('userPermissions') || []
|
|
}
|
|
|
|
/**
|
|
* 设置用户权限
|
|
* @param {Array} permissions - 权限数组
|
|
*/
|
|
setPermissions(permissions) {
|
|
this.permissions = permissions
|
|
uni.setStorageSync('userPermissions', permissions)
|
|
console.log('权限已设置:', permissions)
|
|
}
|
|
|
|
/**
|
|
* 清除权限
|
|
*/
|
|
clearPermissions() {
|
|
this.permissions = []
|
|
uni.removeStorageSync('userPermissions')
|
|
}
|
|
|
|
/**
|
|
* 检查权限
|
|
* @param {string|Array} permission - 单个权限或权限数组
|
|
* @returns {boolean}
|
|
*/
|
|
check(permission) {
|
|
if (!permission) return true
|
|
|
|
// 如果是数组,检查是否有任一权限
|
|
if (Array.isArray(permission)) {
|
|
return permission.some(p => this.hasPermission(p))
|
|
}
|
|
|
|
// 单个权限检查
|
|
return this.hasPermission(permission)
|
|
}
|
|
|
|
/**
|
|
* 检查所有权限
|
|
* @param {Array} permissions - 权限数组
|
|
* @returns {boolean}
|
|
*/
|
|
checkAll(permissions) {
|
|
if (!Array.isArray(permissions)) return false
|
|
return permissions.every(p => this.hasPermission(p))
|
|
}
|
|
|
|
/**
|
|
* 内部权限检查方法
|
|
* @param {string} permission
|
|
* @returns {boolean}
|
|
*/
|
|
hasPermission(permission) {
|
|
return this.permissions.includes(permission)
|
|
}
|
|
|
|
/**
|
|
* 获取当前权限列表
|
|
* @returns {Array}
|
|
*/
|
|
getPermissions() {
|
|
return [...this.permissions]
|
|
}
|
|
}
|
|
|
|
// 创建单例实例
|
|
export const auth = new AuthManager() |