一、权限管理核心目标
1. 数据安全:防止订单、供应商、价格等敏感信息泄露
2. 业务合规:符合《数据安全法》《个人信息保护法》等法规要求
3. 操作可追溯:记录关键操作日志,支持审计追踪
4. 灵活扩展:适应生鲜行业多角色、多场景的权限需求
二、权限模型设计(RBAC+ABAC混合模式)
1. 基于角色的访问控制(RBAC)
- 角色划分:
- 超级管理员(全系统权限)
- 区域管理员(按地理区域划分)
- 采购专员(供应商管理、采购订单)
- 仓储管理员(库存调拨、出入库)
- 配送员(路线查看、签收确认)
- 财务人员(对账、结算)
- 供应商(仅限自身商品管理)
- 权限继承:通过角色组实现权限批量分配(如"华东区采购组")
2. 基于属性的访问控制(ABAC)
- 动态条件:
- 时间限制(如仅允许工作日9:00-18:00访问财务系统)
- 地理位置(配送员仅能查看当前区域订单)
- 数据范围(采购员只能看到所属品类的商品)
- 生鲜特有场景:
- 临期商品处理权限(仅限特定角色在保质期前3天操作)
- 促销活动权限(仅限活动期间开放价格修改)
三、技术实现方案
1. 权限数据存储
- 使用关系型数据库(MySQL/PostgreSQL)存储角色-权限关系
- 敏感权限采用加密存储(如AES-256)
- 示例表结构:
```sql
CREATE TABLE roles (
role_id INT PRIMARY KEY,
role_name VARCHAR(50),
description TEXT
);
CREATE TABLE permissions (
perm_id INT PRIMARY KEY,
perm_code VARCHAR(50), -- 如"order:edit"
perm_name VARCHAR(100),
resource_type VARCHAR(50) -- 商品/订单/供应商等
);
CREATE TABLE role_permissions (
role_id INT,
perm_id INT,
FOREIGN KEY (role_id) REFERENCES roles(role_id),
FOREIGN KEY (perm_id) REFERENCES permissions(perm_id)
);
```
2. 权限校验中间件
- 实现AOP切面进行权限拦截(Spring Security/Shiro)
- 示例校验逻辑:
```java
@PreAuthorize("hasRole(PURCHASER) and @permissionService.checkCategoryAccess( categoryId)")
public ResponseEntity<?> updateProductPrice(Long categoryId, BigDecimal newPrice) {
// 业务逻辑
}
```
3. 前端权限控制
- 动态菜单渲染(根据权限显示/隐藏功能入口)
- 按钮级权限控制(Vue/React中通过v-if/v-show实现)
- 示例Vue实现:
```javascript
```
四、生鲜行业特殊权限设计
1. 供应链权限
- 供应商只能看到自己供应的商品库存和订单
- 采购员只能修改所属品类的商品价格
- 质检员有临期商品标记权限
2. 冷链物流权限
- 温控设备操作权限(仅限认证技术人员)
- 运输路线实时查看权限(按配送区域划分)
3. 促销活动权限
- 活动创建权限(需市场部审批)
- 价格修改权限(仅限活动期间有效)
五、安全增强措施
1. 操作日志审计
- 记录关键操作(价格修改、订单取消等)
- 包含操作者、操作时间、IP地址、变更前后数据
- 示例日志表:
```sql
CREATE TABLE operation_logs (
log_id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
operation_type VARCHAR(50), -- 如"PRICE_UPDATE"
resource_id VARCHAR(100),
old_value TEXT,
new_value TEXT,
operate_time DATETIME,
client_ip VARCHAR(50)
);
```
2. 多因素认证
- 财务相关操作需二次验证(短信/邮箱验证码)
- 敏感数据查看需审批流程
3. 权限回收机制
- 离职人员权限自动冻结(与HR系统集成)
- 季度权限复审制度
六、实施路线图
1. 需求分析阶段
- 绘制角色权限矩阵图
- 识别高风险权限点
2. 系统设计阶段
- 设计权限数据模型
- 规划权限校验流程
3. 开发阶段
- 实现基础RBAC功能
- 开发ABAC动态规则引擎
4. 测试阶段
- 渗透测试(模拟越权访问)
- 权限变更影响分析
5. 上线阶段
- 灰度发布(先开放非核心权限)
- 实时监控异常操作
七、持续优化建议
1. 权限使用分析
- 统计未使用权限(定期清理)
- 识别权限滥用模式
2. 自动化工具
- 开发权限自助申请系统
- 实现权限变更自动通知
3. 合规性更新
- 每年进行权限管理合规审查
- 跟踪数据安全法规变化
通过以上方案,美菜生鲜系统可构建起覆盖"用户-角色-权限-资源"的全链路管控体系,既满足生鲜行业复杂的业务场景需求,又能有效防范数据安全风险。实际实施时建议采用"最小权限原则",即默认拒绝所有权限,仅显式授予必要权限。