diff --git a/README.md b/README.md index e6a9d25..fe43ba4 100644 --- a/README.md +++ b/README.md @@ -42,10 +42,10 @@ ### 安装 -- 使用pip安装 +- 使用nb-cli安装 ```bash - pip install nonebot-plugin-liteperm + nb plugin install nonebot-plugin-liteperm ``` - 使用uv安装 @@ -58,13 +58,12 @@ 修改`pyproject.toml`,在`[tool.nonebot]`下的`plugins = ["nonebot_plugin_liteperm"]`添加插件 - -## [指令文档](docs/commands.md) - -## [API文档](docs/API.md) - ## 内置权限节点 | 权限节点 | 权限描述 | | --- | --- | | `liteperm.admin` | LitePerm管理员 | + +## 文档 + +[点击前往](https://docs.suggar.top/project/liteperm/) diff --git a/docs/API.md b/docs/API.md deleted file mode 100644 index ce3af4f..0000000 --- a/docs/API.md +++ /dev/null @@ -1,104 +0,0 @@ -# API文档 - - -`nonebot-plugin-liteperm.api.rules` - -## `PermissionChecker` 基类 - -- **功能**:权限检查器的抽象基类 -- **参数**: - - `permission: str` - 要检查的权限节点 -- **方法**: - - `checker() -> Callable[[Event, str], Awaitable[bool]]` - 📌 生成供 NoneBot Rule 使用的检查器闭包 - - ```python - async def _checker(event: Event, current_perm=current_perm) -> bool: - return await self._check_permission(event, current_perm) - ``` - - - `_check_permission(event: Event, perm: str) -> bool` - ⚠️ 需子类实现的权限检查核心方法 - -## `UserPermissionChecker` 用户权限检查器 - -- **继承**:`PermissionChecker` -- **功能**:检查用户权限 -- **检查逻辑**: - 1. 获取事件中的用户ID - 2. 查询用户数据 - 3. 遍历用户的权限组 - 4. 检查权限组中是否包含目标权限 - 5. 最后检查用户自身的权限 -- **示例**: - - ```python - user_check = UserPermissionChecker(permission="admin.access") # 实际替换为你的权限节点 - rule = Rule(user_check.checker()) - - -## `GroupPermissionChecker` 群组权限检查器 - -- **继承**:`PermissionChecker` -- **参数**: - - `only_group: bool = True` - 是否仅限群组事件 -- **功能**:检查群组权限 -- **检查逻辑**: - 1. 验证事件是否为群组事件 - 2. 获取群组ID - 3. 查询群组数据 - 4. 遍历群组的权限组 - 5. 检查权限组中是否包含目标权限 - 6. 最后检查群组自身的权限 -- **示例**: - - ```python - group_check = GroupPermissionChecker(permission="group.manage") # 实际替换为你的权限节点 - rule = Rule(group_check.checker()) - - -## 类型定义 - -```python -GroupEvent: TypeAlias = ( - GroupIncreaseNoticeEvent - | GroupAdminNoticeEvent - | GroupBanNoticeEvent - | GroupDecreaseNoticeEvent - | GroupMessageEvent - | GroupRecallNoticeEvent - | GroupRequestEvent - | GroupUploadNoticeEvent -) -``` - -## 使用示例 - -```python -from nonebot.rule import Rule -from .rules import UserPermissionChecker, GroupPermissionChecker - -# 创建用户权限检查器 -user_perm_checker = UserPermissionChecker(permission="plugin.admin") - -# 创建群组权限检查器 -group_perm_checker = GroupPermissionChecker(permission="group.manage", only_group=True) - -# 在事件处理器中使用 -@matcher.handle(rule=Rule(user_perm_checker.checker())) -async def handle_admin_command(): - ... - -@matcher.handle(rule=Rule(group_perm_checker.checker())) -async def handle_group_manage(): - ... -``` - -## 调试日志 - -权限检查过程会输出调试日志: - -```shell -DEBUG: checking user permission 123456 plugin.admin -DEBUG: checking group permission 789012 group.manage -``` diff --git a/docs/commands.md b/docs/commands.md deleted file mode 100644 index ee8bd00..0000000 --- a/docs/commands.md +++ /dev/null @@ -1,133 +0,0 @@ -# 指令文档 - -## 主指令 - -- **格式**:/lp -- **功能**:显示插件帮助信息 -- **响应**:LP LitePerm 请输入参数: lp user lp group lp perm_group lp command - -## 用户权限管理 - -
- -### `lp user` - 用户权限管理 - -- **格式**:`lp user <用户ID> <操作类型> <操作> [目标] [值]` -- **操作类型**: - - `permission` - 权限节点操作 - - `parent` - 权限组继承操作 - - `perm_group` - 权限组管理 - -#### 用户权限节点操作 (`permission`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `set` | `lp user permission set <节点> ` | `lp user 123 permission set admin.access true` | 设置权限节点状态 | -| `del` | `lp user permission del <节点>` | `lp user 123 permission del user.edit` | 删除权限节点 | -| `check` | `lp user permission check <节点>` | `lp user 123 permission check plugin.admin` | 检查是否拥有权限 | -| `list` | `lp user permission list` | `lp user 123 permission list` | 列出用户所有权限 | - -#### 用户权限组继承操作 (`parent`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `add` | `lp user parent add <权限组>` | `lp user 123 parent add admin_group` | 添加继承的权限组 | -| `del` | `lp user parent del <权限组>` | `lp user 123 parent del vip_group` | 移除继承的权限组 | -| `set` | `lp user parent set <权限组>` | `lp user 123 parent set admin_group` | 覆盖为权限组的权限 | - -#### 用户权限组管理 (`perm_group`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `add` | `lp user perm_group add <权限组>` | `lp user 123 perm_group add vip` | 添加用户到权限组 | -| `del` | `lp user perm_group del <权限组>` | `lp user 123 perm_group del guest` | 从权限组移除用户 | - -
- -## 群组权限管理 - -
- -### `lp group` - 群组权限管理 - -- **格式**:`lp group <群组ID> <操作类型> <操作> [目标] [值]` -- **操作类型**: - - `permission` - 权限节点操作 - - `parent` - 权限组继承操作 - - `perm_group` - 权限组管理 - -#### 群权限节点操作 (`permission`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `set` | `lp group permission set <节点> ` | `lp group 456 permission set group.manage true` | 设置权限节点状态 | -| `del` | `lp group permission del <节点>` | `lp group 456 permission del group.kick` | 删除权限节点 | -| `check` | `lp group permission check <节点>` | `lp group 456 permission check plugin.admin` | 检查是否拥有权限 | -| `list` | `lp group permission list` | `lp group 456 permission list` | 列出群组所有权限 | - -#### 群权限组继承操作 (`parent`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `add` | `lp group parent add <权限组>` | `lp group 456 parent add group_admin` | 添加继承的权限组 | -| `del` | `lp group parent del <权限组>` | `lp group 456 parent del group_vip` | 移除继承的权限组 | -| `set` | `lp group parent set <权限组>` | `lp group 456 parent set group_admin` | 覆盖为权限组的权限 | - -#### 群权限组管理 (`perm_group`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `add` | `lp group perm_group add <权限组>` | `lp group 456 perm_group add vip` | 添加群组到权限组 | -| `del` | `lp group perm_group del <权限组>` | `lp group 456 perm_group del guest` | 从权限组移除群组 | - -
- -## 权限组管理 - -
- -### `lp perm_group` - 权限组管理 - -- **格式**:`lp perm_group <权限组名> <操作类型> <操作> [目标] [值]` -- **操作类型**: - - `permission` - 权限节点操作 - - `parent` - 权限组继承操作 - - `to` - 权限组管理 - -#### 权限节点操作 (`permission`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `set` | `lp perm_group <组名> permission set <节点> ` | `lp perm_group admin permission set system.* true` | 设置权限节点状态 | -| `del` | `lp perm_group <组名> permission del <节点>` | `lp perm_group admin permission del user.edit` | 删除权限节点 | -| `check` | `lp perm_group <组名> permission check <节点>` | `lp perm_group admin permission check plugin.admin` | 检查是否拥有权限 | -| `list` | `lp perm_group <组名> permission list` | `lp perm_group admin permission list` | 列出权限组所有权限 | - -#### 权限组继承操作 (`parent`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `add` | `lp perm_group <组名> parent add <权限组>` | `lp perm_group vip parent add base` | 添加继承的权限组 | -| `del` | `lp perm_group <组名> parent del <权限组>` | `lp perm_group vip parent del base` | 移除继承的权限组 | -| `set` | `lp perm_group <组名> parent set <权限组>` | `lp perm_group vip parent set admin` | 覆盖为权限组的权限 | - -#### 权限组管理 (`to`) - -| 操作 | 格式 | 示例 | 说明 | -|-----------|-----------------------------------|--------------------------|--------------------------| -| `create` | `lp perm_group <组名> to create` | `lp perm_group new_group to create` | 创建新权限组 | -| `remove` | `lp perm_group <组名> to remove` | `lp perm_group old_group to remove` | 删除权限组 | - -
- - -## 通用参数说明 - -- 用户ID:QQ号或其他平台的用户标识 -- 群组ID:QQ群号或其他平台的群组标识 -- 权限组名:自定义的权限组名称 -- 命令名:插件中的命令名称(如 lp.user) -- 权限节点:使用点分隔的权限标识(如 plugin.admin) -- 值:true 或 false,表示权限状态 - -> **注意**:所有指令需要管理员权限(is_lp_admin)才能执行 \ No newline at end of file