角色 & 权限 API
基于角色的访问控制,支持系统角色和自定义角色。Forgexa 在两个级别设置角色:组织级 和 工作空间级。
组织角色
| 角色 | 说明 |
|---|---|
owner | 完全控制,包括所有权转移和删除。每个组织仅一个。 |
admin | 管理成员、邀请、集成、预算、审计日志、模板。 |
member | 查看组织数据、访问工作空间、创建工作空间。 |
组织 Admin 自动在其所有工作空间中拥有管理员级别权限。
工作空间角色(系统)
| 角色 | 说明 |
|---|---|
owner | 完全控制,包括所有权转移 |
admin | 工作空间/项目管理、成员管理 |
developer | 创建/执行工作项、评审门禁 |
viewer | 只读访问 |
权限矩阵
获取所有系统角色的完整权限矩阵。
http
GET /api/v1/permissions/matrix
Authorization: Bearer <token>响应 200 OK
json
{
"permissions": [
"project:read",
"project:create",
"requirement:read",
"execution:execute",
"gate:review",
"deployment:trigger"
],
"roles": {
"viewer": ["project:read", "requirement:read", "execution:read"],
"developer": ["project:read", "requirement:create", "execution:execute", "gate:review"],
"admin": ["project:create", "project:update", "deployment:trigger"],
"owner": ["project:delete", "workspace:settings"]
}
}自定义角色
列出角色
返回系统角色和工作空间级自定义角色。
http
GET /api/v1/workspaces/{workspace_id}/roles创建自定义角色
需要 admin 角色。
http
POST /api/v1/workspaces/{workspace_id}/roles
Content-Type: application/json
{
"name": "QA 负责人",
"description": "可以评审门禁和管理 QA 套件",
"permissions": ["gate:review", "qa:manage", "execution:read"]
}更新自定义角色
http
PUT /api/v1/workspaces/{workspace_id}/roles/{role_id}
Content-Type: application/json
{
"name": "QA 负责人",
"permissions": ["gate:review", "qa:manage", "execution:read", "requirement:read"]
}删除自定义角色
http
DELETE /api/v1/workspaces/{workspace_id}/roles/{role_id}WARNING
删除角色前,确保没有成员正在使用该角色。否则这些成员将回退到默认的 viewer 角色。