Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(mis): 删除账户和用户-不删除数据 #1360

Open
wants to merge 27 commits into
base: master
Choose a base branch
from

Conversation

cuvalign
Copy link
Contributor

@cuvalign cuvalign commented Jul 16, 2024

功能描述

为租户管理员提供删除用户/账户功能。删除功能并不直接删除数据,通过增加字段标记数据来实现,也不处理集群中的数据。
需要在用户表中增加状态字段,取值暂定“正常”、“已删除”两种,后续根据场景增加可以继续增加状态值,初始化状态默认为“正常”。账户表中状态字段增加状态值“已删除”。可能需要梳理目前所有涉及到用户账户的操作,加入或修改状态判断逻辑。

租户管理员删除用户

租户管理-用户管理-用户列表中增加“删除”操作。

  • 针对已删除用户,该按钮置灰,鼠标移上去后后浮窗“该用户已删除,无法操作”;
    image
  • 针对本用户,该按钮置灰,鼠标移上去后浮窗“不能删除本用户”;
    image
    针对其他用户,点击删除后:
  1. 弹窗二次确认删除操作,并需要管理员输入用户ID、姓名(可参考集群停用功能页面)
  • 输入错误,给出提示;
  • 输入正确,点击确定后继续;
  • 由于涉及备注,因此用户表增加删除备注列;
    image
  1. 检查用户是否为账户拥有者且拥有的账户未被删除
  • 是,弹窗提示“该用户是账户a_admin的拥有者,您需要先删除账户a_admin后才能删除该用户”;
  • 否,继续;
  1. 校验用户是否有未完成的作业、交互式应用?不考虑作业是否完成计费、是否有文件传输情况,也不考虑删除过程中出现用户提交作业、计费等操作。
  • 有,弹窗提示“该用户还有未完成的作业,无法删除”;
  • 没有,继续;

image
4. 开始删除操作,系统做如下处理:

  • 处理用户表,将该用户的状态设置为“已删除”,并在用户姓名后添加已删除,如张三(已删除);
  • 用户名后增加的已删除标志,由配置文件决定中英文;
  • 删除备注信息保存到用户表;
  • 处理用户账户关系表,将用户移出所有账户,除了用户作为拥有者的账户;
  1. 通知调度器在所有集群中删除该用户,通知认证系统禁止该用户登录;
  • ldap的loginShell设置为/sbin/nologin
  • 登陆时检查loginShell选项,若禁止登录则视为用户不存在
  1. 添加删除用户操作日志
  2. 用户被删除后,该用户不能登录系统,但是由于系统中保留了该用户数据以及产生的业务数据,管理员在一些涉及用户的操作时需要增加校验规则,只允许对正常状态用户进行操作。调整部分页面和功能逻辑:
  • 账户管理-用户管理中,添加用户为已删除用户时,提示“该用户已删除,无法添加”;
  • 租户管理-用户列表、平台管理-用户列表中,针对已删除的用户,所有操作按钮置灰,鼠标移上去后浮窗“该用户已删除,无法操作”;
  • 后端所有涉及用户接口增加用户删除状态判断

租户管理员删除账户

租户管理-账户管理-账户列表中增加“删除”操作。

  • 针对已删除账户,该按钮置灰,鼠标移上去后后浮窗“该账户已删除,无法操作”;
    针对其他账户,点击删除后:
  1. 弹窗二次确认删除操作,并需要管理员输入账户名,拥有者信息。
  • 输入错误,给出提示;
  • 输入正确,点击确认后继续;
  1. 校验账户是否有未完成的作业、交互式应用?不考虑作业是否完成计费、是否有文件传输情况,也不考虑删除过程中出现用户提交作业、计费等操作。
  • 有,弹窗提示“该账户还有未完成的作业,无法删除”;
  • 没有,继续;
  1. 开始删除操作,系统做如下处理:
  • 处理账户表,将该账户的状态设置为“已删除”,追加备注;
  • 处理用户账户关系表,将账户内用户除拥有者全部移出;
  • 处理账户白名单表,将账户从白名单移出;
  1. 通知调度器在所有集群中删除该账户;
  2. 添加删除账户操作日志;
  3. 删除账户时保留拥有者,管理员在一些涉及账户的操作时需要增加校验规则。调整部分页面和功能逻辑:
  • 租户管理-账户列表、平台管理-账户列表中,针对已删除的账户,所有操作按钮置灰,鼠标移上去后浮窗“该账户已删除,无法操作”;
  • 租户管理-账户充值中,对已删除账户充值时,提示“该账户已删除”
  • 门户系统-提交作业、交互式应用中,校验可用账户的状态,屏蔽已删除账户;(这里最好是适配器来改listAccounts的返回值,SCOW代码不好改)
  • 管理系统-仪表盘,屏蔽已删除账户
  • 账户管理-悬浮账户下拉框、侧边栏有权限账户次级菜单栏,屏蔽已删除账户
  • 删除账户时,即时屏蔽侧边栏菜单栏已删除的账户,防止URL进入已删除账户管理。
  1. 后端所有涉及用户/账户接口增加用户/账户删除状态判断

后端所有涉及用户/账户接口增加用户/账户删除状态判断

考虑实现复杂度,只对影响状态的接口加以限制。对显示日志之类的接口不加限制。但具体是否不加需要梳理评估,如getAllTenants等是否要限制已删除状态的显示。另适配器相关接口也需要梳理用户/账户删除的影响。

  1. account接口:blockAccount,unblockAccount,whitelistAccount,dewhitelistAccount,setBlockThreshold,deleteAccount,createAccount
  2. charging接口:pay,charge,
  3. init接口:unsetInitAdmin,setAsInitAdmin
  4. job接口:changeJobPrice
  5. tenant接口:createTenantWithExistingUserAsAdmin
  6. user接口:addUserToAccount,deleteUser,setPlatformRole,unsetPlatformRole,setTenantRole,unsetTenantRole,changeEmail,changeTenant

其他

  1. 账户列表导出时增加拥有者 ID 和姓名筛选,操作日志修正为导出账户

Copy link

changeset-bot bot commented Jul 16, 2024

🦋 Changeset detected

Latest commit: a0e9eee

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 21 packages
Name Type
@scow/lib-operation-log Minor
@scow/audit-server Minor
@scow/test-adapter Minor
@scow/mis-server Minor
@scow/demo-vagrant Minor
@scow/mis-web Minor
@scow/auth Minor
@scow/lib-auth Minor
@scow/cli Minor
@scow/grpc-api Minor
@scow/config Minor
@scow/scheduler-adapter-protos Minor
@scow/ai Patch
@scow/portal-web Minor
@scow/protos Patch
@scow/lib-hook Patch
@scow/lib-server Patch
@scow/lib-web Patch
@scow/portal-server Minor
@scow/lib-scheduler-adapter Patch
@scow/gateway Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@cuvalign cuvalign changed the title 删除账户和用户-不删除数据 feat(mis): 删除账户和用户-不删除数据 Jul 16, 2024
@cuvalign cuvalign force-pushed the feat-delete-user-and-account branch from 3f34068 to dc7b4fd Compare July 17, 2024 09:17
@cuvalign cuvalign force-pushed the feat-delete-user-and-account branch from 9f23d9b to 27dbd03 Compare August 20, 2024 08:01
@cuvalign cuvalign force-pushed the feat-delete-user-and-account branch from 913541b to 233b48a Compare August 20, 2024 09:41
@cuvalign
Copy link
Contributor Author

需要测试接入,以及与产品一起梳理是否有遗漏

@cuvalign cuvalign force-pushed the feat-delete-user-and-account branch from 233b48a to d70bb9b Compare August 20, 2024 10:00
@cuvalign cuvalign requested a review from ddadaal August 20, 2024 10:01
@pkuhpc-review-bot pkuhpc-review-bot bot added the Code-ReviewRequested Code Review Requested label Aug 20, 2024
@cuvalign cuvalign requested review from ddadaal and removed request for ddadaal August 28, 2024 01:31
@cuvalign cuvalign marked this pull request as ready for review August 28, 2024 01:32
@cuvalign cuvalign removed the request for review from ddadaal September 2, 2024 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code-ReviewRequested Code Review Requested
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant