# 子管理员组的管理范围

主体为组，最终落实到人，客体为节点、人、应用

人、节点管理范围的选择有两种形式：  

- 管理员所在节点
- 指定节点，指定人

## 授权
管理范围中选中组，然后将该批组的管理权限，授予此管理员组。  
管理范围中选中人，然后将该批人的管理权限，授予此管理员组。  
管理范围中选应用，然后将该应用的管理权限，授予此管理员组。  
管理员从管理员组内继承管理权限。

## 权限定义

- 节点的管理权限
    - 在控制台可看到该节点及其下属成员
    - 对该节点进行信息编辑
    - 包含子节点的管理权限
    - 删除该节点
    - 节点内创建人 (前提是有创建用户的权限)
    - 包含节点内直属人员的管理权限
    - 将已有人员移入该节点 (前提是有该人的管理权限)
    - 将人员从节点内移除 (前提是有该人的管理权限，此处必命中)

- 人的管理权限
    - 在控制台可看到该人
    - 对该人进行信息编辑
    - 删除该人
    - 添加该人至某节点 (前提是有该节点的管理权限)

- 应用的管理权限
    - 在控制台可看到该应用
    - 对该应用进行信息编辑
    - 新增、修改、删除应用内权限
    - 颁发、收回应用权限 (只能面向有管理权限的人、节点操作)
    - 删除该应用

## 权限记录
权限的记录不依循权限系统，而是直接记录每个子管理员组的管理范围。校验权限时实时查询。
之所以不依循权限系统实现，主要是 `管理员所在节点` 类型的范围，实际授权范围会随组织架构变动而变动。将每个节点的管理逐一以权限形式记录，需要付出一定的维护成本。


## 权限计算
由于管理范围只记录了指定节点和指定人，实际一个主体能否实现管理权限需要实时计算。

- 主体能否管理某个节点  
    检索主体对该节点以及该节点上溯节点任一有无管理权限
- 主体能否管理某个人  
    检索主体对该人有无管理权限，检索主体能否管理该人所在任一节点，两者结果取并集
- 主体能否管理某个应用  
    检索主体对该应用有无管理权限

目前计算权限时，主体均为人。
