|
|
@@ -17,6 +17,7 @@ import { UserUpdateDto } from './dto/user-update.dto'
|
|
|
import { IUsers } from './interfaces/users.interface'
|
|
|
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
|
|
|
import { HasRoles } from '../auth/roles.decorator'
|
|
|
+import { HasAnyRoles } from '../auth/roles.decorator'
|
|
|
import { Role } from '../model/role.enum'
|
|
|
import { IPaginationOptions } from 'nestjs-typeorm-paginate'
|
|
|
import { PageRequest } from '../common/dto/page-request'
|
|
|
@@ -26,17 +27,20 @@ import { UserCreateDto } from './dto/user-create.dto'
|
|
|
@ApiTags('users.admin')
|
|
|
@Controller('/admin/users')
|
|
|
@ApiBearerAuth()
|
|
|
-@HasRoles(Role.Admin)
|
|
|
+@HasAnyRoles(Role.Admin, Role.Api)
|
|
|
export class UsersAdminController {
|
|
|
constructor(private readonly usersService: UsersService) {}
|
|
|
|
|
|
@Post()
|
|
|
- public async list(@Body() page: PageRequest<Users>) {
|
|
|
+ public async list(@Body() page: PageRequest<Users>, @Req() req) {
|
|
|
return await this.usersService.findAll(page)
|
|
|
}
|
|
|
|
|
|
@Put()
|
|
|
- public async create(@Body() user: UserCreateDto) {
|
|
|
+ public async create(@Body() user: UserCreateDto, @Req() req) {
|
|
|
+ if (req.user.roles.includes(Role.Api)) {
|
|
|
+ return await this.usersService.createSubUser(user, req.user.id)
|
|
|
+ }
|
|
|
return await this.usersService.create(user)
|
|
|
}
|
|
|
|