# PERMISSION_RULES

## 基础规则

- 商户只能访问自己的数据
- 所有请求必须带 merchant_id
- 超级管理员可跨商户访问
- 权限校验必须在所有接口调用前执行
- 未授权访问必须返回 403 Forbidden

---

## 功能权限

- 未开通功能 → 拒绝访问（403）
- 已开通 → 正常访问
- 功能过期 → 拒绝访问（403）
- 功能暂停 → 拒绝访问（403）

---

## 角色权限

### Admin（商户管理员）
- 全部权限
- 可管理商户信息
- 可管理用户账号
- 可开通/关闭功能
- 可查看所有报表

### Operator（运营专员）
- 订单处理（创建、确认、发货）
- 商品管理（添加、编辑、上下架）
- 库存管理（更新库存）
- 客户服务（处理售后）

### Viewer（查看员）
- 只读权限
- 可查看订单、商品、库存信息
- 可查看报表

### System（系统角色）
- 系统级操作权限
- 可执行系统维护任务

---

## 数据权限

- 商户只能查看和操作自己的：
  - 订单
  - 商品
  - 库存
  - 店铺
  - 账单
  - 报表

- 超级管理员可查看和操作所有商户数据

---

## 接口校验流程

Request
→ AuthMiddleware（身份验证）
→ PermissionService.check（权限校验）
→ FeatureService.checkAccess（功能访问校验）
→ Controller

---

## 权限管理

- 权限必须通过 PermissionService 进行管理
- 角色权限可通过管理界面进行配置
- 权限变更必须记录操作日志

---

## 安全措施

- 密码必须加密存储
- 敏感操作必须进行二次验证
- API 调用必须使用 token 认证
- 定期权限审计
