modulo validar usuario

This commit is contained in:
2022-09-02 16:15:05 -05:00
parent 0febd02931
commit 5c3bcb6c55
57 changed files with 390 additions and 619 deletions
+2
View File
@@ -75,6 +75,7 @@ import { InformacionEquipoProgramaView } from './equipo-programa/entity/views/in
import { InformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/informacion-equipo-tipo-entrada.view';
import { InformacionOperadorView } from './operador/entity/views/informacion-operador.view';
import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuario.view';
import { ValidarUsuarioModule } from './validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -173,6 +174,7 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar
TipoUsuarioModule,
UploadFileModule,
UsuarioModule,
ValidarUsuarioModule,
],
})
export class AppModule {}
+7 -7
View File
@@ -39,16 +39,16 @@ export class JwtStrategyService extends PassportStrategy(Strategy) {
if (!operador.activo)
throw new ForbiddenException('Esta cuenta esta desactivada.');
/*
if (operador.tipoUsuario.id_tipo_usuario === 4) {
if (payload.id_modulo)
if (operador.tipoUsuario.id_tipo_usuario === 4) {
if (payload.id_modulo)
await this.moduloService
.findById(payload.id_modulo)
.then((modulo) => (user.modulo = modulo));
else
.findById(payload.id_modulo)
.then((modulo) => (user.modulo = modulo));
else
throw new ForbiddenException(
'Credenciales no válidas, inicia sesión de nuevo.',
);
}
);
}
*/
user.operador = operador;
});
@@ -1,6 +1,5 @@
import {
Body,
ForbiddenException,
Controller,
Delete,
Get,
@@ -19,17 +18,21 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { CarreraProgramaService } from './carrera-programa.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { CreateCarreraProgramaDto } from './dto/input/create.dto';
import { DeleteCarreraProgramaDto } from './dto/input/delete.dto';
import { CarreraProgramaOutputDto } from './dto/output/carrera-programa.dto';
import { Usuario } from '../usuario/entity/usuario.entity';
@Controller('carrera-programa')
@ApiTags('carrera-programa')
export class CarreraProgramaController {
constructor(private carreraProgramaService: CarreraProgramaService) {}
constructor(
private carreraProgramaService: CarreraProgramaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -47,10 +50,7 @@ export class CarreraProgramaController {
create(@Request() req, @Body() body: CreateCarreraProgramaDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.carreraProgramaService.create(
admin,
body.id_institucion_carrera,
@@ -72,10 +72,7 @@ export class CarreraProgramaController {
delete(@Request() req, @Body() body: DeleteCarreraProgramaDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.carreraProgramaService.delete(admin, body.id_carrera_programa);
}
@@ -96,14 +93,9 @@ export class CarreraProgramaController {
const usuarioOperador: Operador | Usuario =
req.user.operador || req.user.usuario;
if (
!usuarioOperador ||
(usuarioOperador.tipoUsuario.id_tipo_usuario != 3 &&
usuarioOperador.tipoUsuario.id_tipo_usuario < 5)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
if ('id_usuario' in usuarioOperador)
this.validarUsuarioService.validarUsuario(usuarioOperador);
else this.validarUsuarioService.validarAdmin(usuarioOperador);
return this.carreraProgramaService.findByIdInstitucion(
usuarioOperador,
parseInt(query.id_institucion),
@@ -7,6 +7,7 @@ import { CarreraPrograma } from './entity/carrera-programa.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { InstitucionCarreraModule } from '../institucion-carrera/institucion-carrera.module';
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -15,6 +16,7 @@ import { InstitucionProgramaModule } from '../institucion-programa/institucion-p
InstitucionProgramaModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([CarreraPrograma]),
ValidarUsuarioModule,
],
controllers: [CarreraProgramaController],
providers: [CarreraProgramaService],
@@ -1,11 +1,4 @@
import {
Controller,
ForbiddenException,
Get,
Query,
Request,
UseGuards,
} from '@nestjs/common';
import { Controller, Get, Query, Request, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import {
ApiBearerAuth,
@@ -14,7 +7,8 @@ import {
ApiTags,
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { CaritoMotivoService } from './carrito-motivo.service';
import { CarritoMotivoService } from './carrito-motivo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { GetDto } from './dto/input/get.dto';
import { CarritoMotivoOutputDto } from './dto/output/carrito-motivo.dto';
@@ -22,7 +16,10 @@ import { CarritoMotivoOutputDto } from './dto/output/carrito-motivo.dto';
@Controller('carrito-motivo')
@ApiTags('carrito-motivo')
export class CarritoMotivoController {
constructor(private carritoMotivoService: CaritoMotivoService) {}
constructor(
private carritoMotivoService: CarritoMotivoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(CarritoMotivoOutputDto)
@Get()
@@ -45,14 +42,7 @@ export class CarritoMotivoController {
get(@Request() req, @Query() query: GetDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.carritoMotivoService.findAllByIdCarrito(
parseInt(query.id_carrito),
parseInt(query.pagina),
+5 -3
View File
@@ -2,11 +2,12 @@ import { forwardRef, Module } from '@nestjs/common';
import { PassportModule } from '@nestjs/passport';
import { TypeOrmModule } from '@nestjs/typeorm';
import { CarritoMotivoController } from './carrito-motivo.controller';
import { CaritoMotivoService } from './carrito-motivo.service';
import { CarritoMotivoService } from './carrito-motivo.service';
import { CarritoMotivo } from './entity/carrito-motivo.entity';
import { CarritoModule } from '../carrito/carrito.module';
import { OperadorModule } from '../operador/operador.module';
import { StatusModule } from '../status/status.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -15,9 +16,10 @@ import { StatusModule } from '../status/status.module';
StatusModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([CarritoMotivo]),
ValidarUsuarioModule,
],
controllers: [CarritoMotivoController],
providers: [CaritoMotivoService],
exports: [CaritoMotivoService],
providers: [CarritoMotivoService],
exports: [CarritoMotivoService],
})
export class CarritoMotivoModule {}
+1 -1
View File
@@ -9,7 +9,7 @@ import { CarritoService } from '../carrito/carrito.service';
import { OperadorService } from '../operador/operador.service';
@Injectable()
export class CaritoMotivoService {
export class CarritoMotivoService {
constructor(
@InjectRepository(CarritoMotivo)
private repository: Repository<CarritoMotivo>,
+9 -29
View File
@@ -20,6 +20,7 @@ import {
import { Operador } from '../operador/entity/operador.entity';
import { Serealize } from '../interceptors/serialize.interceptor';
import { CarritoService } from './carrito.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { CarritoDto } from './dto/input/carrito.dto';
import { CarritosDto } from './dto/input/carritos.dto';
import { CreateCarritoDto } from './dto/input/create.dto';
@@ -30,7 +31,10 @@ import { CarritosOutputDto } from './dto/output/carritos.dto';
@Controller('carrito')
@ApiTags('carrito')
export class CarritoController {
constructor(private carritoService: CarritoService) {}
constructor(
private carritoService: CarritoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(CarritoOutputDto)
@Get('carrito')
@@ -47,14 +51,7 @@ export class CarritoController {
carrito(@Request() req, @Query() query: CarritoDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.carritoService
.findById(parseInt(query.id_carrito))
.then((carrito) => {
@@ -128,14 +125,7 @@ export class CarritoController {
carritos(@Request() req, @Query() query: CarritosDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.carritoService.findAll(operador, query);
}
@@ -156,10 +146,7 @@ export class CarritoController {
create(@Request() req, @Body() body: CreateCarritoDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.carritoService.create(
admin,
body.id_modulo,
@@ -191,14 +178,7 @@ export class CarritoController {
const data = { ...body };
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
delete data.motivo;
return this.carritoService.update(operador, data, body.motivo);
}
+2
View File
@@ -10,6 +10,7 @@ import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/instit
import { MarcaModule } from '../marca/marca.module';
import { ModeloModule } from '../modelo/modelo.module';
import { ModuloModule } from '../modulo/modulo.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -21,6 +22,7 @@ import { ModuloModule } from '../modulo/modulo.module';
ModuloModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Carrito]),
ValidarUsuarioModule,
],
controllers: [CarritoController],
providers: [CarritoService],
+3 -3
View File
@@ -12,7 +12,7 @@ import { Carrito } from './entity/carrito.entity';
import { Modulo } from '../modulo/entity/modulo.entity';
import { Operador } from '../operador/entity/operador.entity';
import { TipoCarrito } from '../institucion-tipo-carrito/entity/tipo-carrito.entity';
import { CaritoMotivoService } from '../carrito-motivo/carrito-motivo.service';
import { CarritoMotivoService } from '../carrito-motivo/carrito-motivo.service';
import { InstitucionService } from '../institucion/institucion.service';
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
import { MarcaService } from '../marca/marca.service';
@@ -23,8 +23,8 @@ import { ModuloService } from '../modulo/modulo.service';
export class CarritoService {
constructor(
@InjectRepository(Carrito) private repository: Repository<Carrito>,
@Inject(forwardRef(() => CaritoMotivoService))
private caritoMotivoService: CaritoMotivoService,
@Inject(forwardRef(() => CarritoMotivoService))
private caritoMotivoService: CarritoMotivoService,
private institucionService: InstitucionService,
private institucionTipoCarritoService: InstitucionTipoCarritoService,
private marcaService: MarcaService,
+7 -17
View File
@@ -1,11 +1,4 @@
import {
Controller,
ForbiddenException,
Get,
Query,
Request,
UseGuards,
} from '@nestjs/common';
import { Controller, Get, Query, Request, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import {
ApiBearerAuth,
@@ -15,6 +8,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { EquipoMotivoService } from './equipo-motivo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
@@ -22,7 +16,10 @@ import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
@Controller('equipo-motivo')
@ApiTags('equipo-motivo')
export class EquipoMotivoController {
constructor(private equipoMotivoService: EquipoMotivoService) {}
constructor(
private equipoMotivoService: EquipoMotivoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(EquipoMotivoOutputDto)
@Get()
@@ -45,14 +42,7 @@ export class EquipoMotivoController {
get(@Request() req, @Query() query: IdEquipoPaginaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoMotivoService.findAllByIdEquipo(
parseInt(query.id_equipo),
parseInt(query.pagina),
@@ -7,6 +7,7 @@ import { EquipoMotivo } from './entity/equipo-motivo.entity';
import { EquipoModule } from '../equipo/equipo.module';
import { OperadorModule } from '../operador/operador.module';
import { StatusModule } from '../status/status.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -15,6 +16,7 @@ import { StatusModule } from '../status/status.module';
StatusModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([EquipoMotivo]),
ValidarUsuarioModule,
],
controllers: [EquipoMotivoController],
providers: [EquipoMotivoService],
@@ -2,7 +2,6 @@ import {
Body,
Controller,
Delete,
ForbiddenException,
Post,
Request,
UseGuards,
@@ -11,13 +10,17 @@ import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { Operador } from '../operador/entity/operador.entity';
import { EquipoProgramaService } from './equipo-programa.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { CreateEquipoProgramaDto } from './dto/input/create.dto';
import { DeleteEquipoProgramaDto } from './dto/input/delete.dto';
@Controller('equipo-programa')
@ApiTags('equipo-programa')
export class EquipoProgramaController {
constructor(private equipoProgramaService: EquipoProgramaService) {}
constructor(
private equipoProgramaService: EquipoProgramaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -33,14 +36,7 @@ export class EquipoProgramaController {
create(@Request() req, @Body() body: CreateEquipoProgramaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoProgramaService.create(body.id_equipo, body.id_programa);
}
@@ -58,14 +54,7 @@ export class EquipoProgramaController {
delete(@Request() req, @Body() body: DeleteEquipoProgramaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoProgramaService.delete(operador, body.id_equipo_programa);
}
}
@@ -7,6 +7,7 @@ import { EquipoPrograma } from '../equipo-programa/entity/equipo-programa.entity
import { InformacionEquipoProgramaView } from './entity/views/informacion-equipo-programa.view';
import { EquipoModule } from '../equipo/equipo.module';
import { InstitucionProgramaModule } from '../institucion-programa/institucion-programa.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -14,6 +15,7 @@ import { InstitucionProgramaModule } from '../institucion-programa/institucion-p
InstitucionProgramaModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([EquipoPrograma, InformacionEquipoProgramaView]),
ValidarUsuarioModule,
],
controllers: [EquipoProgramaController],
providers: [EquipoProgramaService],
@@ -2,7 +2,6 @@ import {
Body,
Controller,
Delete,
ForbiddenException,
Post,
Request,
UseGuards,
@@ -10,6 +9,7 @@ import {
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { EquipoTipoEntradaService } from './equipo-tipo-entrada.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { CreateEquipoTipoEntradaDto } from './dto/input/create.dto';
import { DeleteEquipoTipoEntradaDto } from './dto/input/delete.dto';
@@ -17,7 +17,10 @@ import { DeleteEquipoTipoEntradaDto } from './dto/input/delete.dto';
@Controller('equipo-tipo-entrada')
@ApiTags('equipo-tipo-entrada')
export class EquipoTipoEntradaController {
constructor(private equipoTipoEntradaService: EquipoTipoEntradaService) {}
constructor(
private equipoTipoEntradaService: EquipoTipoEntradaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -33,14 +36,7 @@ export class EquipoTipoEntradaController {
create(@Request() req, @Body() body: CreateEquipoTipoEntradaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoTipoEntradaService.create(
body.id_equipo,
body.id_tipo_entrada,
@@ -61,14 +57,7 @@ export class EquipoTipoEntradaController {
delete(@Request() req, @Body() body: DeleteEquipoTipoEntradaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoTipoEntradaService.delete(body.id_equipo_tipo_entrada);
}
}
@@ -7,6 +7,7 @@ import { EquipoTipoEntrada } from '../equipo-tipo-entrada/entity/equipo-tipo-ent
import { InformacionEquipoTipoEntradaView } from './entity/views/informacion-equipo-tipo-entrada.view';
import { EquipoModule } from '../equipo/equipo.module';
import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/institucion-tipo-entrada.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -17,6 +18,7 @@ import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/instit
EquipoTipoEntrada,
InformacionEquipoTipoEntradaView,
]),
ValidarUsuarioModule,
],
controllers: [EquipoTipoEntradaController],
providers: [EquipoTipoEntradaService],
+8 -25
View File
@@ -18,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { EquipoService } from './equipo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { NumeroInventarioDto } from '../dto/numero-inventario.dto';
import { EquiposDto } from './dto/input/equipos.dto';
@@ -28,7 +29,10 @@ import { EquiposOutputDto } from './dto/output/equipos.dto';
@Controller('equipo')
@ApiTags('equipo')
export class EquipoController {
constructor(private equipoService: EquipoService) {}
constructor(
private equipoService: EquipoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(EquipoOutputDto)
@Get('equipo')
@@ -51,14 +55,7 @@ export class EquipoController {
equipo(@Request() req, @Query() query: NumeroInventarioDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoService
.findByNumeroInventario(
parseInt(query.id_institucion),
@@ -159,14 +156,7 @@ export class EquipoController {
equipos(@Request() req, @Query() query: EquiposDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.equipoService.findAll(operador, query);
}
@@ -196,14 +186,7 @@ export class EquipoController {
const operador: Operador = req.user.operador;
const data = { ...body };
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
delete data.id_carrito;
delete data.id_status;
delete data.id_operador;
+2
View File
@@ -17,6 +17,7 @@ import { ModuloModule } from '../modulo/modulo.module';
import { EquipoMotivoModule } from '../equipo-motivo/equipo-motivo.module';
import { OperadorModule } from '../operador/operador.module';
import { StatusModule } from '../status/status.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -34,6 +35,7 @@ import { StatusModule } from '../status/status.module';
PassportModule.register({ defaultStrategy: 'jwt' }),
StatusModule,
TypeOrmModule.forFeature([Equipo, InformacionEquipoView]),
ValidarUsuarioModule,
],
controllers: [EquipoController],
providers: [EquipoService],
@@ -2,7 +2,6 @@ import {
Body,
Controller,
Delete,
ForbiddenException,
Get,
Post,
Query,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { HoraExcepcionService } from './hora-excepcion.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { CreateHoraExcepcionDto } from './dto/input/create.dto';
import { DeleteHoraExcepcionDto } from './dto/input/delete.dto';
@@ -28,7 +28,10 @@ import { HoraExcepcionOutputDto } from './dto/output/hora-excepcion.dto';
@Controller('hora-excepcion')
@ApiTags('hora-excepcion')
export class HoraExcepcionController {
constructor(private horaExcepcionService: HoraExcepcionService) {}
constructor(
private horaExcepcionService: HoraExcepcionService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -51,10 +54,7 @@ export class HoraExcepcionController {
create(@Request() req, @Body() body: CreateHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.horaExcepcionService.create(
admin,
body.id_institucion_dia,
@@ -76,10 +76,7 @@ export class HoraExcepcionController {
delete(@Request() req, @Body() body: DeleteHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.horaExcepcionService.delete(admin, body.id_hora_excepcion);
}
@@ -98,10 +95,7 @@ export class HoraExcepcionController {
get(@Request() req, @Query() query: GetHoraExcepcionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.horaExcepcionService.findAllByIdInstitucionDia(
parseInt(query.id_institucion_dia),
);
@@ -5,12 +5,14 @@ import { HoraExcepcionController } from './hora-excepcion.controller';
import { HoraExcepcionService } from './hora-excepcion.service';
import { HoraExcepcion } from './entity/hora-excepcion.entity';
import { InstitucionDiaModule } from '../institucion-dia/institucion-dia.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionDiaModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([HoraExcepcion]),
ValidarUsuarioModule,
],
controllers: [HoraExcepcionController],
providers: [HoraExcepcionService],
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Put,
Query,
@@ -18,6 +17,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionDiaService } from './institucion-dia.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { UpdateInstitucionDiaDto } from './dto/input/update.dto';
@@ -27,7 +27,10 @@ import { Usuario } from '../usuario/entity/usuario.entity';
@Controller('institucion-dia')
@ApiTags('institucion-dia')
export class InstitucionDiaController {
constructor(private institucionDiaService: InstitucionDiaService) {}
constructor(
private institucionDiaService: InstitucionDiaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(InstitucionCarreaOutputDto)
@Get()
@@ -44,10 +47,7 @@ export class InstitucionDiaController {
dias(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionDiaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -69,10 +69,7 @@ export class InstitucionDiaController {
hoy(@Request() req, @Query() query: IdInstitucionDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.institucionDiaService.hoy(parseInt(query.id_institucion));
}
@@ -102,10 +99,7 @@ export class InstitucionDiaController {
update(@Request() req, @Body() body: UpdateInstitucionDiaDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionDiaService.update(admin, body);
}
}
@@ -6,12 +6,14 @@ import { InstitucionDiaService } from './institucion-dia.service';
import { Dia } from './entity/dia.entity';
import { InstitucionDia } from './entity/institucion-dia.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Dia, InstitucionDia]),
ValidarUsuarioModule,
],
controllers: [InstitucionDiaController],
providers: [InstitucionDiaService],
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionInfraccionService } from './institucion-infraccion.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { CreateInstitucionInfraccionDto } from './dto/input/create.dto';
@@ -31,6 +31,7 @@ import { InstitucionInfraccionOutputDto } from './dto/output/institucion-infracc
export class InstitucionInfraccionController {
constructor(
private institucionInfraccionService: InstitucionInfraccionService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@@ -44,10 +45,7 @@ export class InstitucionInfraccionController {
create(@Request() req, @Body() body: CreateInstitucionInfraccionDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionInfraccionService.create(body.infraccion);
}
@@ -59,10 +57,7 @@ export class InstitucionInfraccionController {
get(@Request() req) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionInfraccionService.findAll();
}
@@ -81,14 +76,7 @@ export class InstitucionInfraccionController {
infracciones(@Request() req, @Query() query: IdInstitucionDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.institucionInfraccionService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -109,10 +97,7 @@ export class InstitucionInfraccionController {
update(@Request() req, @Body() body: UpdateInstitucionInfraccionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionInfraccionService.update(admin, body);
}
}
@@ -6,12 +6,14 @@ import { InstitucionInfraccionService } from './institucion-infraccion.service';
import { Infraccion } from './entity/infraccion.entity';
import { InstitucionInfraccion } from './entity/institucion-infraccion.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Infraccion, InstitucionInfraccion]),
ValidarUsuarioModule,
],
controllers: [InstitucionInfraccionController],
providers: [InstitucionInfraccionService],
@@ -1,6 +1,5 @@
import {
Body,
ForbiddenException,
Controller,
Get,
Post,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionProgramaService } from './institucion-programa.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
@@ -31,7 +31,10 @@ import { ProgramaOutputDto } from './dto/output/programa.dto';
@Controller('institucion-programa')
@ApiTags('institucion-programa')
export class InstitucionProgramaController {
constructor(private institucionProgramaService: InstitucionProgramaService) {}
constructor(
private institucionProgramaService: InstitucionProgramaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -44,10 +47,7 @@ export class InstitucionProgramaController {
create(@Request() req, @Body() body: CreateProgramaDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionProgramaService.create(body.programa);
}
@@ -59,15 +59,7 @@ export class InstitucionProgramaController {
get(@Request() req) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarOperador(operador);
return this.institucionProgramaService.findAllProgramas();
}
@@ -86,10 +78,7 @@ export class InstitucionProgramaController {
programas(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionProgramaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -111,10 +100,7 @@ export class InstitucionProgramaController {
programasMostrar(@Request() req, @Query() query: IdInstitucionDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.institucionProgramaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
true,
@@ -137,10 +123,7 @@ export class InstitucionProgramaController {
update(@Request() req, @Body() body: UpdateProgramaDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionProgramaService.update(admin, body);
}
}
@@ -6,12 +6,14 @@ import { InstitucionProgramaService } from './institucion-programa.service';
import { InstitucionPrograma } from './entity/institucion-programa.entity';
import { Programa } from './entity/programa.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([InstitucionPrograma, Programa]),
ValidarUsuarioModule,
],
controllers: [InstitucionProgramaController],
providers: [InstitucionProgramaService],
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionTipoCarritoService } from './institucion-tipo-carrito.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
@@ -33,6 +33,7 @@ import { TipoCarritoOutputDto } from './dto/output/tipo-carrito.dto';
export class InstitucionTipoCarritoController {
constructor(
private institucionTipoCarritoService: InstitucionTipoCarritoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@@ -46,10 +47,7 @@ export class InstitucionTipoCarritoController {
create(@Request() req, @Body() body: CreateInstitucionTipoCarritoDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionTipoCarritoService.create(
body.letra,
body.tipo_carrito,
@@ -66,15 +64,7 @@ export class InstitucionTipoCarritoController {
get(@Request() req) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarOperador(operador);
return this.institucionTipoCarritoService.findAll();
}
@@ -94,10 +84,7 @@ export class InstitucionTipoCarritoController {
tiposCarrito(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionTipoCarritoService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -119,10 +106,7 @@ export class InstitucionTipoCarritoController {
tiposCarritoMostrar(@Request() req, @Query() query: IdInstitucionDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.institucionTipoCarritoService.findAllByIdInstitucion(
parseInt(query.id_institucion),
true,
@@ -145,10 +129,7 @@ export class InstitucionTipoCarritoController {
update(@Request() req, @Body() body: UpdateInstitucionTipoCarritoDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.institucionTipoCarritoService.update(admin, body);
}
}
@@ -6,12 +6,14 @@ import { InstitucionTipoCarritoService } from './institucion-tipo-carrito.servic
import { InstitucionTipoCarrito } from './entity/institucion-tipo-carrito.entity';
import { TipoCarrito } from './entity/tipo-carrito.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([InstitucionTipoCarrito, TipoCarrito]),
ValidarUsuarioModule,
],
controllers: [InstitucionTipoCarritoController],
providers: [InstitucionTipoCarritoService],
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
@@ -31,7 +31,10 @@ import { TipoEntradaOutputDto } from './dto/output/tipo-entrada.dto';
@Controller('institucion-tipo-entrada')
@ApiTags('institucion-tipo-entrada')
export class InstitucionTipoEntradaController {
constructor(private tipoEntradaService: InstitucionTipoEntradaService) {}
constructor(
private tipoEntradaService: InstitucionTipoEntradaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -44,10 +47,7 @@ export class InstitucionTipoEntradaController {
create(@Request() req, @Body() body: CreateInstitucionTipoEntradaDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.tipoEntradaService.create(body.tipo_entrada);
}
@@ -61,15 +61,7 @@ export class InstitucionTipoEntradaController {
get(@Request() req) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarOperador(operador);
return this.tipoEntradaService.findAll();
}
@@ -89,10 +81,7 @@ export class InstitucionTipoEntradaController {
tiposEntrada(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.tipoEntradaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -114,10 +103,7 @@ export class InstitucionTipoEntradaController {
tipoEntradaMostrar(@Request() req, @Query() query: IdInstitucionDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.tipoEntradaService.findAllByIdInstitucion(
parseInt(query.id_institucion),
true,
@@ -140,10 +126,7 @@ export class InstitucionTipoEntradaController {
update(@Request() req, @Body() body: UpdateInstitucionTipoEntradaDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.tipoEntradaService.update(admin, body);
}
}
@@ -6,12 +6,14 @@ import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.servic
import { InstitucionModule } from '../institucion/institucion.module';
import { InstitucionTipoEntrada } from './entity/institucion-tipo-entrada.entity';
import { TipoEntrada } from './entity/tipo-entrada.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([InstitucionTipoEntrada, TipoEntrada]),
ValidarUsuarioModule,
],
controllers: [InstitucionTipoEntradaController],
providers: [InstitucionTipoEntradaService],
@@ -9,13 +9,17 @@ import {
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { InstitucionUsuarioService } from './institucion-usuario.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { UpdateInstitucionUsuarioInputDto } from './dto/input/update.dto';
@Controller('institucion-usuario')
@ApiTags('institucion-usuario')
export class InstitucionUsuarioController {
constructor(private institucionUsuarioService: InstitucionUsuarioService) {}
constructor(
private institucionUsuarioService: InstitucionUsuarioService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Put()
@UseGuards(AuthGuard('jwt'))
@@ -38,14 +42,7 @@ export class InstitucionUsuarioController {
update(@Request() req, @Body() body: UpdateInstitucionUsuarioInputDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 3 &&
admin.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(admin);
return this.institucionUsuarioService.update(body);
}
}
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { InstitucionUsuarioService } from './institucion-usuario.service';
import { InstitucionUsuario } from './entity/institucion-usuario.entity';
import { InstitucionUsuarioController } from './institucion-usuario.controller';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([InstitucionUsuario]),
ValidarUsuarioModule,
],
providers: [InstitucionUsuarioService],
exports: [InstitucionUsuarioService],
+9 -25
View File
@@ -18,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { InstitucionService } from './institucion.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { UpdateInstitucionDto } from './dto/input/update.dto';
@@ -29,7 +30,10 @@ import { InstitucionesMinOutputDto } from './dto/output/instituciones-min.dto';
@Controller('institucion')
@ApiTags('institucion')
export class InstitucionController {
constructor(private institucionService: InstitucionService) {}
constructor(
private institucionService: InstitucionService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(InstitucionesMinOutputDto)
@Get('instituciones-activas')
@@ -50,10 +54,7 @@ export class InstitucionController {
get(@Request() req) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionService.findAll();
}
@@ -72,14 +73,7 @@ export class InstitucionController {
institucion(@Request() req, @Query() query: IdInstitucionDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.institucionService
.findById(parseInt(query.id_institucion))
.then((institucion) => {
@@ -104,10 +98,7 @@ export class InstitucionController {
instituciones(@Request() req) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.institucionService.findAll();
}
@@ -140,14 +131,7 @@ export class InstitucionController {
update(@Request() req, @Body() body: UpdateInstitucionDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.institucionService.update(admin, body);
}
}
+2
View File
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { InstitucionController } from './institucion.controller';
import { InstitucionService } from './institucion.service';
import { Institucion } from './entity/institucion.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Institucion]),
ValidarUsuarioModule,
],
controllers: [InstitucionController],
providers: [InstitucionService],
+7 -15
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Query,
@@ -18,6 +17,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { MarcaService } from './marca.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { CreateMarcaDto } from './dto/input/create.dto';
import { MarcaDto } from './dto/input/marca.dto';
@@ -26,7 +26,10 @@ import { MarcaOutputDto } from './dto/output/marca.dto';
@Controller('marca')
@ApiTags('marca')
export class MarcaController {
constructor(private marcaService: MarcaService) {}
constructor(
private marcaService: MarcaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -39,10 +42,7 @@ export class MarcaController {
create(@Request() req, @Body() body: CreateMarcaDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.marcaService.create(body.marca, body.tipo);
}
@@ -59,15 +59,7 @@ export class MarcaController {
get(@Request() req, @Query() query: MarcaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarOperador(operador);
return this.marcaService.findAll(query.tipo);
}
}
+2
View File
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { MarcaController } from './marca.controller';
import { MarcaService } from './marca.service';
import { Marca } from './entity/marca.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Marca]),
ValidarUsuarioModule,
],
controllers: [MarcaController],
providers: [MarcaService],
+7 -10
View File
@@ -18,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { ModeloService } from './modelo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { CreateModeloDto } from './dto/input/create.dto';
import { ModeloDto } from './dto/input/modelo.dto';
@@ -26,7 +27,10 @@ import { ModeloOutputDto } from './dto/output/modelo.dto';
@Controller('modelo')
@ApiTags('modelo')
export class ModeloController {
constructor(private modeloService: ModeloService) {}
constructor(
private modeloService: ModeloService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -39,6 +43,7 @@ export class ModeloController {
create(@Request() req, @Body() body: CreateModeloDto) {
const superAdmin: Operador = req.user.operador;
this.validarUsuarioService.validarSuperAdmin(superAdmin);
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
@@ -59,15 +64,7 @@ export class ModeloController {
get(@Request() req, @Query() query: ModeloDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para accedar a esta información.',
);
this.validarUsuarioService.validarOperador(operador);
return this.modeloService.findAll(query.tipo);
}
}
+2
View File
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { ModeloController } from './modelo.controller';
import { ModeloService } from './modelo.service';
import { Modelo } from './entity/modelo.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Modelo]),
ValidarUsuarioModule,
],
controllers: [ModeloController],
providers: [ModeloService],
+9 -24
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,8 +18,8 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { ModuloService } from './modulo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
import { CreateModuloDto } from './dto/input/create.dto';
import { ModuloDto } from './dto/input/modulo.dto';
@@ -31,7 +30,10 @@ import { ModuloMinOutputDto } from './dto/output/modulo-min.dto';
@Controller('modulo')
@ApiTags('modulo')
export class ModuloController {
constructor(private moduloService: ModuloService) {}
constructor(
private moduloService: ModuloService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -44,10 +46,7 @@ export class ModuloController {
create(@Request() req, @Body() body: CreateModuloDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.moduloService.create(admin, body.modulo);
}
@@ -66,10 +65,7 @@ export class ModuloController {
modulo(@Request() req, @Query() query: ModuloDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.moduloService.findById(parseInt(query.id_modulo));
}
@@ -88,15 +84,7 @@ export class ModuloController {
modulos(@Request() req, @Query() query: IdInstitucionDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarOperador(operador);
return this.moduloService.findAllByIdInstitucion(
parseInt(query.id_institucion),
);
@@ -134,10 +122,7 @@ export class ModuloController {
update(@Request() req, @Body() body: UpdateModuloDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.moduloService.update(admin, body);
}
}
+2
View File
@@ -5,12 +5,14 @@ import { ModuloController } from './modulo.controller';
import { ModuloService } from './modulo.service';
import { Modulo } from './entity/modulo.entity';
import { InstitucionModule } from '../institucion/institucion.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
InstitucionModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Modulo]),
ValidarUsuarioModule,
],
controllers: [ModuloController],
providers: [ModuloService],
+11 -44
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { MultaService } from './multa.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { IdUsuarioDto } from '../dto/id-usuario.dto';
@@ -35,7 +35,10 @@ import { MultasUsuarioOutputDto } from './dto/output/multas-usuario.dto';
@Controller('multa')
@ApiTags('multa')
export class MultaController {
constructor(private multaService: MultaService) {}
constructor(
private multaService: MultaService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -57,14 +60,7 @@ export class MultaController {
multar(@Request() req, @Body() body: MultarDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.create(
body.id_prestamo,
body.id_operador,
@@ -102,15 +98,7 @@ export class MultaController {
multas(@Request() req, @Query() query: MultasDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAll(query);
}
@@ -134,14 +122,7 @@ export class MultaController {
multasEquipo(@Request() req, @Query() query: IdEquipoPaginaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAllByIdEquipo(
parseInt(query.id_equipo),
parseInt(query.pagina),
@@ -168,15 +149,7 @@ export class MultaController {
multasUsuario(@Request() req, @Query() query: IdUsuarioPaginaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAllByIdUsuario(
parseInt(query.id_usuario),
parseInt(query.pagina),
@@ -199,10 +172,7 @@ export class MultaController {
multasActivas(@Request() req, @Query() query: IdUsuarioDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.multaService.findMultasActivas(parseInt(query.id_usuario));
}
@@ -220,10 +190,7 @@ export class MultaController {
quitarMulta(@Request() req, @Body() body: QuitarMultarDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.multaService.quitarMulta(body.id_institucion_usuario);
}
+2
View File
@@ -11,6 +11,7 @@ import { InstitucionUsuarioModule } from '../institucion-usuario/institucion-usu
import { OperadorModule } from '../operador/operador.module';
import { PrestamoModule } from '../prestamo/prestamo.module';
import { UsuarioModule } from '../usuario/usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -23,6 +24,7 @@ import { UsuarioModule } from '../usuario/usuario.module';
OperadorModule,
TypeOrmModule.forFeature([Multa]),
UsuarioModule,
ValidarUsuarioModule,
],
controllers: [MultaController],
providers: [MultaService],
+10 -34
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { OperadorService } from './operador.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from './entity/operador.entity';
import { CreateAdminDto } from './dto/input/create-admin.dto';
import { CreateOperadorDto } from './dto/input/create-operador.dto';
@@ -29,7 +29,10 @@ import { OperadorOutputDto } from './dto/output/operador.dto';
@Controller('operador')
@ApiTags('operador')
export class OperadorController {
constructor(private operadorService: OperadorService) {}
constructor(
private operadorService: OperadorService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post('admin')
@UseGuards(AuthGuard('jwt'))
@@ -51,10 +54,7 @@ export class OperadorController {
createAdmin(@Request() req, @Body() body: CreateAdminDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.operadorService.create(
body.id_institucion,
3,
@@ -84,10 +84,7 @@ export class OperadorController {
createOperador(@Request() req, @Body() body: CreateOperadorDto) {
const admin: Operador = req.user.operador;
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdmin(admin);
return this.operadorService.create(
admin.institucion,
4,
@@ -132,14 +129,7 @@ export class OperadorController {
operadores(@Request() req, @Query() query: OperadoresDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ForbiddenException(
'No tienes permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.operadorService.findAll(query);
}
@@ -156,14 +146,7 @@ export class OperadorController {
passwordResset(@Request() req, @Body() body: UpdateOperadorDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.operadorService.passwordReset(
admin,
body.id_operador,
@@ -192,14 +175,7 @@ export class OperadorController {
update(@Request() req, @Body() body: UpdateOperadorDto) {
const admin: Operador = req.user.operador;
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.operadorService.update(admin, body);
}
}
+2
View File
@@ -9,6 +9,7 @@ import { BcryptModule } from '../bcrypt/bcrypt.module';
import { InstitucionModule } from '../institucion/institucion.module';
import { NodemailerModule } from '../nodemailer/nodemailer.module';
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -18,6 +19,7 @@ import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
PassportModule.register({ defaultStrategy: 'jwt' }),
TipoUsuarioModule,
TypeOrmModule.forFeature([Operador, InformacionOperadorView]),
ValidarUsuarioModule,
],
controllers: [OperadorController],
providers: [OperadorService],
+22 -96
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -19,6 +18,7 @@ import {
} from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { PrestamoService } from './prestamo.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
import { IdUsuarioDto } from '../dto/id-usuario.dto';
@@ -45,7 +45,10 @@ import { Usuario } from '../usuario/entity/usuario.entity';
@Controller('prestamo')
@ApiTags('prestamo')
export class PrestamoController {
constructor(private prestamoService: PrestamoService) {}
constructor(
private prestamoService: PrestamoService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(ActivosOutputDto)
@Get('activos')
@@ -111,14 +114,7 @@ export class PrestamoController {
activos(@Request() req, @Query() query: ActivosDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.findAll(query);
}
@@ -137,14 +133,7 @@ export class PrestamoController {
cancelarOperador(@Request() req, @Body() body: CancelarOperadorDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.cancelarOperador(
body.id_prestamo,
body.id_operador,
@@ -165,10 +154,7 @@ export class PrestamoController {
cancelarUsuario(@Request() req, @Body() body: CancelarUsuarioDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.prestamoService.cancelarUsuario(body.id_prestamo);
}
@@ -186,14 +172,7 @@ export class PrestamoController {
entregar(@Request() req, @Body() body: EntregarDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.entregar(body.id_prestamo, body.id_operador);
}
@@ -273,14 +252,7 @@ export class PrestamoController {
historial(@Request() req, @Query() query: HistorialDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.findAll(query);
}
@@ -305,14 +277,7 @@ export class PrestamoController {
historialEquipo(@Request() req, @Query() query: IdEquipoPaginaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.findAllByIdEquipo(
parseInt(query.id_equipo),
parseInt(query.pagina),
@@ -340,14 +305,7 @@ export class PrestamoController {
historialUsuario(@Request() req, @Query() query: IdUsuarioPaginaDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.findAllByIdUsuario(
parseInt(query.id_usuario),
parseInt(query.pagina),
@@ -376,10 +334,7 @@ export class PrestamoController {
pedir(@Request() req, @Body() body: PedirDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.prestamoService.create(
usuario,
body.id_modulo,
@@ -400,17 +355,12 @@ export class PrestamoController {
type: 'text',
})
prestamoIdPrestamo(@Request() req, @Query() query: IdPrestamoDto) {
const operador: Operador = req.user.operador;
const usuario: Usuario = req.user.usuario;
const usuarioOperador: Operador | Usuario =
req.user.operador || req.user.usuario;
if (
operador &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
if ('id_usuario' in usuarioOperador)
this.validarUsuarioService.validarUsuario(usuarioOperador);
else this.validarUsuarioService.validarAdminOperador(usuarioOperador);
return this.prestamoService.findById(parseInt(query.id_prestamo));
}
@@ -430,10 +380,7 @@ export class PrestamoController {
prestamoIdUsuario(@Request() req, @Query() query: IdUsuarioDto) {
const usuario: Usuario = req.user.usuario;
if (!usuario)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarUsuario(usuario);
return this.prestamoService.findByIdUsuario(parseInt(query.id_usuario));
}
@@ -461,14 +408,7 @@ export class PrestamoController {
) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.findByNumeroInventario(
parseInt(query.id_institucion),
query.numero_inventario,
@@ -495,14 +435,7 @@ export class PrestamoController {
regresarIdPrestamo(@Request() req, @Body() body: RegresarIdPrestamoDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.regresarIdPrestamo(
body.id_operador,
body.id_prestamo,
@@ -534,14 +467,7 @@ export class PrestamoController {
) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.regresarNumeroInventario(
body.id_operador,
body.numero_inventario,
+3
View File
@@ -16,6 +16,8 @@ import { ModuloModule } from '../modulo/modulo.module';
import { MultaModule } from '../multa/multa.module';
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
import { UsuarioModule } from '../usuario/usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
EquipoModule,
@@ -31,6 +33,7 @@ import { UsuarioModule } from '../usuario/usuario.module';
TypeOrmModule.forFeature([Prestamo]),
TipoUsuarioModule,
UsuarioModule,
ValidarUsuarioModule,
],
controllers: [PrestamoController],
providers: [AppGateway, PrestamoService],
+7 -17
View File
@@ -1,21 +1,19 @@
import {
Controller,
ForbiddenException,
Get,
Request,
UseGuards,
} from '@nestjs/common';
import { Controller, Get, Request, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiOperation, ApiTags } from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { StatusService } from './status.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { StatusOutputDto } from './dto/output/status.dto';
import { Operador } from '../operador/entity/operador.entity';
@Controller('status')
@ApiTags('status')
export class StatusController {
constructor(private statusService: StatusService) {}
constructor(
private statusService: StatusService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Serealize(StatusOutputDto)
@Get()
@@ -25,15 +23,7 @@ export class StatusController {
get(@Request() req) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para acceder a esta información.',
);
this.validarUsuarioService.validarOperador(operador);
return this.statusService.findAll();
}
}
+2
View File
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { StatusController } from './status.controller';
import { StatusService } from './status.service';
import { Status } from './entity/status.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([Status]),
ValidarUsuarioModule,
],
controllers: [StatusController],
providers: [StatusService],
+8 -19
View File
@@ -1,6 +1,5 @@
import {
Body,
ConflictException,
Controller,
Get,
Post,
@@ -11,6 +10,7 @@ import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
import { Serealize } from '../interceptors/serialize.interceptor';
import { TipoUsuarioService } from './tipo-usuario.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { CreateTipoUsuarioDto } from './dto/input/create.dto';
import { TipoUsuarioOutputDto } from './dto/output/tipo-usuario.dto';
@@ -18,7 +18,10 @@ import { TipoUsuarioOutputDto } from './dto/output/tipo-usuario.dto';
@Controller('tipo-usuario')
@ApiTags('tipo-usuario')
export class TipoUsuarioController {
constructor(private tipoUsuarioService: TipoUsuarioService) {}
constructor(
private tipoUsuarioService: TipoUsuarioService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post()
@UseGuards(AuthGuard('jwt'))
@@ -31,10 +34,7 @@ export class TipoUsuarioController {
create(@Request() req, @Body() body: CreateTipoUsuarioDto) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.tipoUsuarioService.create(body.tipo_usuario);
}
@@ -48,10 +48,7 @@ export class TipoUsuarioController {
get(@Request() req) {
const superAdmin: Operador = req.user.operador;
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
throw new ConflictException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarSuperAdmin(superAdmin);
return this.tipoUsuarioService.findAll();
}
@@ -66,15 +63,7 @@ export class TipoUsuarioController {
operador(@Request() req) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ConflictException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarOperador(operador);
return this.tipoUsuarioService.findAll('operador');
}
}
+2
View File
@@ -4,11 +4,13 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { TipoUsuarioController } from './tipo-usuario.controller';
import { TipoUsuarioService } from './tipo-usuario.service';
import { TipoUsuario } from './entity/tipo-usuario.entity';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
TypeOrmModule.forFeature([TipoUsuario]),
ValidarUsuarioModule,
],
controllers: [TipoUsuarioController],
providers: [TipoUsuarioService],
+33 -4
View File
@@ -5,6 +5,7 @@ import {
Post,
Query,
Response,
Request,
UploadedFile,
UseGuards,
UseInterceptors,
@@ -13,23 +14,31 @@ import { AuthGuard } from '@nestjs/passport';
import { FileInterceptor } from '@nestjs/platform-express';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { UploadFileService } from './upload-file.service';
import { Operador } from '../operador/entity/operador.entity';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { IdInstitucionDto } from '../dto/id-institucion.dto';
@Controller('upload-file')
@ApiTags('upload-file')
export class UploadFileController {
constructor(private uploadFileService: UploadFileService) {}
constructor(
private uploadFileService: UploadFileService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post('carga-masiva-equipos')
@UseGuards(AuthGuard('jwt'))
@UseInterceptors(FileInterceptor('csv'))
@ApiBearerAuth('jwt')
cargaMasivaEquipos(
@Request() req,
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
const admin: Operador = req.user.operador;
const path = file ? `${file.destination}/${file.filename}` : null;
this.validarUsuarioService.validarAdmin(admin);
if (!file) throw new BadRequestException('No se mandó ningún archivo.');
return this.uploadFileService.createEquipos(
path,
@@ -42,11 +51,14 @@ export class UploadFileController {
@UseInterceptors(FileInterceptor('csv'))
@ApiBearerAuth('jwt')
cargaMasivaUsuarios(
@Request() req,
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
const admin: Operador = req.user.operador;
const path = file ? `${file.destination}/${file.filename}` : null;
this.validarUsuarioService.validarAdmin(admin);
if (!file) throw new BadRequestException('No se mandó ningún archivo.');
return this.uploadFileService.createUsuarios(
path,
@@ -57,7 +69,14 @@ export class UploadFileController {
@Get('download-logo')
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
downloadLogo(@Response() res, @Query() query: IdInstitucionDto) {
downloadLogo(
@Request() req,
@Response() res,
@Query() query: IdInstitucionDto,
) {
const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador);
return this.uploadFileService
.downloadLogo(parseInt(query.id_institucion))
.then((logo) => res.download(logo));
@@ -66,14 +85,20 @@ export class UploadFileController {
@Get('download-plantilla-equipos')
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
downloadPlantillaEquipos(@Response() res) {
downloadPlantillaEquipos(@Request() req, @Response() res) {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
return res.download('./upload/plantilla_equipos.csv');
}
@Get('download-plantilla-usuarios')
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
downloadPlantillaUsuarios(@Response() res) {
downloadPlantillaUsuarios(@Request() req, @Response() res) {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
return res.download('./upload/plantilla_alumnos.csv');
}
@@ -82,9 +107,13 @@ export class UploadFileController {
@ApiBearerAuth('jwt')
@UseInterceptors(FileInterceptor('logo'))
uploadLogo(
@Request() req,
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
return this.uploadFileService.uploadLogo(
file,
parseInt(query.id_institucion),
+2
View File
@@ -19,6 +19,7 @@ import { ModeloModule } from '../modelo/modelo.module';
import { ModuloModule } from '../modulo/modulo.module';
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
import { UsuarioModule } from '../usuario/usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -49,6 +50,7 @@ import { UsuarioModule } from '../usuario/usuario.module';
PassportModule.register({ defaultStrategy: 'jwt' }),
TipoUsuarioModule,
UsuarioModule,
ValidarUsuarioModule,
],
controllers: [UploadFileController],
providers: [AppGateway, UploadFileService],
+9 -35
View File
@@ -1,7 +1,6 @@
import {
Body,
Controller,
ForbiddenException,
Get,
Post,
Put,
@@ -20,6 +19,7 @@ import {
import { Recaptcha } from '@nestlab/google-recaptcha';
import { Serealize } from '../interceptors/serialize.interceptor';
import { UsuarioService } from './usuario.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity';
import { RegistrarUsuarioInputDto } from './dto/input/registrar.dto';
import { UpdateUsuarioInputDto } from './dto/input/update.dto';
@@ -31,7 +31,10 @@ import { UsuariosOutputDto } from './dto/output/usuarios.dto';
@Controller('usuario')
@ApiTags('usuario')
export class UsuarioController {
constructor(private usuarioService: UsuarioService) {}
constructor(
private usuarioService: UsuarioService,
private validarUsuarioService: ValidarUsuarioService,
) {}
@Post('registrar')
@Recaptcha()
@@ -77,14 +80,7 @@ export class UsuarioController {
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 ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(admin);
return this.usuarioService.update(body);
}
@@ -101,14 +97,7 @@ export class UsuarioController {
passwordResset(@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 ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(admin);
return this.usuarioService.passwordReset(body.id_usuario);
}
@@ -127,14 +116,7 @@ export class UsuarioController {
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 ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarAdminOperador(admin);
return this.usuarioService.findByUsuario(query.usuario, true, true);
}
@@ -184,15 +166,7 @@ export class UsuarioController {
usuarios(@Request() req, @Query() query: UsuariosInputDto) {
const operador: Operador = req.user.operador;
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
this.validarUsuarioService.validarOperador(operador);
return this.usuarioService.findAll(query);
}
}
+2
View File
@@ -11,6 +11,7 @@ import { InstitucionCarreraModule } from '../institucion-carrera/institucion-car
import { InstitucionUsuarioModule } from '../institucion-usuario/institucion-usuario.module';
import { NodemailerModule } from '../nodemailer/nodemailer.module';
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@Module({
imports: [
@@ -22,6 +23,7 @@ import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
PassportModule.register({ defaultStrategy: 'jwt' }),
TipoUsuarioModule,
TypeOrmModule.forFeature([Usuario, InformacionUsuarioView]),
ValidarUsuarioModule,
],
controllers: [UsuarioController],
providers: [UsuarioService],
@@ -0,0 +1,8 @@
import { Module } from '@nestjs/common';
import { ValidarUsuarioService } from './validar-usuario.service';
@Module({
providers: [ValidarUsuarioService],
exports: [ValidarUsuarioService],
})
export class ValidarUsuarioModule {}
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { ValidarUsuarioService } from './validar-usuario.service';
describe('ValidarUsuarioService', () => {
let service: ValidarUsuarioService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [ValidarUsuarioService],
}).compile();
service = module.get<ValidarUsuarioService>(ValidarUsuarioService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
});
@@ -0,0 +1,53 @@
import { ForbiddenException, Injectable } from '@nestjs/common';
import { Operador } from 'src/operador/entity/operador.entity';
import { Usuario } from 'src/usuario/entity/usuario.entity';
@Injectable()
export class ValidarUsuarioService {
validarUsuario(usuario: Usuario) {
if (!usuario) this.sinPermisos();
}
validarAdmin(admin: Operador) {
if (!admin || admin.tipoUsuario.id_tipo_usuario != 3) this.sinPermisos();
}
validarAdminOperador(admin: Operador) {
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 3 &&
admin.tipoUsuario.id_tipo_usuario != 4)
)
this.sinPermisos();
}
validarOperador(operador: Operador) {
if (
!operador ||
(operador.tipoUsuario.id_tipo_usuario != 2 &&
operador.tipoUsuario.id_tipo_usuario != 3 &&
operador.tipoUsuario.id_tipo_usuario != 4)
)
this.sinPermisos();
}
validarSuperAdmin(superAdmin: Operador) {
if (!superAdmin || superAdmin.tipoUsuario.id_tipo_usuario != 2)
this.sinPermisos();
}
validarSuperAdminAdmin(admin: Operador) {
if (
!admin ||
(admin.tipoUsuario.id_tipo_usuario != 2 &&
admin.tipoUsuario.id_tipo_usuario != 3)
)
this.sinPermisos();
}
sinPermisos() {
throw new ForbiddenException(
'No tienes los permisos necesarios para realizar esta acción.',
);
}
}