Skip to content

权限管理与角色体系 ​

想在群里对我发号施令?那得先看看你在我心里的“权限等级”有多高咯~

Eridanus 的权限机制不是摆设,它直接连接着 SQLite 数据库与用户系统,任何敏感操作(比如拉黑名单、改配置、调用高级工具)都会先掏出小本本核对你的身份。

权限等级金字塔 ​

整个体系从低到高划分得明明白白:

等级数值角色称谓拥有的能力概览
0用户 (User)默认等级。所有人注册后的基准权限,能正常玩基础插件、签到、聊天和娱乐功能
10关注者 (Follower)进阶活跃群友,可解锁部分轻度限制的扩展玩法
100贡献者 (Contributor)核心参与者,拥有更宽裕的频率限制与高级生成能力
500信任者 (Trusted)深度受信任用户,可协助管理部分日常群互动
1000管理员 (Master)至高权限! 主人专属级别,拥有名单管理、系统维护、群广播与授权生杀大权

Master 的至高权威首先来自 run/common_config/basic_config.yaml 中的 master.id,只要是你填写的 QQ 号,在我这里就是无需怀疑的第一主人~

源码支持的精确授权指令 ​

源码位于 run/system_plugin/user_information.py,只有当前执行者自身的权限达到配置的 permit_user_operate_level(默认 1000 级)时,才能发起授权:

  • 授权#<目标QQ>#<等级数值>
    • 示例:授权#12345678#100(将 QQ 12345678 的等级设定为 100 级贡献者)
    • 源码解析要求必须使用半角井号 # 分隔,分为三段!
  • 授权群#<目标群号>#<等级数值>
    • 示例:授权群#987654321#10(对群级别设定默认权限等级)

如果授权者的权限不够,我可是会直接把小脸一转,傲娇地回一句:“@用户 的权限好像不够喵”哦~

配置文件在哪里? ​

修改 run/system_plugin/config.yaml 中的 user_data 区块:

yaml
user_data:
  change_info_operate_level: 0     # 修改自己城市等个人资料所需的最低等级(默认0级谁都能改)
  permit_user_operate_level: 1000  # 允许使用“授权#”指令的操作权限等级(默认只有1000级主人可操作)

还有黑白名单操作的权限门槛,在 run/common_config/basic_config.yaml 里:

yaml
user_handle_logic_operate_level: 1000   # 拉黑或解黑用户需要的等级
group_handle_logic_operate_level: 1000  # 拉黑或解黑群聊需要的等级
邀请bot加群所需权限: 0                    # 谁能邀请我进群
申请bot好友所需权限: 0                    # 谁能加我为好友

如果你想让某个小帮手也能帮忙拉黑违规人员,可以把 user_handle_logic_operate_level 调到 500,再把小帮手授权到 500 级信任者就可以啦。