diff --git a/src/institucion-dia/institucion-dia.controller.ts b/src/institucion-dia/institucion-dia.controller.ts index 652111c..0612a61 100644 --- a/src/institucion-dia/institucion-dia.controller.ts +++ b/src/institucion-dia/institucion-dia.controller.ts @@ -40,13 +40,7 @@ export class InstitucionDiaController { name: 'id_institucion', type: 'string', }) - dias(@Request() req, @Query() query: IdInstitucionDto) { - const admin: Operador = req.user.operador; - - if (admin.tipoUsuario.id_tipo_usuario != 3) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + dias(@Query() query: IdInstitucionDto) { return this.institucionDiaService.findAllByIdInstitucion( parseInt(query.id_institucion), ); diff --git a/src/institucion-infraccion/institucion-infraccion.controller.ts b/src/institucion-infraccion/institucion-infraccion.controller.ts index ced1b12..9e4ac08 100644 --- a/src/institucion-infraccion/institucion-infraccion.controller.ts +++ b/src/institucion-infraccion/institucion-infraccion.controller.ts @@ -54,13 +54,7 @@ export class InstitucionInfraccionController { @UseGuards(AuthGuard('jwt')) @ApiOperation({ description: 'Endpoint que retorna todas las infracciones.' }) @ApiBearerAuth('jwt') - get(@Request() req) { - const superAdmin: Operador = req.user.operador; - - if (superAdmin.tipoUsuario.id_tipo_usuario != 2) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + get() { return this.institucionInfraccionService.findAll(); } @@ -76,16 +70,7 @@ export class InstitucionInfraccionController { name: 'id_institucion', type: 'string', }) - infracciones(@Request() req, @Query() query: IdInstitucionDto) { - const operador: Operador = req.user.operador; - - if ( - operador.tipoUsuario.id_tipo_usuario != 3 && - operador.tipoUsuario.id_tipo_usuario != 4 - ) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + infracciones(@Query() query: IdInstitucionDto) { return this.institucionInfraccionService.findAllByIdInstitucion( parseInt(query.id_institucion), ); diff --git a/src/institucion-programa/institucion-programa.controller.ts b/src/institucion-programa/institucion-programa.controller.ts index 5bb1549..e1cf933 100644 --- a/src/institucion-programa/institucion-programa.controller.ts +++ b/src/institucion-programa/institucion-programa.controller.ts @@ -20,7 +20,6 @@ import { import { Serealize } from '../interceptors/serialize.interceptor'; import { InstitucionProgramaService } from './institucion-programa.service'; import { Operador } from 'src/operador/entity/operador.entity'; -import { Usuario } from 'src/usuario/entity/usuario.entity'; import { IdInstitucionDto } from '../dto/id-institucion.dto'; import { CreateProgramaDto } from './dto/input/create.dto'; import { UpdateProgramaDto } from './dto/input/update.dto'; @@ -54,16 +53,7 @@ export class InstitucionProgramaController { @UseGuards(AuthGuard('jwt')) @ApiOperation({ description: 'Endpoint que retorna todos los programas.' }) @ApiBearerAuth('jwt') - get(@Request() req) { - const admin: Operador = req.user.operador; - - if ( - admin.tipoUsuario.id_tipo_usuario != 2 && - admin.tipoUsuario.id_tipo_usuario != 3 - ) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + get() { return this.institucionProgramaService.findAllProgramas(); } @@ -79,13 +69,7 @@ export class InstitucionProgramaController { name: 'id_institucion', type: 'string', }) - programas(@Request() req, @Query() query: IdInstitucionDto) { - const admin: Operador = req.user.operador; - - if (admin.tipoUsuario.id_tipo_usuario != 3) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + programas(@Query() query: IdInstitucionDto) { return this.institucionProgramaService.findAllByIdInstitucion( parseInt(query.id_institucion), ); @@ -104,13 +88,7 @@ export class InstitucionProgramaController { name: 'id_institucion', type: 'string', }) - programasMostrar(@Request() req, @Query() query: IdInstitucionDto) { - const usuario: Usuario = req.user.operador; - - if (usuario.tipoUsuario.id_tipo_usuario < 5) - throw new ConflictException( - 'No tienes permiso de acceder a esta información.', - ); + programasMostrar(@Query() query: IdInstitucionDto) { return this.institucionProgramaService.findAllByIdInstitucion( parseInt(query.id_institucion), true, diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts index 995551e..3f8164a 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.controller.ts @@ -1,10 +1,12 @@ import { Body, + ConflictException, Controller, Get, Post, Put, Query, + Request, UseGuards, } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; @@ -17,6 +19,7 @@ import { } from '@nestjs/swagger'; import { Serealize } from '../interceptors/serialize.interceptor'; import { InstitucionTipoCarritoService } from './institucion-tipo-carrito.service'; +import { Operador } from 'src/operador/entity/operador.entity'; import { IdInstitucionDto } from '../dto/id-institucion.dto'; import { CreateInstitucionTipoCarritoDto } from './dto/input/create.dto'; import { UpdateInstitucionTipoCarritoDto } from './dto/input/update.dto'; @@ -39,7 +42,11 @@ export class InstitucionTipoCarritoController { examples: { ejemplo: { value: { letra: '', tipo_carrito: '' } } }, }) @ApiBearerAuth('jwt') - create(@Body() body: CreateInstitucionTipoCarritoDto) { + create(@Request() req, @Body() body: CreateInstitucionTipoCarritoDto) { + const superAdmin: Operador = req.user.operador; + + if (superAdmin.tipoUsuario.id_tipo_usuario != 2) + throw new ConflictException('No tienes permiso de realizar esta acción.'); return this.institucionTipoCarritoService.create( body.letra, body.tipo_carrito, @@ -109,7 +116,11 @@ export class InstitucionTipoCarritoController { ejemplo: { value: { id_institucion_tipo_carrito: 130, mostrar: true } }, }, }) - update(@Body() body: UpdateInstitucionTipoCarritoDto) { - return this.institucionTipoCarritoService.update(body); + update(@Request() req, @Body() body: UpdateInstitucionTipoCarritoDto) { + const admin: Operador = req.user.operador; + + if (admin.tipoUsuario.id_tipo_usuario != 3) + throw new ConflictException('No tienes permiso de realizar esta acción.'); + return this.institucionTipoCarritoService.update(admin, body); } } diff --git a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts index 4c9784a..bbab837 100644 --- a/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts +++ b/src/institucion-tipo-carrito/institucion-tipo-carrito.service.ts @@ -6,6 +6,7 @@ import { import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { InstitucionTipoCarrito } from './entity/institucion-tipo-carrito.entity'; +import { Operador } from 'src/operador/entity/operador.entity'; import { TipoCarrito } from './entity/tipo-carrito.entity'; import { InstitucionService } from '../institucion/institucion.service'; @@ -75,7 +76,11 @@ export class InstitucionTipoCarritoService { findInstitucionTipoCarritoById(id_institucion_tipo_carrito) { return this.institucionTipoCarritoRepository .findOne({ - id_institucion_tipo_carrito, + join: { + alias: 'itc', + innerJoinAndSelect: { i: 'itc.institucion', tc: 'itc.tipoCarrito' }, + }, + where: { id_institucion_tipo_carrito }, }) .then((institucionTipoCarrito) => { if (!institucionTipoCarrito) @@ -106,11 +111,18 @@ export class InstitucionTipoCarritoService { }); } - update(attrs: Partial) { + update(admin: Operador, attrs: Partial) { return this.findInstitucionTipoCarritoById( attrs.id_institucion_tipo_carrito, ) .then((institucionTipoCarrito) => { + if ( + admin.institucion.id_institucion != + institucionTipoCarrito.institucion.id_institucion + ) + throw new ConflictException( + 'No puedes actualizar la información de este tipo de carrito porque no le corresponde a tu institución.', + ); Object.assign(institucionTipoCarrito, attrs); return this.institucionTipoCarritoRepository.save( institucionTipoCarrito,