Skip to content

组织管理

概述

组织管理是 Code Bird Cloud 平台的核心模块之一,提供 B2B 多租户能力。组织(Organization)代表一个业务实体(如公司、团队、部门),用户可以作为成员加入一个或多个组织,并在不同组织中拥有不同的角色和权限。

导航路径: 侧边栏 -> 组织管理

核心概念

组织(Organization)

组织是一个业务实体的抽象,代表公司、团队、部门或任何需要独立管理成员和权限的业务单元。每个组织拥有独立的成员列表和角色分配。

成员(Member)

成员是加入了组织的用户。一个用户可以同时属于多个组织,并在每个组织中拥有不同的角色。

组织角色

组织角色来源于"组织模板"中定义的角色模板。管理员可以将角色模板分配给组织中的成员,实现组织级别的权限控制。

管理工作流

典型的组织管理工作流如下:

创建组织 -> 添加成员 -> 为成员分配角色 -> 管理权限
  1. 创建组织: 设定组织名称和描述
  2. 添加成员: 从平台用户中选择用户添加到组织
  3. 分配角色: 为组织成员分配角色模板(角色模板在"组织模板"中统一定义)
  4. 管理权限: 通过角色模板关联的权限模板控制成员在组织内的操作权限

组织列表

组织列表页面展示所有已创建的组织。

列表字段

字段说明
名称组织的显示名称
描述组织的简要说明
成员数量当前组织的成员总数
创建时间组织创建时间

创建组织

点击 "新建组织" 按钮进入创建页面。

导航路径: 组织管理 -> 新建组织

创建参数

字段必填说明
名称组织的显示名称
描述组织的简要说明

API 调用:

POST /api/v1/organizations

请求示例:

json
{
  "name": "Acme 公司",
  "description": "Acme 公司的组织空间"
}

编辑组织

在组织列表中点击组织名称或编辑按钮,进入组织详情页面。

导航路径: 组织管理 -> 编辑组织

修改基本信息

可修改组织的名称和描述。

API 调用:

PATCH /api/v1/organizations/:id

请求示例:

json
{
  "name": "Acme 公司(更新)",
  "description": "更新后的描述"
}

成员管理

在组织编辑页面中管理组织的成员。

查看成员列表

展示当前组织的所有成员,支持分页浏览。

成员信息包括:

字段说明
用户名成员的用户名
邮箱成员的邮箱地址
姓名成员的显示名称
头像成员的头像

API 调用:

GET /api/v1/organizations/:id/users?page=1&page_size=20

添加成员

将平台中已注册的用户添加为组织成员。支持批量添加。

API 调用:

POST /api/v1/organizations/:id/users

请求示例:

json
{
  "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

请求示例:

json
{
  "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 项目管理平台,需要为每个客户公司创建独立的组织空间:

  1. 创建组织: 为客户 "Acme 公司" 创建组织
  2. 定义角色模板: 在组织模板中创建 "管理员"、"项目经理"、"开发者" 等角色模板
  3. 定义权限模板: 创建 "项目管理"、"任务编辑"、"只读" 等权限模板
  4. 分配角色权限: 将权限模板关联到角色模板
  5. 添加成员: 将 Acme 公司的员工账号添加为组织成员
  6. 分配成员角色: 根据职责为每个成员分配对应的角色
  7. 权限验证: 成员登录后,系统根据其组织角色返回对应的权限范围

Released under the MIT License.