0.0.8.0
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
# 🔐 权限快速参考
|
||||
|
||||
## 📋 按钮分类
|
||||
|
||||
### 增删改类按钮(写操作)
|
||||
|
||||
#### ✏️ 增加类
|
||||
```
|
||||
添加成员 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
新增成员 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
添加父亲 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
添加母亲 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
添加子女 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
添加配偶 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
创建家族树 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
邀请协作者 OWNER ✅ EDITOR ❌ VIEWER ❌ ⚠️ 仅创建者
|
||||
```
|
||||
|
||||
#### 📝 修改类
|
||||
```
|
||||
编辑 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
保存 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
导入数据 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
导入GEDCOM OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
修改密码 OWNER ✅ EDITOR ✅ VIEWER ✅ ⚠️ 修改自己的密码
|
||||
```
|
||||
|
||||
#### 🗑️ 删除类
|
||||
```
|
||||
删除成员 OWNER ✅ EDITOR ✅ VIEWER ❌
|
||||
删除家族树 OWNER ✅ EDITOR ❌ VIEWER ❌ ⚠️ 仅创建者
|
||||
移除协作者 OWNER ✅ EDITOR ❌ VIEWER ❌ ⚠️ 仅创建者
|
||||
清空数据 OWNER ✅ EDITOR ❌ VIEWER ❌ ⚠️ 仅创建者
|
||||
清空日志 OWNER ✅ EDITOR ❌ VIEWER ❌ ⚠️ 仅创建者
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 查类按钮(读操作)
|
||||
|
||||
#### 👁️ 查看类
|
||||
```
|
||||
查看详情 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
查看全部 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
查看族谱图 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
查看大事记 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
查看时间线 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
查看迁徙记录 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
```
|
||||
|
||||
#### 🔍 搜索查询类
|
||||
```
|
||||
搜索 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
筛选 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
关系查询 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
计算关系 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
在族谱图中定位 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
```
|
||||
|
||||
#### 📤 导出类
|
||||
```
|
||||
导出数据 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
导出GEDCOM OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
导出图片 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
打印 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
```
|
||||
|
||||
#### 🎛️ 视图控制类
|
||||
```
|
||||
放大 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
缩小 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
重置 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
切换视图 OWNER ✅ EDITOR ✅ VIEWER ✅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎯 角色权限总结
|
||||
|
||||
### 🔴 OWNER(创建者)
|
||||
**可用按钮**: 80+ 个 | **权限**: 全部
|
||||
|
||||
**独有权限**(只有创建者可以):
|
||||
- ❌ 删除家族树
|
||||
- ❌ 邀请协作者
|
||||
- ❌ 移除协作者
|
||||
- ❌ 清空数据
|
||||
- ❌ 清空日志
|
||||
|
||||
---
|
||||
|
||||
### 🟡 EDITOR(编辑者)
|
||||
**可用按钮**: 60+ 个 | **权限**: 编辑
|
||||
|
||||
**可以做**:
|
||||
- ✅ 增加成员(所有类型)
|
||||
- ✅ 编辑成员信息
|
||||
- ✅ 删除成员
|
||||
- ✅ 导入数据
|
||||
- ✅ 所有查看和查询操作
|
||||
|
||||
**不能做**:
|
||||
- ❌ 删除家族树
|
||||
- ❌ 邀请/移除协作者
|
||||
- ❌ 清空数据
|
||||
|
||||
---
|
||||
|
||||
### 🟢 VIEWER(查看者)
|
||||
**可用按钮**: 30+ 个 | **权限**: 只读
|
||||
|
||||
**可以做**:
|
||||
- ✅ 查看所有信息
|
||||
- ✅ 搜索和筛选
|
||||
- ✅ 关系查询
|
||||
- ✅ 导出和打印
|
||||
- ✅ 视图控制
|
||||
|
||||
**不能做**:
|
||||
- ❌ 任何增删改操作
|
||||
- ❌ 导入数据
|
||||
- ❌ 管理操作
|
||||
|
||||
---
|
||||
|
||||
## 💻 代码实现
|
||||
|
||||
### 权限检查函数
|
||||
```typescript
|
||||
// lib/permissions.ts
|
||||
export const permissions = {
|
||||
canCreate: (role) => role === "OWNER" || role === "EDITOR",
|
||||
canUpdate: (role) => role === "OWNER" || role === "EDITOR",
|
||||
canDeleteMember: (role) => role === "OWNER" || role === "EDITOR",
|
||||
canDeleteTree: (role) => role === "OWNER",
|
||||
canManageCollaborators: (role) => role === "OWNER",
|
||||
canClearData: (role) => role === "OWNER",
|
||||
canView: (role) => true,
|
||||
canExport: (role) => true,
|
||||
}
|
||||
```
|
||||
|
||||
### 使用示例
|
||||
```tsx
|
||||
// 条件渲染(推荐)
|
||||
{permissions.canCreate(role) && (
|
||||
<Button>添加成员</Button>
|
||||
)}
|
||||
|
||||
{permissions.canDeleteTree(role) && (
|
||||
<Button variant="destructive">删除家族树</Button>
|
||||
)}
|
||||
|
||||
// 禁用状态
|
||||
<Button disabled={!permissions.canUpdate(role)}>
|
||||
编辑
|
||||
</Button>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 权限矩阵
|
||||
|
||||
| 操作 | OWNER | EDITOR | VIEWER |
|
||||
|-----|-------|--------|--------|
|
||||
| 查看 | ✅ | ✅ | ✅ |
|
||||
| 搜索 | ✅ | ✅ | ✅ |
|
||||
| 导出 | ✅ | ✅ | ✅ |
|
||||
| 增加 | ✅ | ✅ | ❌ |
|
||||
| 编辑 | ✅ | ✅ | ❌ |
|
||||
| 删除成员 | ✅ | ✅ | ❌ |
|
||||
| 删除树 | ✅ | ❌ | ❌ |
|
||||
| 管理协作 | ✅ | ❌ | ❌ |
|
||||
| 清空数据 | ✅ | ❌ | ❌ |
|
||||
|
||||
---
|
||||
|
||||
## 🔍 快速查找
|
||||
|
||||
### 仅 OWNER(5个按钮)
|
||||
1. 删除家族树
|
||||
2. 邀请协作者
|
||||
3. 移除协作者
|
||||
4. 清空数据
|
||||
5. 清空日志
|
||||
|
||||
### OWNER + EDITOR(25个按钮)
|
||||
- 所有增加按钮(8个)
|
||||
- 所有编辑按钮(5个)
|
||||
- 删除成员(1个)
|
||||
- 导入操作(2个)
|
||||
- 其他编辑操作(9个)
|
||||
|
||||
### 所有角色(30个按钮)
|
||||
- 查看按钮(6个)
|
||||
- 搜索按钮(5个)
|
||||
- 导出按钮(4个)
|
||||
- 视图控制(5个)
|
||||
- 导航按钮(10个)
|
||||
Reference in New Issue
Block a user