测试平台系列(101) 用户管理功能实现.md

2022/6/22 测试平台接口测试FastApiPythonReact

大家好~我是米洛
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程,希望大家多多支持。
欢迎关注我的公众号米洛的测开日记,获取最新文章教程!

# 回顾

上一节我们完善了操作记录页面,这次我们来讲讲用户管理相关的功能。做这个的目的呢,主要是为了给管理员一个调整用户信息和权限的机会。比如封禁账号,开通组长权限的。

# 说个题外话

测试平台系列,满打满算,写到这儿已经有100节了。相信能跟随到这一节的朋友,已经对pity比较熟悉了,起码整体思路是没问题了。接下来我可能会不太详细强调实现,只会用思路+核心代码的方式来讲解。

针对我的细致改动,可以去看看github main分支的提交记录。

# 获取用户列表

这个接口是我们已经有了的,所以我们不需要额外编写了,直接调用即可。

# 更新用户信息

因为上面我们说到了封禁用户,所以我们需要定义一个is_valid字段,当字段为True的时候,代表用户是正常的(没有被封禁)。

接着就很自然了,就是普通的编辑功能

  • 修改用户表

新增is_valid字段,默认值为True.

  • 新增编辑方法

    在此之前我们要先定义好请求参数:

参数接受能够改动的几个字段:

  • id 确定用户

  • name 用户姓名

  • email 用户邮箱

  • role 用户角色

  • is_valid 是否封禁

    目前我们只支持这些内容的修改,如果前端不传入或者传入空值,我们就不修改数据,所以除了id必填以外,其他都是可选的。

    接着我们去编辑dao层的编辑方法:

app/crud/auth/UserDao.py

内容也很简单,根据id查找到用户,如果不存在则抛异常。否则则更新数据中的非0字段。

注意这里还有个redis操作,因为我们改了数据的话,redis是需要删除的,不然查询接口还是用的旧数据

  • 编写接口

router往往都很简单,都是调用dao的方法即可。就不需要过多强调了。

# 编写前端

前端比较简单,上下结构:

  • 搜索框
  • 用户表格

编辑的时候,自动带入用户数据原始值,点击确定按钮的时候调用刚才编写的更新接口即可。

# 密码问题

为什么不让管理员修改密码,因为我觉得管理员最多允许重置用户的密码,而不是直接掌控他人的密码。不然可能就毫无隐私可言了,也容易被人利用。