# 用户层级架构说明 ## 1. 多租户层级结构 Crawlful Hub 采用多层级的用户架构设计,确保数据隔离和权限控制: ``` 平台(Platform) ↓ 商户/公司(Tenant/Organization) ↓ 组织结构(Org Tree) ├── 部门A(主管) │ ├── 组A1(组长) │ │ ├── 员工1 │ │ └── 员工2 │ └── 组A2(组长) │ └── 员工3 └── 部门B(主管) └── ... ``` ## 2. 核心层级模型 ### 2.1 层级关系 - **商户(Merchant)**: 最高层级,包含商户基本信息、认证状态、计费信息 - **部门(Department)**: 商户下的组织结构,由商户管理员创建和管理 - **店铺(Shop)**: 具体的电商店铺,属于商户或部门 - **用户(User)**: 系统使用者,关联到具体的商户、部门和店铺 ### 2.2 数据隔离 - **租户隔离**: 不同商户的数据完全隔离 - **部门隔离**: 部门内用户只能访问部门相关数据 - **店铺隔离**: 店铺内操作只影响对应店铺 ## 3. 权限系统(RBAC) ### 3.1 角色定义 | 角色 | 描述 | 权限范围 | |------|------|----------| | **ADMIN** | 系统管理员 | 所有资源的所有操作 | | **MANAGER** | 运营主管 | 大部分资源的管理操作 | | **OPERATOR** | 运营专员 | 基础运营操作 | | **FINANCE** | 财务主管 | 财务相关操作 | | **SOURCING** | 采购专家 | 采购相关操作 | | **LOGISTICS** | 物流专家 | 物流相关操作 | | **ANALYST** | 数据分析师 | 数据分析相关操作 | ### 3.2 店铺角色 | 角色 | 描述 | 权限范围 | |------|------|----------| | **owner** | 拥有者 | 删除店铺、管理授权、管理成员、所有权限 | | **admin** | 管理员 | 管理商品、管理价格、管理订单、不可删除店铺 | | **operator** | 运营 | 刊登、改价、查看数据 | | **viewer** | 只读 | 查看数据、不可操作 | ## 4. 数据范围控制 ### 4.1 数据范围类型 | 范围类型 | 英文 | 说明 | SQL过滤条件 | |---------|------|------|------------| | **SELF** | Self | 只看自己 | `WHERE created_by = {userId}` | | **TEAM** | Team | 看自己组 | `WHERE team_id IN ({userTeams})` | | **DEPT** | Department | 看自己部门 | `WHERE dept_id IN ({userDepts})` | | **ORG** | Organization | 看整个公司 | `WHERE tenant_id = {tenantId}` | | **ALL** | All | 全平台(超管) | 无过滤 | ### 4.2 授权模型 **核心原则**: - 授权属于店铺,不属于用户 - 店铺属于主体(Owner),用户只是被授权使用 **店铺授权结构**: ``` Organization(公司) ↓ Shop(店铺) ↓ Auth(授权) ↑ User(使用者) ``` ## 5. 技术实现 ### 5.1 数据模型 - **用户表** (`cf_users`): 存储用户基本信息、角色、状态 - **租户表** (`cf_tenants`): 存储商户信息、配置、状态 - **部门表**: 存储组织结构信息 - **店铺表** (`cf_shops`): 存储店铺信息、平台类型、授权状态 - **会话表** (`cf_sessions`): 存储用户登录会话信息 ### 5.2 核心服务 - **HierarchyService**: 处理用户层级关系和数据范围 - **RBACService**: 实现基于角色的访问控制 - **AuthService**: 处理用户认证和会话管理 ### 5.3 权限检查 ```typescript // 权限检查中间件 export function checkPermission(permission: string) { return (req, res, next) => { if (!req.user.permissions.includes(permission)) { return res.status(403).json({ error: 'Permission denied' }); } next(); }; } ``` ## 6. 安全考虑 1. **最小权限原则**: 用户只获得必要的权限 2. **权限审计**: 定期审计权限配置 3. **数据加密**: 加密敏感数据 4. **访问控制**: 严格控制数据访问 5. **审计日志**: 记录数据访问日志 ## 7. 管理功能 ### 7.1 后台管理系统 ``` 后台管理系统 ├── 用户与权限管理 │ ├── 用户管理 │ ├── 角色管理 │ ├── 权限管理 │ └── 登录日志 ├── 租户管理 │ ├── 租户列表 │ ├── 租户配置 │ ├── 配额管理 │ └── 租户隔离 ├── 商户管理 │ ├── 商户入驻 │ ├── 商户审核 │ ├── 商户店铺 │ └── 商户结算 └── 其他模块... ``` ### 7.2 用户管理功能 - **创建用户**: 添加新用户,分配角色和权限 - **修改用户**: 修改用户的角色和权限 - **删除用户**: 删除用户 - **禁用用户**: 暂时禁用用户 - **用户登录日志**: 记录用户登录历史 ## 8. 实现优先级 ### P0 - 核心功能 (立即完成) 1. **用户权限管理** - 用户CRUD - 角色管理 - RBAC引擎 2. **租户管理** - 租户CRUD - 数据隔离 - 配额管理 ### P1 - 重要功能 (近期完成) 3. **审批中心** - 审批流程 - 审批处理 4. **监控中心** - 系统监控 - 告警管理 ## 9. 总结 Crawlful Hub 的用户层级架构采用了多租户、多层级的设计,通过RBAC权限模型和数据范围控制,实现了灵活且安全的用户管理体系。系统支持商户→部门→店铺的三层架构,确保数据隔离和权限控制,同时提供了完整的后台管理功能。 这种设计不仅满足了企业级应用的安全需求,也为不同规模的商户提供了灵活的组织管理能力。