角色系统 多级权限实现精细化社区治理
为什么需要角色系统
一个健康的社区不能只有「所有者」和「普通成员」两档。现实中需要的角色通常包括:
- 所有者(Owner):服务器创建者,最高权限
- 管理员(Admin):协助所有者管理全局,拥有大部分管理权限
- 版主(Moderator):负责维护某个或某几个频道的秩序
- 活动组织者:负责策划和执行社区活动
- VIP 成员:付费或贡献突出的成员,享受特殊待遇
- 普通成员:默认角色
- 新人 / 游客:刚加入的成员,权限受限
Fanbook 的角色系统就是为了支持这种多级治理而设计的。
核心概念
角色(Role)
- 由所有者或管理员创建和管理
- 每个角色有独立的名称、颜色、权限组
- 可以在「角色列表」中调整角色顺序(顺序影响显示优先级和权限叠加)
权限(Permission)
- 每个角色绑定一组权限开关
- 权限粒度很细,从发送消息到管理服务器几乎每一个操作都有对应权限
一个成员可以有多个角色
- 最终权限是所有角色权限的并集(任一角色有权限即可执行)
- 颜色显示取最高优先级角色的颜色
预置角色建议
| 角色 | 典型权限 | 成员 | 备注 |
|---|---|---|---|
| 所有者 | 全部 | 创建者 | 不可删除、不可转让(部分版本可转让) |
| 管理员 | 大部分管理权限,除删除服务器 | 2~5 人 | 核心管理团队 |
| 版主 | 管理频道内的消息和成员 | 每个活跃频道 1~2 人 | 按频道分配 |
| 活动组织者 | 发起活动、创建活动频道、发放奖励 | 3~10 人 | 不一定有踢人权限 |
| VIP | 特殊权限、专属频道访问 | 付费或贡献者 | 社区激励手段 |
| 普通成员 | 基础发言、加入语音 | 绝大多数成员 | 默认角色 |
| 受限成员 | 只读、不能发言 | 违规成员待观察 | 临时或永久 |
创建和配置角色
新建角色
- 打开服务器设置 → 角色管理
- 点击「+」创建新角色
- 设置角色名称、颜色(可选,成员名会显示该颜色)
- 勾选需要赋予的权限(见下文权限清单)
- 保存后,可以把该角色分配给指定成员
权限清单(根据官方开发者文档)
Fanbook 的权限使用位运算编码(类似 Discord 的 Permission Bits),以下是主要权限:
| 权限值 | 权限名称 | 说明 |
|---|---|---|
| 1 | CREATE_INSTANT_INVITE | 创建邀请链接 |
| 2 | KICK_MEMBERS | 踢人 |
| 4 | BAN_MEMBERS | 封禁 |
| 8 | ADMINISTRATOR | 管理员(跳过大部分权限检查) |
| 16 | MANAGE_CHANNELS | 管理频道 |
| 32 | MANAGE_GUILD | 管理服务器 |
| 64 | ADD_REACTIONS | 添加消息反应 |
| 128 | VIEW_CHANNEL | 查看频道 |
| 256 | SEND_MESSAGES | 发送消息 |
| 512 | SEND_TTS_MESSAGES | 发送 TTS 消息 |
| 1024 | MANAGE_MESSAGES | 管理消息(删除他人消息) |
| 2048 | EMBED_LINKS | 嵌入链接预览 |
| 4096 | ATTACH_FILES | 上传文件 |
| 8192 | READ_MESSAGE_HISTORY | 查看历史消息 |
| 16384 | MENTION_EVERYONE | @所有人 |
| 32768 | USE_EXTERNAL_EMOJIS | 使用外部表情 |
| 65536 | CONNECT | 连接语音频道 |
| 131072 | SPEAK | 在语音频道说话 |
| 262144 | MUTE_MEMBERS | 静音成员 |
| 524288 | DEAFEN_MEMBERS | 强制静音耳机 |
| 1048576 | MOVE_MEMBERS | 移动成员到其他语音频道 |
| 2097152 | USE_VAD | 使用语音活动检测 |
以上为官方开发者文档中暴露的权限列表,实际可用权限以最新版 App 和开发者平台为准。
频道级权限覆盖
除了角色级别的全局权限,Fanbook 还支持频道级别的权限覆盖——即某个频道可以单独设置不同于全局的权限配置。
典型用途:
- 公告频道:只有管理员能发消息,普通成员只能看
- 管理员私密频道:只有管理员角色能看到,其他角色完全隐藏
- 语音频道:设置为私密,只有受邀者能进入
优先级规则: 频道级权限 > 角色级权限。同一个成员,在不同频道可能有不同的权限表现。
最佳实践
- 不要给普通成员 @所有人 权限——很容易被滥用刷屏
- 定期审查角色和权限——删除不再活跃的管理员、收回冗余权限
- 用 VIP / 贡献者角色做激励——让活跃成员感受到认可
- 频道级权限控制敏感频道——不要在公共频道里靠人工审核,用权限从源头控制