mc.privilege 权限控制库
更新时间:2025/06/27
在Gitcode上查看源码mc.privilege
提供了常用的权限操作函数。
加载方式
lua
local privilege = require 'mc.privilege'
接口说明
privilege.get_privilege
描述
- 使用
get_privilege(privs)
方法计算实际权限
参数
参数 | 类型 | 描述 | 是否必选 |
---|---|---|---|
privs | table | 用户权限的字符串数组 | 必选 |
返回
- 计算得到的权限值,类型为string
异常
- 无
示例
lua
local privilege = require 'mc.privilege'
lu.assertEquals(privilege.get_privilege(), '0')
lu.assertEquals(privilege.get_privilege({'ReadOnly', 'BasicSetting'}), '9')
lu.assertEquals(privilege.get_privilege({'ReadOnly', 'BasicSetting', 'aaa'}), '9')
privilege.validate
描述
- 使用
validate(expect_priv)
方法进行用户鉴权
参数
参数 | 类型 | 描述 | 是否必选 |
---|---|---|---|
expect_priv | integer | 期望的用户权限 | 可选 |
返回
- 无
异常
- 遇到如下情况时,将抛异常: 权限值无效(非数字); 权限不足(按位与校验失败); 用户需修改密码(expect_priv未设置且用户权限为ConfigureSelf).
示例
lua
local privilege = require 'mc.privilege'
privilege.validate(expect_priv)
Privilege
计算期望权限值
九大权限的对应值如下,多个权限直接进行相加即可,如 ReadOnly + DiagnoseMgmt 权限为 1 + 2 = 3
lua
local privilege = {
ReadOnly = 2 ^ 0,
DiagnoseMgmt = 2 ^ 1,
SecurityMgmt = 2 ^ 2,
BasicSetting = 2 ^ 3,
UserMgmt = 2 ^ 4,
PowerMgmt = 2 ^ 5,
VMMMgmt = 2 ^ 6,
KVMMgmt = 2 ^ 7,
ConfigureSelf = 2 ^ 8
}