Files
chinese-family-tree-2/PERMISSIONS_QUICK_REFERENCE.md
T
freedakgmail e44dd0bd95 0.0.8.0
2025-11-23 18:03:04 +08:00

5.0 KiB
Raw Blame History

🔐 权限快速参考

📋 按钮分类

增删改类按钮(写操作)

✏️ 增加类

添加成员          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+ 个 | 权限: 只读

可以做:

  • 查看所有信息
  • 搜索和筛选
  • 关系查询
  • 导出和打印
  • 视图控制

不能做:

  • 任何增删改操作
  • 导入数据
  • 管理操作

💻 代码实现

权限检查函数

// 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,
}

使用示例

// 条件渲染(推荐)
{permissions.canCreate(role) && (
  <Button>添加成员</Button>
)}

{permissions.canDeleteTree(role) && (
  <Button variant="destructive">删除家族树</Button>
)}

// 禁用状态
<Button disabled={!permissions.canUpdate(role)}>
  编辑
</Button>

📊 权限矩阵

操作 OWNER EDITOR VIEWER
查看
搜索
导出
增加
编辑
删除成员
删除树
管理协作
清空数据

🔍 快速查找

仅 OWNER5个按钮)

  1. 删除家族树
  2. 邀请协作者
  3. 移除协作者
  4. 清空数据
  5. 清空日志

OWNER + EDITOR25个按钮)

  • 所有增加按钮(8个)
  • 所有编辑按钮(5个)
  • 删除成员(1个)
  • 导入操作(2个)
  • 其他编辑操作(9个)

所有角色(30个按钮)

  • 查看按钮(6个)
  • 搜索按钮(5个)
  • 导出按钮(4个)
  • 视图控制(5个)
  • 导航按钮(10个)