0.0.8 • Published 2 years ago
koishi-plugin-miao-permission v0.0.8
@koishims/koishi-plugin-miao-permission
Koishi 权限管理系统
配置
配置最高权限
- 管理员用户: 此 ID 的用户默认拥有最高权限
- 管理员权限: 用于自定义最高权限 拥有此权限的用户拥有最高权限
- 你可以在权限页面新增一个权限组 比如
admin
- 然后给权限组添加权限
luckperms.admin
- 然后将用户添加到权限组
admin
- 你可以在权限页面新增一个权限组 比如
配置扩展
由于目前配置注入存在BUG 需要官方修复 所以用了一个不太完美的方案防止重复注入 官方已修复
- 给所有命令扩展了两个配置
permission
执行命令所需要的权限- 默认权限为
command.命令名称
若未设置 用户默认拥有此权限 - 如果配置了权限 那么用户需要拥有此权限之后才能执行命令
- 默认权限为
showWarning
是否显示警告(默认存在配置项 加一个界面配置而已)
指令
用户命令
lp user @User permission info
查看用户权限lp user @User permission set <permission>
设置用户权限lp user @User permission unset <permission>
移除用户权限
permission
可以忽略
频道命令
lp channel permission info
查看权限lp channel permission et <permission>
设置频道权限lp channel permission unset <permission>
移除频道权限
permission
可以忽略
权限组命令
lp listgroup
查看权限组lp creategroup <group>
新建权限组lp deletegroup <group>
删除权限组lp group <group> info
查看组权限lp group <group> set <permission>
设置组权限lp group <group> unset <permission>
移除组权限
服务
提供了 Permission 服务
此服务默认检测用户命令权限
getUser(pid: string, uid: string, observed = false)
获取用户getGroups
获取权限组列表getGroup(name: string, observed = false)
获取权限组createGroup(name: string)
创建权限组deleteGroup(name: string)
删除权限组setPermission(model: Observed<any, any>, permission: string)
设置权限unsetPermission(model: Observed<any, any>, permission: string)
删除权限- 上面两个方法 需要传入
Observed
对象才能正常更新 - User 和 Group 的 Observed 对象可以用服务的
getUser
/getGroup
获取- 调用方法时 最后一个参数 传
true
即可
- 调用方法时 最后一个参数 传
- Channel 的 Observed 对象 可以用
session.channel
获取
- 上面两个方法 需要传入
hasPermission(permission: Iterable<string>, session: Session)
判断是否有权限