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