bk-iam-saas icon indicating copy to clipboard operation
bk-iam-saas copied to clipboard

【已评审】支持二级管理空间方案

Open Xmandon opened this issue 2 years ago • 9 comments

Xmandon avatar Oct 11 '22 03:10 Xmandon

原型稿:https://ot7bkb.axshare.com

Xmandon avatar Oct 11 '22 06:10 Xmandon

问题:

  1. 同步授权范围, 怎么同步, 用户自己手动选?, 本来就是子集, 区别那么大怎么同步, 只展示差异
  2. 分配用户组, 如果用户组的范围已经超过了二级管理的范围, 怎么处理
  3. 二级管理员给用户组授权, 显示的授权范围是谁的, 自己的还是上级的, 怎么区分直接授权, 还是需要申请, 如果是不是做成不同的
  4. 二级管理员编辑自己的授权范围, 怎么判断是要走审批还是不走审批, 全自动?
  5. 权限模板要看到下级的吗?

zhu327 avatar Oct 12 '22 03:10 zhu327

  1. role_role表新增一个二级管理员类型

  2. role_rolerelatedobject 新增role与二级管理员之间的关系

  3. 问题: 一级的管理员怎么看到下级管理员所有的用户组, 还要分页, 还要显示分级管理员的信息

    查询一级管理员的用户组时需要查询一级的子id, 然后筛选所有的关系, 会变慢

  4. 问题: 导航的树目录怎么处理

    我有一堆节点id, 还有部分节点的上级id, 然后需要组成树结构

    简单处理: 遍历所有的节点id, 类型, 如果是二级管理员, 需要剔除, 并找到其上级, 如果上级在已有的列表中, 需要把子id, 变成sub的部分, 如果上级不再列表中, 需要对上级打标机, 不能选择, 但是下级还是在上级的sub列表中

zhu327 avatar Oct 12 '22 03:10 zhu327

  1. 创建二级管理员时, 分级管理员的成员自动成为二级管理员的成员
  2. 分级管理员可以修改, 二级管理员的数据
  3. 分级管理员可以下放用户组给到二级管理员, 回收? 下放的时候超过了管理范围怎么处理?
  4. 分级管理员的管理范围收缩时, 同步收缩二级管理员的范围
  5. 二级管理员的范围必须在分级管理员的范围内
  6. 二级管理员可以申请编辑自己的管理范围, 审批人走一级管理员
  7. 二级管理员可以收缩自己的管理范围, 不需要审批 -- 编辑管理范围时要区分时扩大, 还是收缩, 需要在产品上区分 -- 申请是一个操作, 收缩是另一个操作
  8. 范围收缩后模板不变, 授权需要在范围内, 确定现有的逻辑是否有
  9. 二级管理员需要自行配置审批流程

zhu327 avatar Oct 12 '22 03:10 zhu327

API变更

  1. 新建分级管理员 -- 已有
  2. 修改分级管理员范围 -- 下一步 怎同步, 同步是否与修复分级管理员范围绑定
    1. 如果是绑定的需要与权限模板同步修改差不多的逻辑
  3. 查询分级管理员的子分级管理员列表
  4. 对比出每个子分级管理员与当前分级管理员之间的差异 -- 怎么定义这个差异, 确定逻辑
  5. 点击创建后需要修改分级管理员, 后台同步分级管理员的子分级管理员
  6. 分级管理员的用户组列表需要显示所有子分级管理员的用户组, 并且展示分级管理员的信息
  7. 分级管理员列表需要显示树状结构
  8. 创建二级管理员
  9. 编辑二级管理员的授权范围 -- 申请/直接修改的边界在哪里

zhu327 avatar Oct 12 '22 06:10 zhu327

评估大概1周

zhu327 avatar Oct 12 '22 06:10 zhu327

实现方式:

  1. role表SubsetManager类型管理员
  2. RoleRelatedObject表新增分级管理员role_id与object:SubsetManager的关系
  3. 新增查询分级管理员的子集管理员列表api
  4. 分级管理员的用户组列表需要展示所有子集管理员的用户组列表, 需要显示用户组的来源role
    • 从RoleRelatedObject表中查询所有的子集管理员id
    • 从RoleRelatedObject表 in 查询所有角色的 group_id
    • Group filter in 以上这些group_id
  5. 分级管理员的切换列表
    • 查询用户加入的所有角色
    • 遍历其中SubsetManager查询出其所属的分级管理员
    • 组合以上数据, 对于用户加入的分级管理员打标机, 每个分级管理员返回一个子管理员的数组
  6. 新增创建子集管理员api/修改子集管理员api
  7. session中的role信息需要增加子集管理员的类型
  8. 提供分级管理员向子集管理员转移用户组接口
    • 转移需要子集管理员是否能被分级管理员管理
  9. 编辑二级管理员范围接口
  10. 权限相关
    • 分级管理员新增权限: 转移用户组 创建子集管理员 修改子集管理员 修改子集管理员成员
    • 子集管理员权限: 管理用户组 管理模板 管理子集管理员成员 配置审批流程 管理通用操作

待确认:

  1. 修改分级管理员范围同步子集管理员的逻辑
  2. 分级管理员向子集管理员转移用户组如果用户组不满足子集管理员的授权范围怎么处理
  3. 现在分级管理员的授权范围是由超级管理员管理的, 这次改动分级管理员可以自己改了? 还是说是个申请

zhu327 avatar Oct 13 '22 02:10 zhu327

已知:

  1. 一级管理员可以看到二级管理员的所有用户组
  2. 一级管理员可以对二级管理员的用户组授权
  3. 一级对用户组授权时, 可以使用一级管理员的权限模板

问题:

  1. 一级管理员对二级管理员的用户组授权的一级管理员的模板
  2. 二级管理员又本身看不到一级管理员的模板, 这个时候查看模板相关的信息, 就有矛盾了

用户组转移也有相同的问题, 如果用户组已授权一级管理员的模板, 还能转移到二级管理员吗

zhu327 avatar Oct 17 '22 08:10 zhu327

二级管理员怎么选到一级的权限模板, 模板中的操作列表超过了二级管理员的范围怎么处理

zhu327 avatar Oct 24 '22 02:10 zhu327