Initial LisgloSIPS V2 implementation

This commit is contained in:
hectorzhao
2026-06-22 10:56:38 +08:00
commit 5fa1bd35e9
303 changed files with 35644 additions and 0 deletions
@@ -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);
}
}