用户登录

打开 UserService,在这个用户服务里添加一个更新用户用的方法,方法的名字叫 update,方法接收一个 id 参数,类型是 number,还需要一个 data,类型是 UserDto。

在方法里面,从 data 参数里把 roles 解构出来,

这个 data 的类型是 UserDto,打开这个 UserDto,在它里面再给它添加一个 roles 属性,类型是一组 Role , 回到继续编辑 update 方法。

在下面添加一个 entity,用一下 await,this.userRepository.findOne,把用户的 id 交给这个方法。

做一下判断,如果 data 里有 roles,可以让 entity 的 roles 等于 roles。

方法 return 的是 await,this.userRepository.save,把 entity 交给这个方法。

控制器

打开 UserController 控制器,在这里添加一个路由,用 @Put 装饰,需要一个 :id 参数,再添加一个路由处理方法,名字是 update,需要 id 参数,用 @Param 装饰,给它一个 id,再用 ParseIntPipe 转换成数字,参数叫 id,类型是 number ..

还需要请求的主体,用 @Body 装饰,名字是 data 类型是 UserDto。

return 的是 await this.userService.update,把 id 还有 data 交给这个方法。

测试

打开 Http 客户端,测试一下,添加一个请求,请求的名字是 User Update,请求用的方法是 PUT,请求的地址是 localhost:3000/users/ 然后加上要更新的用户的 id 号,比如我需要设置的是王皓这个用户的用户角色,它的 id 号是 2, 在 users 的后面加上用户的 id,..

请求里需要带着主体数据 ,类型选择 JSON,里面添加一个 roles 属性,它的值是一个数组,每个项目都是一个对象,里面可以添加一个 id 属性,它的值就是给用户分配的用户角色的 id 。

发送一下这个请求。

成功以后回到数据库客户端,看一下应用的数据库里的 user_roles_role 这个数据表,现在这个表里会出现一条数据记录,记录了 id 号是 2 的用户,它有个用户角色,这个角色的 id 号是 1,对应的就是 admin 这个用户角色。

为用户分配角色《 Nest.js 应用框架:权限控制 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点