mc.privilege 权限控制库
更新时间:2025/06/27
在Gitcode上查看源码

mc.privilege提供了常用的权限操作函数。

加载方式

lua
local privilege = require 'mc.privilege'

接口说明

privilege.get_privilege

描述

  • 使用get_privilege(privs)方法计算实际权限

参数

参数类型描述是否必选
privstable用户权限的字符串数组必选

返回

  • 计算得到的权限值,类型为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_privinteger期望的用户权限可选

返回

异常

  • 遇到如下情况时,将抛异常: 权限值无效(非数字); 权限不足(按位与校验失败); 用户需修改密码(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
}