多租户(组织)
工作原理
- 用户注册时自动创建默认组织(
is_default = true) - 用户可以创建多个组织
- 前端左上角组织切换器切换当前组织
- 所有请求通过
x-tenant-idHeader 标识当前组织 JwtAuthGuard验证用户是否是该组织成员- 所有计费数据(订阅、积分、发票)按组织维度隔离
邀请流程
1. Owner 在 /org/settings > Invitations 输入邮箱
2. 后端创建邀请记录,发送邮件(含链接)
3. 被邀请人点击链接 → /invite?token=xxx
4. 未登录 → 跳转登录/注册 → 回到邀请页
5. 验证邮箱匹配 → 加入组织
6. 创建成员积分限额记录
7. 邀请记录状态更新为 accepted
邀请链接 7 天过期。不能邀请已有成员。
成员管理
Owner 在 /org/settings?tab=members 可以:
- 查看所有成员(邮箱、角色、积分使用情况)
- 修改成员角色(不能设为 owner)
- 移除成员
- 点击积分数字查看详情、设置限额、查看使用记录
成员积分限额
| 字段 | 说明 |
|---|---|
credit_limit | 积分上限,-1 = 无限制 |
used_credits | 已使用积分 |
- 邀请时可设置初始限额
- Owner 随时可在成员详情中修改
- 消耗积分时自动检查:
used_credits >= credit_limit→ 拒绝 - 允许单次超限(token 消耗不可预知),下次拒绝
删除用户时的清理
删除用户会自动:
- 删除用户发出的所有邀请
- 删除用户的积分限额记录
- 从所有组织中移除成员关系
- 删除用户拥有的所有组织(及其成员和邀请)
前端页面
| 页面 | 说明 | 权限 |
|---|---|---|
/org/settings | 组织设置(Settings tab) | 所有成员可看,Owner 可改 |
/org/settings?tab=members | 成员管理 | 仅 Owner |
/org/settings?tab=invitations | 邀请管理 | 仅 Owner |
/invite?token=xxx | 接受邀请 | 需登录 |