Initial LisgloSIPS V2 implementation
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { Body, Controller, Get, Inject, Param, Patch, Post } from '@nestjs/common';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { AuditAction } from '../audit/audit.metadata.js';
|
||||
import { CurrentUserParam, RequirePermissions, type CurrentUser } from '../security/security.metadata.js';
|
||||
import { UsersService } from './users.service.js';
|
||||
|
||||
@ApiTags('users')
|
||||
@Controller('users')
|
||||
export class UsersController {
|
||||
constructor(@Inject(UsersService) private readonly usersService: UsersService) {}
|
||||
|
||||
@Get()
|
||||
@RequirePermissions('users.view')
|
||||
list() {
|
||||
return this.usersService.list();
|
||||
}
|
||||
|
||||
@Post()
|
||||
@RequirePermissions('users.manage')
|
||||
@AuditAction({ module: 'users', action: 'create', objectType: 'user' })
|
||||
create(@Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
|
||||
return this.usersService.create(body as never, currentUser?.id);
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
@RequirePermissions('users.manage')
|
||||
@AuditAction({ module: 'users', action: 'update', objectType: 'user', objectIdParam: 'id' })
|
||||
update(@Param('id') id: string, @Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
|
||||
return this.usersService.update(id, body as never, currentUser?.id);
|
||||
}
|
||||
|
||||
@Post(':id/reset-password')
|
||||
@RequirePermissions('users.manage')
|
||||
@AuditAction({ module: 'users', action: 'reset_password', objectType: 'user', objectIdParam: 'id' })
|
||||
resetPassword(@Param('id') id: string, @Body() body: unknown, @CurrentUserParam() currentUser?: CurrentUser) {
|
||||
return this.usersService.resetPassword(id, body as never, currentUser?.id);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user