FEAT: protected update route with admin seqid or if user request to equal a jwt user id claim

This commit is contained in:
Marcos Rodrigues
2025-12-18 12:32:53 -03:00
parent 61109f8ae9
commit 8b93d4e97b
3 changed files with 5 additions and 5 deletions
-3
View File
@@ -1321,9 +1321,6 @@
"Users"
],
"security": [
{
"access-token": []
},
{
"access-token": []
}
+4 -1
View File
@@ -266,7 +266,6 @@ export class UsersController {
}
@Patch(':id')
@RequireAllPermissions(PERMISSIONS_GROUPS.USERS.permissions.ADMIN)
@ApiOkResponse({ type: UpdateUserRes })
async updateUser(
@User() user: RequestUser,
@@ -274,6 +273,10 @@ export class UsersController {
@Param('id') id: string,
@Language() language: LanguageEnum,
) {
if (user.user_id !== id || !user.permissions.includes(PERMISSIONS_GROUPS.USERS.permissions.ADMIN.seqid)) {
throw new ErrorBuilder(ErrorCodes.AUTH.FORBIDDEN);
}
this.logger.info('updateUser', { user });
this.userService.setLanguage(language);
return await this.userService.updateUser(body, id, user.customer_id);
+1 -1
View File
@@ -149,7 +149,7 @@ export class UsersService implements OnModuleInit {
async updateUser(req: UpdateUserReq, id: string, customerId: string) {
const { roleNames, ...updateUserDTO } = req;
if (roleNames) {
if (roleNames && roleNames.length > 0) {
await this.setRoles({ roleNames, userId: id }, customerId);
}