组织架构管理
NOLUX 支持灵活的多层级组织架构,配合 RBAC 权限体系实现精细化的数据范围控制。本指南介绍如何设置和管理组织架构。
组织层级模型
NOLUX 支持最多五级组织层级,满足从小型品牌到大型集团的管理需求:
集团(Group)
└── 区域(Region)
└── 品牌(Brand)
└── 部门(Department)
└── 团队(Team)层级说明
| 层级 | 示例 | 典型场景 |
|---|---|---|
| 集团 | NOLUX 集团 | 多品牌集团总部 |
| 区域 | 华东区 / 华南区 | 按地域划分的管理单元 |
| 品牌 | 品牌 A / 品牌 B | 独立运营的品牌线 |
| 部门 | 运营部 / 市场部 | 职能部门 |
| 团队 | 天猫组 / 抖音组 | 最小管理单元 |
灵活使用
不必使用全部五个层级。小型品牌可以只使用"品牌 → 部门"两级;代运营公司可以使用"集团 → 品牌 → 团队"三级。
创建组织节点
通过界面创建
- 进入 管理 → 组织架构
- 在组织树中选择父节点
- 点击节点右侧的 「+」 按钮
- 填写节点信息:
| 字段 | 说明 |
|---|---|
| 节点名称 | 组织名称(如"华东运营部") |
| 节点类型 | group / region / brand / department / team |
| 负责人 | 可选,指定该节点的负责人 |
| 状态 | 启用 / 禁用 |
- 点击 「保存」

通过 API 创建
bash
POST /api/v1/admin/org-nodes
Content-Type: application/json
{
"name": "华东运营部",
"node_type": "department",
"parent_id": "uuid-of-parent-node",
"is_active": true
}角色分配
每个用户在组织架构中拥有一个或多个角色分配,决定其权限和数据可见范围。
内置角色
| 角色 | 权限范围 | 数据范围 |
|---|---|---|
super_admin | 全部权限(通配符 *) | 全局,无租户限制 |
tenant_admin | 租户内全部权限 | 本租户全部数据 |
manager | 模块管理权限 | 所属节点及下级节点 |
operator | 日常操作权限 | 所属节点数据 |
viewer | 只读权限 | 所属节点只读 |
分配角色
- 进入 管理 → 用户管理
- 找到目标用户,点击 「编辑」
- 在 「角色分配」 区域:
- 选择组织节点(如"华东运营部")
- 选择角色(如"operator")
- 保存更改
一个用户可以在多个组织节点拥有不同角色。例如:
- 在"品牌 A"担任
manager - 在"品牌 B"担任
viewer
数据范围控制
RBAC 系统通过 PostgreSQL 递归 CTE 查询,自动计算用户的数据可见范围:
用户角色: manager @ 华东区
│
▼ 递归展开组织树
可见节点: 华东区 → 品牌A → 运营部 → 天猫组
→ 市场部
→ 品牌B → 运营部 → 抖音组范围规则
- 向下穿透:用户可以看到所属节点及其所有下级节点的数据
- 不可向上:用户无法看到上级节点的汇总数据(除非在上级节点也有角色)
- 禁用过滤:
is_active = false的节点及其子树不参与范围计算 - 空集保护:如果用户没有任何角色分配,
org_scope = set()表示无数据访问权限
组织节点操作
移动节点
支持将组织节点(及其子树)移动到新的父节点下:
- 在组织树中拖拽节点到目标位置
- 确认移动操作
影响范围
移动节点会影响该节点下所有用户的数据可见范围。移动前请确认影响范围。
禁用节点
禁用节点后:
- 该节点及其子节点的用户将失去对应的数据访问权限
- 已有数据不会删除,但不可通过该节点路径访问
- 可随时重新启用
删除节点
注意
仅允许删除没有子节点且没有关联用户的节点。如需删除有子节点的组织,请先移动或删除其子节点。
最佳实践
品牌商家(单品牌)
品牌名称(Brand)
├── 运营部(Department)
│ ├── 天猫组(Team)
│ └── 抖音组(Team)
├── 市场部(Department)
└── 财务部(Department)代运营公司(多品牌)
代运营公司(Group)
├── 品牌 A(Brand)
│ ├── 运营组(Team)
│ └── 投放组(Team)
├── 品牌 B(Brand)
│ ├── 运营组(Team)
│ └── 投放组(Team)
└── 中台支持(Department)
├── 数据组(Team)
└── 设计组(Team)大型集团
集团总部(Group)
├── 华东区(Region)
│ ├── 品牌 A(Brand)
│ └── 品牌 B(Brand)
├── 华南区(Region)
│ └── 品牌 C(Brand)
└── 集团中台(Department)