listo modulos motivos super admin
This commit is contained in:
parent
b4a717e0fa
commit
5a3dbc3178
7
src/dto/input/id-institucion-optional.dto.ts
Normal file
7
src/dto/input/id-institucion-optional.dto.ts
Normal file
@ -0,0 +1,7 @@
|
||||
import { IsNumberString, IsOptional } from 'class-validator';
|
||||
|
||||
export class IdInstitucionOptionalDto {
|
||||
@IsNumberString()
|
||||
@IsOptional()
|
||||
id_institucion?: string;
|
||||
}
|
@ -66,7 +66,7 @@ export class ModuloMotivoController {
|
||||
reporte(@Request() req, @Query() query: ModuloDto) {
|
||||
const admin: Operador = req.user.operador;
|
||||
|
||||
this.validarUsuarioService.validarAdmin(admin);
|
||||
this.validarUsuarioService.validarSuperAdminAdmin(admin);
|
||||
return this.moduloMotivoService.findAllByIdModulo(
|
||||
admin,
|
||||
parseInt(query.id_modulo),
|
||||
|
@ -49,7 +49,10 @@ export class ModuloMotivoService {
|
||||
const options: FindManyOptions<ModuloMotivo> = { where: { modulo } };
|
||||
|
||||
// Validamos que el módulo pertenezca a la institución del admin
|
||||
if (modulo.institucion.id_institucion != admin.institucion.id_institucion)
|
||||
if (
|
||||
admin.tipoUsuario.id_tipo_usuario > 2 &&
|
||||
modulo.institucion.id_institucion != admin.institucion.id_institucion
|
||||
)
|
||||
throw new ForbiddenException(
|
||||
'No puedes acceder a esta información porque no le pertenece a tu institución.',
|
||||
);
|
||||
|
@ -21,6 +21,7 @@ import { ModuloService } from './modulo.service';
|
||||
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { IdInstitucionOptionalDto } from '../dto/input/id-institucion-optional.dto';
|
||||
import { CreateModuloDto } from './dto/input/create.dto';
|
||||
import { ModuloDto } from './dto/input/modulo.dto';
|
||||
import { UpdateModuloDto } from './dto/input/update.dto';
|
||||
@ -71,12 +72,12 @@ export class ModuloController {
|
||||
return this.moduloService.findMinInfoById(parseInt(query.id_modulo));
|
||||
}
|
||||
|
||||
@Serealize(OnlyModuloOutputDto)
|
||||
@Serealize(ModuloOutputDto)
|
||||
@Get('modulos')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({ description: 'Todos los módulos de una institución.' })
|
||||
@ApiBearerAuth('jwt')
|
||||
modulos(@Request() req, @Query() query: IdInstitucionDto) {
|
||||
modulos(@Request() req, @Query() query: IdInstitucionOptionalDto) {
|
||||
const superAdmin: Operador = req.user.operador;
|
||||
|
||||
this.validarUsuarioService.validarSuperAdmin(superAdmin);
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { FindOptionsWhere, Repository } from 'typeorm';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Modulo } from './entity/modulo.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
@ -43,14 +43,15 @@ export class ModuloService {
|
||||
.then((_) => ({ message: 'Se creó correctamente un nuevo módulo.' }));
|
||||
}
|
||||
|
||||
findAll(id_institucion: number): Promise<Modulo[]> {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.then((institucion) =>
|
||||
this.fullInformacionModuloView.find({
|
||||
where: { id_institucion: institucion.id_institucion },
|
||||
}),
|
||||
)
|
||||
async findAll(id_institucion?: number): Promise<Modulo[]> {
|
||||
const institucion = id_institucion
|
||||
? await this.institucionService.findById(id_institucion)
|
||||
: null;
|
||||
const busqueda: FindOptionsWhere<FullInformacionModuloView> = {};
|
||||
|
||||
if (institucion) busqueda.id_institucion = institucion.id_institucion;
|
||||
return this.fullInformacionModuloView
|
||||
.find({ where: busqueda })
|
||||
.then((infoModulos) => {
|
||||
const modulos: Modulo[] = [];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user