diff --git a/package-lock.json b/package-lock.json index e87ec8d..888abea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.6.1", + "protospack-v2": "3.6.2", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", @@ -9015,9 +9015,9 @@ } }, "node_modules/protospack-v2": { - "version": "3.6.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.6.1.tgz", - "integrity": "sha512-kiulN1JFVAXGcC1lLOeXrB8DvL9gPvujXWYM+iJfoRm/SGDwSnw1LTS3Ytwxg9z55c3LiN9uli6AYXeTU30HcA==", + "version": "3.6.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.6.2.tgz", + "integrity": "sha512-H1tpfCrj5cAJQFyES3+liZh0OoRUqCjLGGykEBhIOBTUGRPnr0CuU+czCjHdF/jBxO7ToTc3RS+kngX1scXyLg==", "dependencies": { "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", @@ -17245,9 +17245,9 @@ } }, "protospack-v2": { - "version": "3.6.1", - "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.6.1.tgz", - "integrity": "sha512-kiulN1JFVAXGcC1lLOeXrB8DvL9gPvujXWYM+iJfoRm/SGDwSnw1LTS3Ytwxg9z55c3LiN9uli6AYXeTU30HcA==", + "version": "3.6.2", + "resolved": "https://dadosfera-611330257153.d.codeartifact.us-east-1.amazonaws.com:443/npm/dadosfera-npm/protospack-v2/-/protospack-v2-3.6.2.tgz", + "integrity": "sha512-H1tpfCrj5cAJQFyES3+liZh0OoRUqCjLGGykEBhIOBTUGRPnr0CuU+czCjHdF/jBxO7ToTc3RS+kngX1scXyLg==", "requires": { "@grpc/grpc-js": "^1.6.7", "rxjs": "^7.5.5", diff --git a/package.json b/package.json index 7df4352..ebf5760 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "passport-hubspot-oauth2": "^1.0.3", "passport-mailchimp": "^1.1.0", "protospack": "2.5.2", - "protospack-v2": "3.6.1", + "protospack-v2": "3.6.2", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", "rxjs": "^7.5.5", diff --git a/src/modules/users/dtos/entities.ts b/src/modules/users/dtos/entities.ts index d6116d2..65abbc7 100644 --- a/src/modules/users/dtos/entities.ts +++ b/src/modules/users/dtos/entities.ts @@ -104,6 +104,8 @@ export class UpdateUserReq { department?: string; @ApiPropertyOptional() hierarchy?: number; + @ApiPropertyOptional() + roleNames?: string[]; } export class UpdateUserRes { diff --git a/src/modules/users/users.controller.ts b/src/modules/users/users.controller.ts index de09fea..3365fc9 100644 --- a/src/modules/users/users.controller.ts +++ b/src/modules/users/users.controller.ts @@ -111,7 +111,7 @@ export class UsersController { @ApiOkResponse({ type: SetUserRolesRes }) async setUserRoles(@User() user: RequestUser, @Body() body: SetUserRolesReq) { this.logger.info('createUser', { user }); - return await this.userService.setRoles(body); + return await this.userService.setRoles(body, user.customer_id); } @Put('role') @@ -143,6 +143,6 @@ export class UsersController { @Param('id') id: string, ) { this.logger.info('updateUser', { user }); - return await this.userService.updateUser(body, id); + return await this.userService.updateUser(body, id, user.customer_id); } } diff --git a/src/modules/users/users.service.ts b/src/modules/users/users.service.ts index 36acb64..eb8600a 100644 --- a/src/modules/users/users.service.ts +++ b/src/modules/users/users.service.ts @@ -85,8 +85,11 @@ export class UsersService implements OnModuleInit { return { user }; } - async updateUser(req: UpdateUserReq, id: string) { - const { department, hierarchy, jobTitle, name } = req; + async updateUser(req: UpdateUserReq, id: string, customerId: string) { + const { department, hierarchy, jobTitle, name, roleNames } = req; + if (roleNames) { + await this.setRoles({ roleNames, userId: id }, customerId); + } const { user } = await lastValueFrom( this.usersClientService.UserUpdate({ name, @@ -106,7 +109,7 @@ export class UsersService implements OnModuleInit { return { user }; } - async setRoles(body: SetUserRolesReq) { + async setRoles(body: SetUserRolesReq, customerId: string) { const { roleNames, userId } = body; const clearRoles = roleNames && roleNames.length === 0; const { user } = await lastValueFrom( @@ -115,6 +118,7 @@ export class UsersService implements OnModuleInit { roleIds: [], roleNames, clearRoles, + customerId, }), ); if (user) {