20210810
1.修改审批的开始审批接口,确定通过后会更新对应的环境下的集群以及资源池信息
2.确定环境状态,公共包
3.项目列表添加绑定环境数量
4.新增环境校验命名是否重复

20210811
5.删除环境判断是否审批,提交审批单
6.解决删除审批单重复创建,只能创建一次
7.审批删除环境单,将对应环境状态改为已删除
8.项目列表查询项目下环境中包含已删除的环境(修复)

20210812
9.修改全部表结构以及接口,去除冗余字段 shift+f6
10.修改项目表、项目成员表表结构
11.添加项目名称模糊查询
12.添加页码校验以页码数量范围更改

20210813
13.项目成员移除新增返回结果
14.修改环境不能重名为项目下环境不能重名
15.项目创建失败则不会将成员添加进项目成员表
16.项目不能重名改为同一个主账号下项目不能重名
17.新增非admin(主账号)角色无法操作审批接口
18.approval接口:操作用户admin,操作对象:提交给自己的审批单

总结:
1.开发
1.1 CNPOPS完成项目模块开发
1.2 项目成员接口开发完成度(1/2)
1.3 项目环境开发实现创建、删除等相关接口,完成度(1/3)
1.4 项目审批开发,完成度(1/2)
1.5 完成项目、环境、审批操作记录API定义

20210816
设计:
1.项目详情新增tap

image.png

2.用户角色权限

3.环境创建:环境存储、单位、网关

4.批量返回结果

环境:类型
image.png

image.png

新增用户:
1.可多选角色 ,环境权限合并
2.默认权限配置后端提供
3.提供权限展示,哪些可选哪些不可选的

4.流水线引导不显示

自定义只能配项目环境和流水线

环境创建引导提供模板
移除环境类型

20210817
1.项目批量删除
流程:
判断权限:是否为项目成员管理员或主账号

2.前端限制
1.项目下有环境时无法删除(环境包括全部环境)

  1. //环境状态:
  2. EnvApplying = "applying"//新建环境审批中
  3. EnvDeleting = "deleting"//删除环境审批中
  4. EnvAvailable = "available"//可用

2.环境在【applying】中无法选中删除
3.项目查看列表修改为主账号可查看所有项目

20210818
1.调用IAM子用户接口
2.过滤角色用户
3.项目添加用户改为角色添加用户
4.新增权限名称表
5.项目新增角色

1.鉴定权限,是否为超级管理员或者有权限 2.查询项目是否存在 3.查询角色名称是否重复 4.角色-环境 表进行记录

6.查询项目角色成员

1.鉴定权限,是否为超级管理员或者有权限

20210819
1.修改角色

修改角色权限 修改角色环境

2.创建项目

创建项目 创建项目对应的角色 将项目创建者加入成员表 创建项目记录

3.删除项目

判断用户有没有对应权限 有环境不能删除 删除项目下对应角色 删除角色对应的角色权限 删除角色对应的角色环境 删除项目下对应成员

环境

3.删除环境

判断用户有没有对应的权限 未经过审批、驳回的可以删 已经通过审批的需要发起删除审批 支持批量删除 同一个项目下不能创建重名的环境

4.修改环境

鉴权 项目是否存在 环境是否存在 名称是否重复 入参是否合法 如果没有经过审批则直接修改环境以及审批单 如果经过审批(已审批或者驳回)要创建新的审批单

4.权限鉴定

一个用户可以有多个角色 一个用户的权限是多个角色的并集

5.角色添加成员

如果环境已经可用,则加成员表中,并调用接口添加进环境 如果环境还在审批中,就加入成员表 查看某个环境下有哪些成员

6.通过审批

新增环境通过调用接口创建新环境(workspace)

角色成员

1.移除成员

1.鉴权 新增成员类型(删除、新增)
2.删除一个角色下的成员,要判断向哪些环境发送请求(如果加过两次A环境则不解绑)

  1. SELECT `member`.`member_id`,`project_role_environment`.`env_id`, COUNT(`project_role_environment`.`env_id`) FROM `member`
  2. LEFT JOIN `project_role_environment`
  3. ON `member`.`role_id`=`project_role_environment`.`role_id`
  4. WHERE `member`.`member_id`='aliquip ad voluptate tempor laborum'
  5. GROUP BY `project_role_environment`.`env_id`

image.png

3.如果在一个环境下只存在一条记录,将成员状态改为 删除中,成员列表则不可见 4.发送请求删除,请求成功后则将这条成员记录删除

环境可用则需要调用接口解绑 环境不可用则需要

操作记录

1.确定操作记录记录的对象:项目、环境、审批 2.确定字段:类型、名称、状态、操作用户、时间


  • 项目 | 类型 | 名称 | 状态 | 操作用户 | 操作时间 | | —- | —- | —- | —- | —- | | 创建项目 | 项目名称 | 成功/失败 | 名称 | 时间 | | 删除项目 | 项目名称 | 成功/失败 | 名称 | 时间 |

  • 环境 | 类型 | 名称 | 状态 | 操作用户 | 操作时间 | | —- | —- | —- | —- | —- | | 创建环境 | 环境名称 | 成功/失败 | 名称 | 时间 | | 删除环境 | 环境名称 | 成功/失败 | 名称 | 时间 |

  • 审批 | 类型 | 名称 | 状态 | 操作用户 | 操作时间 | | —- | —- | —- | —- | —- | | 创建环境审批 | 环境名称 | 通过/驳回 | 名称 | 时间 | | 删除环境审批 | 环境名称 | 通过/驳回 | 名称 | 时间 |

接口定义:一个接口 接口参数:page、pageSize、 projectId 日志可见范围: 项目:子用户看见自己的日志、主账号看见所有子账号+自己的日志 环境:子用户看见自己的日志、主账号看见所有子账号+自己的日志 审批:主账号看到自己的日志

1.分页为非必须条件

人-环境- 定时任务

路径参数:

ID: types.StringUint(approvalId)

SELECT DISTINCT member.member_id FROM member
LEFT JOIN project_role_environment
ON member.role_id=project_role_environment.role_id
LEFT JOIN project_role
ON member.role_id=project_role.id
WHERE project_role_environment.env_id=’369094678928162817’
OR project_role.name=’管理员’
SELECT FROM project WHERE id = 369077360177184769
SELECT
FROM environment WHERE id = 369094678928162817

1.能够查询出所有类别

SELECT DISTINCTsys_auth.category AS ‘label’ FROM sys_auth

2.查询某个类别下的所有权限

SELECT sys_auth.name FROM sys_auth WHERE sys_auth.category=’项目’

3.对于模板角色 要记录是否可以修改

SELECT DISTINCTsys_auth.category AS ‘label’ FROM sys_auth SELECT sys_auth.id AS ‘key’,sys_auth.name AS ‘label’ FROM sys_auth WHERE sys_auth.category=’流水线’ //模板角色 不可修改 SELECT project_role_auth.auth_id AS ‘key’,sys_auth.name AS ‘label’ ,project_role_auth.disable AS ‘disable’ ,project_role_auth.selected FROM project_role_auth
LEFT JOIN sys_auth ON project_role_auth.auth_id=sys_auth.id WHERE project_role_auth.role_id=’369077360193961985’

1.角色加人:

  • 管理员: 向角色下所有

环境:人数组【】
环境id ,状态ok,成员id

循环加入可加入的人

1.记录增加前查看是否有满足(环境id ,成员id,状态ok,)的记录,没有就直接加进来

人员操作
1.加人

一个人加到多个环境(勾选人)

多个人加到一个环境(勾选环境) 判断更改了哪些环境

2.删除人员

1.勾选环境(列表变动)
2.后台计算出变化,哪些是新增的,哪些是减少的
3.新增的需要绑定

查找角色下所有可用的环境 角色下有哪些成员 遍历成员,判断是否需要加入 加入成功的记录进入人-环境表(人-环境id-工作空间id-uuid)

4.减少的需要解绑

查看角色下所有可用环境 角色下有哪些成员 遍历成员,判断是否需要解绑(管理员不需要解绑),如果

用户 环境 角色

ST
1.项目修改名称冲突
2.项目绑定tapd失败
3.缺少管理员字段
4.模糊搜索失败

1.分页 记录总数错误
2.角色列表返回需要添加type
3.修改名称失效
4.删除路径404
5.权限配置失效

6.成员绑定

1.环境审批通过时将环境中的人依次进行绑定
memberid,workspaceid,envid
2.权限管理时,加入新的用户,将这些用户依次绑定到可用的环境
3.权限管理时,加入选择新的环境,如果环境可用,则将用户依次绑定

需要调用接口的地方:
1.调用接口创建环境
2.调用接口删除环境
3.调用接口绑定人员关系
4.调用接口解除人员绑定

20210830
禁止修改管理员角色的名称以及权限
移除项目列表页数限制

CNOPS/项目/项目角色添加用户列表调用超时
image.png

image.png
image.png

20210926
选择集群:
集群列表接口
http://8.16.0.153:3000/project/57/interface/api/13186

环境列表
集群详情接口
http://8.16.0.153:3000/project/57/interface/api/13188
插件详情接口
http://8.16.0.153:3000/project/250/interface/api/19975

1.调用集群详情接口
2.Normal