权限模型
SyncTV 的权限分为平台级和房间级。平台级角色决定能否管理实例;房间级角色和成员覆盖决定用户在某个房间里能做什么。
| 来源 | 范围 | 示例 |
|---|---|---|
| 全局角色 | 整个实例 | root、admin、user |
| 房间角色 | 单个房间 | creator、admin、member、guest |
| 成员覆盖 | 单个用户在单个房间 | 临时允许播放控制、禁言、限制添加媒体 |
| 房间设置 | 单个房间 | 是否允许游客、是否启用聊天、是否需要审核 |
| 用户偏好 | 单个用户 | 2FA、通知偏好、默认 Provider |
| 场景 | 推荐做法 |
|---|---|
| 长期职责变化 | 修改房间角色或角色默认权限 |
| 临时例外 | 使用成员覆盖 |
| 限制所有人发言 | 修改房间聊天设置 |
| 限制单个成员发言 | 移除该成员的 send_chat |
| 授权平台管理能力 | 修改全局角色,而不是房间角色 |
平台 admin 不自动等于所有房间的房间 admin。反过来,房间 admin 也不具备平台用户管理、Provider 管理或运行设置修改能力。
- 完整权限名称和计算规则:读 房间、权限与用户偏好。
- 管理房间成员:读 房间与成员管理。
- 认证和 2FA:读 认证与安全模型。