组织管理
概述
组织管理是 Code Bird Cloud 平台的核心模块之一,提供 B2B 多租户能力。组织(Organization)代表一个业务实体(如公司、团队、部门),用户可以作为成员加入一个或多个组织,并在不同组织中拥有不同的角色和权限。
导航路径: 侧边栏 -> 组织管理
核心概念
组织(Organization)
组织是一个业务实体的抽象,代表公司、团队、部门或任何需要独立管理成员和权限的业务单元。每个组织拥有独立的成员列表和角色分配。
成员(Member)
成员是加入了组织的用户。一个用户可以同时属于多个组织,并在每个组织中拥有不同的角色。
组织角色
组织角色来源于"组织模板"中定义的角色模板。管理员可以将角色模板分配给组织中的成员,实现组织级别的权限控制。
管理工作流
典型的组织管理工作流如下:
创建组织 -> 添加成员 -> 为成员分配角色 -> 管理权限- 创建组织: 设定组织名称和描述
- 添加成员: 从平台用户中选择用户添加到组织
- 分配角色: 为组织成员分配角色模板(角色模板在"组织模板"中统一定义)
- 管理权限: 通过角色模板关联的权限模板控制成员在组织内的操作权限
组织列表
组织列表页面展示所有已创建的组织。
列表字段
| 字段 | 说明 |
|---|---|
| 名称 | 组织的显示名称 |
| 描述 | 组织的简要说明 |
| 成员数量 | 当前组织的成员总数 |
| 创建时间 | 组织创建时间 |
创建组织
点击 "新建组织" 按钮进入创建页面。
导航路径: 组织管理 -> 新建组织
创建参数
| 字段 | 必填 | 说明 |
|---|---|---|
| 名称 | 是 | 组织的显示名称 |
| 描述 | 否 | 组织的简要说明 |
API 调用:
POST /api/v1/organizations请求示例:
{
"name": "Acme 公司",
"description": "Acme 公司的组织空间"
}编辑组织
在组织列表中点击组织名称或编辑按钮,进入组织详情页面。
导航路径: 组织管理 -> 编辑组织
修改基本信息
可修改组织的名称和描述。
API 调用:
PATCH /api/v1/organizations/:id请求示例:
{
"name": "Acme 公司(更新)",
"description": "更新后的描述"
}成员管理
在组织编辑页面中管理组织的成员。
查看成员列表
展示当前组织的所有成员,支持分页浏览。
成员信息包括:
| 字段 | 说明 |
|---|---|
| 用户名 | 成员的用户名 |
| 邮箱 | 成员的邮箱地址 |
| 姓名 | 成员的显示名称 |
| 头像 | 成员的头像 |
API 调用:
GET /api/v1/organizations/:id/users?page=1&page_size=20添加成员
将平台中已注册的用户添加为组织成员。支持批量添加。
API 调用:
POST /api/v1/organizations/:id/users请求示例:
{
"user_ids": ["user_id_1", "user_id_2", "user_id_3"]
}移除成员
从组织中移除某个成员。移除后,该用户将失去在此组织中的所有角色和权限。
API 调用:
DELETE /api/v1/organizations/:id/users/:userId成员角色分配
为组织中的成员分配角色。组织角色来源于"组织模板"中定义的角色模板,所有组织共享同一套角色模板。
查看成员角色
获取某个成员在当前组织中被分配的角色列表。
API 调用:
GET /api/v1/organizations/:orgId/users/:userId/roles返回字段包括角色 ID、名称、描述和创建时间。
分配角色
为组织成员设置角色。此操作为全量替换,请传入完整的角色 ID 列表。
API 调用:
PUT /api/v1/organizations/:orgId/users/:userId/roles请求示例:
{
"role_ids": ["org_role_id_1", "org_role_id_2"]
}删除组织
删除组织将永久移除该组织及其所有成员关系和角色分配。此操作不可逆。
API 调用:
DELETE /api/v1/organizations/:id注意: 删除组织不会删除组织成员的用户账号,仅移除用户与该组织的关联关系。
完整 API 参考
| 操作 | 方法 | 路径 |
|---|---|---|
| 获取组织列表 | GET | /api/v1/organizations |
| 创建组织 | POST | /api/v1/organizations |
| 获取组织详情 | GET | /api/v1/organizations/:id |
| 更新组织 | PATCH | /api/v1/organizations/:id |
| 删除组织 | DELETE | /api/v1/organizations/:id |
| 获取成员列表 | GET | /api/v1/organizations/:id/users |
| 添加成员 | POST | /api/v1/organizations/:id/users |
| 移除成员 | DELETE | /api/v1/organizations/:id/users/:userId |
| 获取成员角色 | GET | /api/v1/organizations/:id/users/:userId/roles |
| 设置成员角色 | PUT | /api/v1/organizations/:id/users/:userId/roles |
M2M 组织成员管理
如果你需要让第三方 M2M 应用在某个组织上下文中管理成员,请继续阅读:
这个场景除了普通的成员管理外,还涉及:
- M2M 应用绑定组织
- 组织内应用角色分配
- 组织角色模板绑定 scope
- 组织管理员保护规则
使用场景示例
场景:SaaS 多租户管理
假设你正在构建一个 SaaS 项目管理平台,需要为每个客户公司创建独立的组织空间:
- 创建组织: 为客户 "Acme 公司" 创建组织
- 定义角色模板: 在组织模板中创建 "管理员"、"项目经理"、"开发者" 等角色模板
- 定义权限模板: 创建 "项目管理"、"任务编辑"、"只读" 等权限模板
- 分配角色权限: 将权限模板关联到角色模板
- 添加成员: 将 Acme 公司的员工账号添加为组织成员
- 分配成员角色: 根据职责为每个成员分配对应的角色
- 权限验证: 成员登录后,系统根据其组织角色返回对应的权限范围
