mirror of
https://github.com/ColdeZhang/Dominion.git
synced 2024-12-26 03:18:56 +08:00
54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# 权限管理
|
|
|
|
## 简介
|
|
|
|
Dominion 采用了 `访客-成员-权限组` 的权限管理模型。通过此方案既可以满足对于权限的细粒度控制,又可以保证权限的可维护性,减轻玩家的操作负担。
|
|
|
|
- [访客](guest):领地的访客权限,不属于领地成员的玩家将收到此权限的限制;
|
|
- [成员](member.md):领地的成员权限,属于领地成员的玩家将收到此权限的限制;
|
|
- [权限组](permission-group.md):领地的权限组,将玩家添加到权限组中,可以为多个玩家配置相同的权限;
|
|
|
|
## 权限模型透视
|
|
|
|
```
|
|
┌───────────┐
|
|
│ Player │
|
|
└─────┬─────┘
|
|
▼
|
|
┌───────────┐ ┌───────────┐
|
|
│ IsMember? │───►│ HasGroup? │
|
|
└─────┬─────┘ Y └──┬────┬───┘
|
|
│N │ │
|
|
▼ │ │
|
|
┌───────────┐ N│ Y│
|
|
│ Visitor │ │ │
|
|
└───────────┘ │ │
|
|
┌───────────┐ │ │
|
|
│ Member │◄──────┘ │
|
|
└───────────┘ │
|
|
┌───────────┐ │
|
|
│ Group │◄───────────┘
|
|
└───────────┘
|
|
```
|
|
|
|
- 当一个玩家不属于领地成员时将收到访客权限的限制;
|
|
- 如果是领地成员那么会判断玩家是否属于权限组;
|
|
- 如果玩家属于权限组那么将收到对应权限组的行为控制;
|
|
- 如果玩家不属于权限组那么将采用该玩家在此领地中的成员权限;
|
|
|
|
## 领地管理员
|
|
|
|
管理员是领地成员权限中的一个特殊权限:
|
|
|
|
- ✅管理员可以做的事:
|
|
- 该领地的其他所有权限
|
|
- 修改领地权限
|
|
- 修改领地的玩家权限(添加、删除、修改)
|
|
- ❌管理员不可以做的事:
|
|
- 删除领地
|
|
- 修改领地尺寸
|
|
- 将其他玩家设置为管理员
|
|
|
|
通过将一些玩家设置为管理员,可以让他们帮助你管理领地的其他玩家,减轻领地所有人的操作负担。同时不必担心管理员会对领地进行破坏性操作(例如删除、缩小领地)。
|
|
|