From 2e03284d6941b6216af6414d58884135c4acb3f8 Mon Sep 17 00:00:00 2001 From: lemuel Date: Mon, 1 Aug 2022 03:35:39 -0500 Subject: [PATCH] usuario endpoints restringidos a usuario --- .../carrera-programa.controller.ts | 4 +- .../hora-excepcion.controller.ts | 6 +- .../institucion-dia.controller.ts | 2 +- .../institucion-infraccion.controller.ts | 4 +- .../institucion-programa.controller.ts | 4 +- .../institucion-tipo-carrito.controller.ts | 4 +- .../institucion-tipo-entrada.controller.ts | 4 +- src/institucion/institucion.controller.ts | 2 +- src/marca/marca.controller.ts | 2 +- src/modelo/modelo.controller.ts | 2 +- src/modulo/modulo.controller.ts | 4 +- src/multa/multa.controller.ts | 2 +- src/operador/operador.controller.ts | 12 ++-- src/tipo-usuario/tipo-usuario.controller.ts | 2 +- src/usuario/dto/input/update.dto.ts | 12 +--- src/usuario/usuario.controller.ts | 62 ++++++++++++------- 16 files changed, 69 insertions(+), 59 deletions(-) diff --git a/src/carrera-programa/carrera-programa.controller.ts b/src/carrera-programa/carrera-programa.controller.ts index bd6464b..429f414 100644 --- a/src/carrera-programa/carrera-programa.controller.ts +++ b/src/carrera-programa/carrera-programa.controller.ts @@ -48,7 +48,7 @@ export class CarreraProgramaController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.carreraProgramaService.create( admin, @@ -73,7 +73,7 @@ export class CarreraProgramaController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.carreraProgramaService.delete(admin, body.id_carrera_programa); } diff --git a/src/hora-excepcion/hora-excepcion.controller.ts b/src/hora-excepcion/hora-excepcion.controller.ts index e975bf2..7c58d5c 100644 --- a/src/hora-excepcion/hora-excepcion.controller.ts +++ b/src/hora-excepcion/hora-excepcion.controller.ts @@ -55,7 +55,7 @@ export class HoraExcepcionController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.horaExcepcionService.create( admin, @@ -80,7 +80,7 @@ export class HoraExcepcionController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.horaExcepcionService.delete(admin, body.id_hora_excepcion); } @@ -124,7 +124,7 @@ export class HoraExcepcionController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.horaExcepcionService.update(admin, body); } diff --git a/src/institucion-dia/institucion-dia.controller.ts b/src/institucion-dia/institucion-dia.controller.ts index 25c0cbe..6267f0e 100644 --- a/src/institucion-dia/institucion-dia.controller.ts +++ b/src/institucion-dia/institucion-dia.controller.ts @@ -89,7 +89,7 @@ export class InstitucionDiaController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionDiaService.update(admin, body); } diff --git a/src/institucion-infraccion/institucion-infraccion.controller.ts b/src/institucion-infraccion/institucion-infraccion.controller.ts index bd68617..fc8215c 100644 --- a/src/institucion-infraccion/institucion-infraccion.controller.ts +++ b/src/institucion-infraccion/institucion-infraccion.controller.ts @@ -46,7 +46,7 @@ export class InstitucionInfraccionController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionInfraccionService.create(body.infraccion); } @@ -95,7 +95,7 @@ export class InstitucionInfraccionController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionInfraccionService.update(admin, body); } diff --git a/src/institucion-programa/institucion-programa.controller.ts b/src/institucion-programa/institucion-programa.controller.ts index c8ddbdd..94fa752 100644 --- a/src/institucion-programa/institucion-programa.controller.ts +++ b/src/institucion-programa/institucion-programa.controller.ts @@ -45,7 +45,7 @@ export class InstitucionProgramaController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionProgramaService.create(body.programa); } @@ -115,7 +115,7 @@ export class InstitucionProgramaController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionProgramaService.update(admin, body); } diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts index 6009197..bda023b 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts @@ -47,7 +47,7 @@ export class InstitucionTipoCarritoController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionTipoCarritoService.create( body.letra, @@ -123,7 +123,7 @@ export class InstitucionTipoCarritoController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionTipoCarritoService.update(admin, body); } diff --git a/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts b/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts index 7ee0f2b..9e8c734 100644 --- a/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts +++ b/src/institucion-tipo-entrada/institucion-tipo-entrada.controller.ts @@ -45,7 +45,7 @@ export class InstitucionTipoEntradaController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.tipoEntradaService.create(body.tipo_entrada); } @@ -118,7 +118,7 @@ export class InstitucionTipoEntradaController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.tipoEntradaService.update(admin, body); } diff --git a/src/institucion/institucion.controller.ts b/src/institucion/institucion.controller.ts index 5a9b228..ec0a7ce 100644 --- a/src/institucion/institucion.controller.ts +++ b/src/institucion/institucion.controller.ts @@ -124,7 +124,7 @@ export class InstitucionController { admin.tipoUsuario.id_tipo_usuario != 3) ) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.institucionService.update(admin, body); } diff --git a/src/marca/marca.controller.ts b/src/marca/marca.controller.ts index 1df2094..eede482 100644 --- a/src/marca/marca.controller.ts +++ b/src/marca/marca.controller.ts @@ -41,7 +41,7 @@ export class MarcaController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.marcaService.create(body.marca, body.tipo); } diff --git a/src/modelo/modelo.controller.ts b/src/modelo/modelo.controller.ts index 164e20e..d0d19e4 100644 --- a/src/modelo/modelo.controller.ts +++ b/src/modelo/modelo.controller.ts @@ -41,7 +41,7 @@ export class ModeloController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.modeloService.create(body.modelo, body.tipo); } diff --git a/src/modulo/modulo.controller.ts b/src/modulo/modulo.controller.ts index b2eb9b1..9f7c6b5 100644 --- a/src/modulo/modulo.controller.ts +++ b/src/modulo/modulo.controller.ts @@ -45,7 +45,7 @@ export class ModuloController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.moduloService.create(admin, body.modulo); } @@ -118,7 +118,7 @@ export class ModuloController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.moduloService.update(admin, body); } diff --git a/src/multa/multa.controller.ts b/src/multa/multa.controller.ts index f146473..c1f71d9 100644 --- a/src/multa/multa.controller.ts +++ b/src/multa/multa.controller.ts @@ -62,7 +62,7 @@ export class MultaController { operador.tipoUsuario.id_tipo_usuario != 4) ) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.multaService.create( body.id_prestamo, diff --git a/src/operador/operador.controller.ts b/src/operador/operador.controller.ts index e57239b..c8e7c45 100644 --- a/src/operador/operador.controller.ts +++ b/src/operador/operador.controller.ts @@ -54,7 +54,7 @@ export class OperadorController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.operadorService.create( body.id_institucion, @@ -87,7 +87,7 @@ export class OperadorController { if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.operadorService.create( admin.institucion, @@ -120,7 +120,7 @@ export class OperadorController { admin.tipoUsuario.id_tipo_usuario != 3) ) throw new ConflictException( - 'No tienes permisos para acceder a esta información.', + 'No tienes permisos necesarios para acceder a esta información.', ); return this.operadorService.findById(parseInt(query.id_operador)); } @@ -165,7 +165,7 @@ export class OperadorController { admin.tipoUsuario.id_tipo_usuario != 3) ) throw new ConflictException( - 'No tienes permisos para acceder a esta información.', + 'No tienes permisos necesarios para acceder a esta información.', ); return this.operadorService.findAll(query); } @@ -189,7 +189,7 @@ export class OperadorController { admin.tipoUsuario.id_tipo_usuario != 3) ) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.operadorService.passwordReset( admin, @@ -225,7 +225,7 @@ export class OperadorController { admin.tipoUsuario.id_tipo_usuario != 3) ) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.operadorService.update(admin, body); } diff --git a/src/tipo-usuario/tipo-usuario.controller.ts b/src/tipo-usuario/tipo-usuario.controller.ts index d32ddf4..dc078ee 100644 --- a/src/tipo-usuario/tipo-usuario.controller.ts +++ b/src/tipo-usuario/tipo-usuario.controller.ts @@ -33,7 +33,7 @@ export class TipoUsuarioController { if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2) throw new ConflictException( - 'No tienes permisos para realizar esta acción.', + 'No tienes los permisos necesarios para realizar esta acción.', ); return this.tipoUsuarioService.create(body.tipo_usuario); } diff --git a/src/usuario/dto/input/update.dto.ts b/src/usuario/dto/input/update.dto.ts index 4ca31c2..4994709 100644 --- a/src/usuario/dto/input/update.dto.ts +++ b/src/usuario/dto/input/update.dto.ts @@ -1,19 +1,9 @@ -import { - IsBoolean, - IsEmail, - IsInt, - IsOptional, - IsPhoneNumber, -} from 'class-validator'; +import { IsEmail, IsInt, IsOptional, IsPhoneNumber } from 'class-validator'; export class UpdateUsuarioInputDto { @IsInt() id_usuario: number; - @IsBoolean() - @IsOptional() - activo?: boolean; - @IsEmail() @IsOptional() correo?: string; diff --git a/src/usuario/usuario.controller.ts b/src/usuario/usuario.controller.ts index 829fa02..8619000 100644 --- a/src/usuario/usuario.controller.ts +++ b/src/usuario/usuario.controller.ts @@ -1,10 +1,12 @@ import { Body, + ConflictException, Controller, Get, Post, Put, Query, + Request, UseGuards, } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; @@ -26,6 +28,7 @@ import { UsuariosInputDto } from './dto/input/usuarios.dto'; import { UsuarioInstitucionCarreraOutputDto } from '../institucion-usuario/dto/output/usuario-institucion-carrera.dto'; import { UsuarioOutputDto } from './dto/output/usuario.dto'; import { UsuariosOutputDto } from './dto/output/usuarios.dto'; +import { Operador } from 'src/operador/entity/operador.entity'; @Controller('usuario') @ApiTags('usuario') @@ -104,16 +107,28 @@ export class UsuarioController { examples: { ejemplo: { value: { - id_usuario: 1, - activo: true, - multa: false, - telefono: '', correo: '', + id_usuario: 1, + telefono: '', }, }, }, }) - update(@Body() body: UpdateUsuarioInputDto) { + update( + @Request() req, + + @Body() body: UpdateUsuarioInputDto, + ) { + const admin: Operador = req.user.operador; + + if ( + !admin || + (admin.tipoUsuario.id_tipo_usuario != 3 && + admin.tipoUsuario.id_tipo_usuario != 4) + ) + throw new ConflictException( + 'No tienes los permisos necesarios para realizar esta acción.', + ); return this.usuarioService.update(body); } @@ -127,22 +142,17 @@ export class UsuarioController { description: 'Es obligatorio enviar el campo id_usuario.', examples: { ejemplo: { value: { id_usuario: 1 } } }, }) - passwordResset(@Body() body: UpdateUsuarioInputDto) { - return this.usuarioService.passwordReset(body.id_usuario); - } + passwordResset(@Request() req, @Body() body: UpdateUsuarioInputDto) { + const admin: Operador = req.user.operador; - @Put('update-password') - @UseGuards(AuthGuard('jwt')) - @ApiOperation({ - description: - 'Enpoint que desactiva todas las cuentas de usuarios de una institución.', - }) - @ApiBearerAuth('jwt') - @ApiBody({ - description: 'Es obligatorio enviar el campo id_usuario.', - examples: { ejemplo: { value: { id_institucion: 200 } } }, - }) - desactivarCuentas(@Body() body: UpdateUsuarioInputDto) { + if ( + !admin || + (admin.tipoUsuario.id_tipo_usuario != 3 && + admin.tipoUsuario.id_tipo_usuario != 4) + ) + throw new ConflictException( + 'No tienes los permisos necesarios para realizar esta acción.', + ); return this.usuarioService.passwordReset(body.id_usuario); } @@ -158,7 +168,17 @@ export class UsuarioController { name: 'usuario', type: 'string', }) - usuario(@Query() query: UsuarioInputDto) { + usuario(@Request() req, @Query() query: UsuarioInputDto) { + const admin: Operador = req.user.operador; + + if ( + !admin || + (admin.tipoUsuario.id_tipo_usuario != 3 && + admin.tipoUsuario.id_tipo_usuario != 4) + ) + throw new ConflictException( + 'No tienes los permisos necesarios para realizar esta acción.', + ); return this.usuarioService.findByUsuario(query.usuario, true, true); }