listo logins
This commit is contained in:
parent
4417ac9fa1
commit
b7926e1402
@ -25,7 +25,7 @@ export class AuthService {
|
||||
) {}
|
||||
|
||||
loginAdmin(admin: string, password: string) {
|
||||
return this.operadorService.findInfoOperadorAdmin(admin).then((admin) => {
|
||||
return this.operadorService.findAdmin(admin).then((admin) => {
|
||||
this.validacionBasica(admin, password);
|
||||
this.validacionOperador(admin);
|
||||
|
||||
@ -49,7 +49,7 @@ export class AuthService {
|
||||
const modulo = await this.moduloService.findInfoModuloById(id_modulo);
|
||||
|
||||
return this.operadorService
|
||||
.findInfoOperador(modulo.institucion, operador)
|
||||
.findOperador(modulo.institucion, operador)
|
||||
.then((operador) => {
|
||||
this.validacionBasica(operador, password);
|
||||
this.validacionOperador(operador);
|
||||
@ -69,9 +69,9 @@ export class AuthService {
|
||||
},
|
||||
};
|
||||
|
||||
// "Firmo"/creo el token
|
||||
if (operador.tipoUsuario.id_tipo_usuario === 4)
|
||||
JwtPayload.Modulo.id_modulo = modulo.id_modulo;
|
||||
JwtPayload.Modulo = { id_modulo: modulo.id_modulo };
|
||||
// "Firmo"/creo el token
|
||||
return { token: this.jwtService.sign(JwtPayload) };
|
||||
});
|
||||
}
|
||||
|
@ -21,9 +21,10 @@ 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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateCarreraProgramaDto } from './dto/input/create.dto';
|
||||
import { DeleteCarreraProgramaDto } from './dto/input/delete.dto';
|
||||
import { MessageOutputDto } from '../dto/output/message.dto';
|
||||
import { CarreraProgramaOutputDto } from './dto/output/carrera-programa.dto';
|
||||
|
||||
@Controller('carrera-programa')
|
||||
@ -34,6 +35,7 @@ export class CarreraProgramaController {
|
||||
private validarUsuarioService: ValidarUsuarioService,
|
||||
) {}
|
||||
|
||||
@Serealize(MessageOutputDto)
|
||||
@Post()
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({
|
||||
@ -58,6 +60,7 @@ export class CarreraProgramaController {
|
||||
);
|
||||
}
|
||||
|
||||
@Serealize(MessageOutputDto)
|
||||
@Delete()
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({
|
||||
@ -93,7 +96,7 @@ export class CarreraProgramaController {
|
||||
const usuarioOperador: Operador | Usuario =
|
||||
req.user.operador || req.user.usuario;
|
||||
|
||||
if ('id_usuario' in usuarioOperador)
|
||||
if (usuarioOperador instanceof Usuario)
|
||||
this.validarUsuarioService.validarUsuario(usuarioOperador);
|
||||
else this.validarUsuarioService.validarAdmin(usuarioOperador);
|
||||
return this.carreraProgramaService.findByIdInstitucion(
|
||||
|
@ -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 { InstitucionUsuarioModule } from '../institucion-usuario/institucion-usuario.module';
|
||||
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
|
||||
|
||||
@Module({
|
||||
@ -14,6 +15,7 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
|
||||
InstitucionModule,
|
||||
InstitucionCarreraModule,
|
||||
InstitucionProgramaModule,
|
||||
InstitucionUsuarioModule,
|
||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||
TypeOrmModule.forFeature([CarreraPrograma]),
|
||||
ValidarUsuarioModule,
|
||||
|
@ -12,6 +12,7 @@ import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionCarreraService } from '../institucion-carrera/institucion-carrera.service';
|
||||
import { InstitucionProgramaService } from '../institucion-programa/institucion-programa.service';
|
||||
import { InstitucionUsuarioService } from '../institucion-usuario/institucion-usuario.service';
|
||||
|
||||
@Injectable()
|
||||
export class CarreraProgramaService {
|
||||
@ -21,6 +22,7 @@ export class CarreraProgramaService {
|
||||
private institucionService: InstitucionService,
|
||||
private institucionCarreraService: InstitucionCarreraService,
|
||||
private institucionProgramaService: InstitucionProgramaService,
|
||||
private institucionUsuarioService: InstitucionUsuarioService,
|
||||
) {}
|
||||
|
||||
async create(
|
||||
@ -35,6 +37,7 @@ export class CarreraProgramaService {
|
||||
id_programa,
|
||||
);
|
||||
|
||||
// Valido que el admin que esta realizando esta acción le pertenezca la carrera
|
||||
if (
|
||||
admin.institucion.id_institucion !=
|
||||
institucionCarrera.institucion.id_institucion
|
||||
@ -42,13 +45,16 @@ export class CarreraProgramaService {
|
||||
throw new ForbiddenException(
|
||||
'Esta carrera no pertenece a tu institución.',
|
||||
);
|
||||
// Busco un registro que ya contenga la info mandada
|
||||
return this.repository
|
||||
.findOne({ where: { institucionCarrera, programa } })
|
||||
.then((existeCarretaPrograma) => {
|
||||
// Si lo encuentro saco error
|
||||
if (existeCarretaPrograma)
|
||||
throw new ConflictException(
|
||||
'Ya se asignó este programa a esta carrera.',
|
||||
);
|
||||
// Guardar registro
|
||||
return this.repository.save(
|
||||
this.repository.create({
|
||||
institucionCarrera,
|
||||
@ -64,6 +70,8 @@ export class CarreraProgramaService {
|
||||
delete(admin: Operador, id_carrera_programa: number) {
|
||||
return this.findById(id_carrera_programa)
|
||||
.then((carreraPrograma) => {
|
||||
// Valido que la asociación entre una carrera y un programa le
|
||||
// pertenezcan al admin que realiza esta acción
|
||||
if (
|
||||
admin.institucion.id_institucion !=
|
||||
carreraPrograma.institucionCarrera.institucion.id_institucion
|
||||
@ -71,6 +79,7 @@ export class CarreraProgramaService {
|
||||
throw new ForbiddenException(
|
||||
'No puedes eliminar esta asociación porque no pertenece a tu institución.',
|
||||
);
|
||||
// Elimino
|
||||
return this.repository.delete(carreraPrograma);
|
||||
})
|
||||
.then((_) => ({
|
||||
@ -94,31 +103,26 @@ export class CarreraProgramaService {
|
||||
) {
|
||||
return this.institucionService
|
||||
.findInfoInstitucionById(id_institucion)
|
||||
.then((institucion) => {
|
||||
.then(async (institucion) => {
|
||||
// Si es un Operador
|
||||
if (usuarioOperador instanceof Operador) {
|
||||
// Valido que la info le pertenezca al operador que la solicita
|
||||
if (
|
||||
usuarioOperador.institucion.id_institucion !=
|
||||
institucion.id_institucion
|
||||
)
|
||||
throw new ForbiddenException(
|
||||
'No puedes acceder a esta información porque no perteneces a esta institución.',
|
||||
'No puedes acceder a esta información porque no le pertenece a tu institución.',
|
||||
);
|
||||
} else {
|
||||
let lePertenece = false;
|
||||
|
||||
for (let i = 0; i < usuarioOperador.instituciones.length; i++)
|
||||
if (
|
||||
usuarioOperador.instituciones[i].institucionCarrera.institucion
|
||||
.id_institucion === institucion.id_institucion
|
||||
) {
|
||||
lePertenece = true;
|
||||
break;
|
||||
}
|
||||
if (!lePertenece)
|
||||
throw new ForbiddenException(
|
||||
'No puedes acceder a esta información porque no perteneces a esta institución.',
|
||||
);
|
||||
}
|
||||
} else
|
||||
await this.institucionUsuarioService
|
||||
.findByIdUsuarioIdInstitucion(usuarioOperador, institucion)
|
||||
.then((institucionUsuario) => {
|
||||
if (!institucionUsuario)
|
||||
throw new ForbiddenException(
|
||||
'No puedes acceder a esta información porque no perteneces a esta institución.',
|
||||
);
|
||||
});
|
||||
return this.repository.find({
|
||||
join: {
|
||||
alias: 'cp',
|
||||
|
6
src/dto/output/message.dto.ts
Normal file
6
src/dto/output/message.dto.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import { Expose } from 'class-transformer';
|
||||
|
||||
export class MessageOutputDto {
|
||||
@Expose()
|
||||
message;
|
||||
}
|
@ -10,7 +10,7 @@ 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 { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
||||
import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
|
||||
|
||||
@Controller('equipo-motivo')
|
||||
|
@ -2,7 +2,7 @@ import { Controller, Get, Query } from '@nestjs/common';
|
||||
import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { InstitucionCarreraService } from './institucion-carrera.service';
|
||||
import { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { InstitucionCarreaOutputDto } from './dto/output/institucion-carrera.dto';
|
||||
|
||||
@Controller('institucion-carrera')
|
||||
|
@ -19,7 +19,7 @@ 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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { UpdateInstitucionDiaDto } from './dto/input/update.dto';
|
||||
import { InstitucionCarreaOutputDto } from './dto/output/institucion-carrera.dto';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
|
@ -20,7 +20,7 @@ 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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateInstitucionInfraccionDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionInfraccionDto } from './dto/input/update.dto';
|
||||
import { InfraccionOutputDto } from './dto/output/infraccion.dto';
|
||||
|
@ -21,7 +21,7 @@ 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';
|
||||
import { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateProgramaDto } from './dto/input/create.dto';
|
||||
import { UpdateProgramaDto } from './dto/input/update.dto';
|
||||
import { InstitucionProgramaOutputDto } from './dto/output/institucion-programa.dto';
|
||||
|
@ -21,7 +21,7 @@ import { InstitucionTipoCarritoService } from './institucion-tipo-carrito.servic
|
||||
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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateInstitucionTipoCarritoDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionTipoCarritoDto } from './dto/input/update.dto';
|
||||
import { InstitucionTiposCarritoOutputDto } from './dto/output/institucion-tipos-carrito.dto';
|
||||
|
@ -21,7 +21,7 @@ import { InstitucionTipoEntradaService } from './institucion-tipo-entrada.servic
|
||||
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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateInstitucionTipoEntradaDto } from './dto/input/create.dto';
|
||||
import { UpdateInstitucionTipoEntradaDto } from './dto/input/update.dto';
|
||||
import { InstitucionTipoEntradaOutputDto } from './dto/output/institucion-tipo-entrada.dto';
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { Institucion } from 'src/institucion/entity/institucion.entity';
|
||||
import { InstitucionCarrera } from '../institucion-carrera/entity/institucion-carrera.entity';
|
||||
import { InstitucionUsuario } from './entity/institucion-usuario.entity';
|
||||
import { Usuario } from '../usuario/entity/usuario.entity';
|
||||
@ -45,6 +46,20 @@ export class InstitucionUsuarioService {
|
||||
});
|
||||
}
|
||||
|
||||
findAllByIdUsuarioIdInstitucion(id_usuario: number, id_institucion: number) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.find({ where: { id_institucion, id_usuario } })
|
||||
.then((infoInstitucionesUsuario) => {
|
||||
const institucionesUsuario: InstitucionUsuario[] = [];
|
||||
|
||||
for (let i = 0; i < infoInstitucionesUsuario.length; i++)
|
||||
institucionesUsuario.push(
|
||||
this.viewToInstitucionUsuario(infoInstitucionesUsuario[i]),
|
||||
);
|
||||
return institucionesUsuario;
|
||||
});
|
||||
}
|
||||
|
||||
findFullInfoAllByIdUsuarioIdInstitucion(
|
||||
id_usuario: number,
|
||||
id_institucion: number,
|
||||
@ -109,20 +124,6 @@ export class InstitucionUsuarioService {
|
||||
});
|
||||
}
|
||||
|
||||
findAllByIdUsuarioIdInstitucion(id_usuario: number, id_institucion: number) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.find({ where: { id_institucion, id_usuario } })
|
||||
.then((infoInstitucionesUsuario) => {
|
||||
const institucionesUsuario: InstitucionUsuario[] = [];
|
||||
|
||||
for (let i = 0; i < infoInstitucionesUsuario.length; i++)
|
||||
institucionesUsuario.push(
|
||||
this.viewToInstitucionUsuario(infoInstitucionesUsuario[i]),
|
||||
);
|
||||
return institucionesUsuario;
|
||||
});
|
||||
}
|
||||
|
||||
findById(id_institucion_usuario: number) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.findOne({ where: { id_institucion_usuario } })
|
||||
@ -133,6 +134,19 @@ export class InstitucionUsuarioService {
|
||||
});
|
||||
}
|
||||
|
||||
findByIdUsuarioIdInstitucion(usuario: Usuario, institucion: Institucion) {
|
||||
return this.informacionInstitucionUsuarioView
|
||||
.findOne({
|
||||
where: {
|
||||
id_institucion: institucion.id_institucion,
|
||||
id_usuario: usuario.id_usuario,
|
||||
},
|
||||
})
|
||||
.then((infoInstitucionUsuario) =>
|
||||
this.viewToInstitucionUsuario(infoInstitucionUsuario),
|
||||
);
|
||||
}
|
||||
|
||||
findByIdUsuarioIdInstitucionCarrera(
|
||||
id_usuario: number,
|
||||
id_institucion_carrera: number,
|
||||
|
@ -20,7 +20,7 @@ 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 { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { UpdateInstitucionDto } from './dto/input/update.dto';
|
||||
import { InstitucionOutputDto } from './dto/output/institucion.dto';
|
||||
import { InstitucionMinOutputDto } from './dto/output/institucion-min.dto';
|
||||
|
@ -14,6 +14,10 @@ export class InstitucionService {
|
||||
@InjectRepository(Institucion) private repository: Repository<Institucion>,
|
||||
) {}
|
||||
|
||||
crearInstitucion(id_institucion: number) {
|
||||
return this.repository.create({ id_institucion });
|
||||
}
|
||||
|
||||
findById(id_institucion: number) {
|
||||
return this.repository
|
||||
.findOne({ where: { id_institucion } })
|
||||
|
@ -21,7 +21,7 @@ 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 { IdInstitucionDto } from '../dto/id-institucion.dto';
|
||||
import { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
import { CreateModuloDto } from './dto/input/create.dto';
|
||||
import { ModuloDto } from './dto/input/modulo.dto';
|
||||
import { UpdateModuloDto } from './dto/input/update.dto';
|
||||
|
@ -21,12 +21,12 @@ 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';
|
||||
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
|
||||
import { IdUsuarioDto } from '../dto/input/id-usuario.dto';
|
||||
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
||||
import { MultarDto } from './dto/input/multar.dto';
|
||||
import { MultasDto } from './dto/input/multas.dto';
|
||||
import { QuitarMultarDto } from './dto/input/quitar.dto';
|
||||
import { IdUsuarioPaginaDto } from '../dto/id-usuario-pagina.dto';
|
||||
import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto';
|
||||
import { MultasOutputDto } from './dto/output/multas.dto';
|
||||
import { MultasEquipoOutputDto } from './dto/output/multas-equipo.dto';
|
||||
import { MultasMinOutputDto } from './dto/output/multas-min.dto';
|
||||
|
@ -32,6 +32,12 @@ export class Operador {
|
||||
@Column({ type: String, nullable: false, length: 60 })
|
||||
password: string;
|
||||
|
||||
@Column({ type: Number, nullable: true })
|
||||
id_institucion: number;
|
||||
|
||||
@Column({ type: Number, nullable: true })
|
||||
id_tipo_usuario: number;
|
||||
|
||||
@ManyToOne(() => Institucion, (institucion) => institucion.operadores)
|
||||
@JoinColumn({ name: 'id_institucion' })
|
||||
institucion: Institucion;
|
||||
|
@ -45,7 +45,7 @@ export class OperadorService {
|
||||
'No se puede asignar un tipo de usuario distinto a admin y operador',
|
||||
);
|
||||
// Ver si existe un admin con ese usaurio
|
||||
return this.findInfoOperadorAdmin(operador)
|
||||
return this.findAdmin(operador)
|
||||
.then((existeAdmin) => {
|
||||
// Error si lo hay
|
||||
if (existeAdmin)
|
||||
@ -53,7 +53,7 @@ export class OperadorService {
|
||||
'Ya existe un admin con ese nombre, intenta de nuevo con otro.',
|
||||
);
|
||||
// Ver que haya un operador en esta institución con este usuario
|
||||
return this.findInfoOperador(institucion, operador);
|
||||
return this.findOperador(institucion, operador);
|
||||
})
|
||||
.then(async (existeOperador) => {
|
||||
// Error si lo hay
|
||||
@ -159,35 +159,39 @@ export class OperadorService {
|
||||
});
|
||||
}
|
||||
|
||||
findInfoOperador(institucion: Institucion, operador: string) {
|
||||
return this.repository.findOne({
|
||||
select: {
|
||||
id_operador: true,
|
||||
activo: true,
|
||||
nombre: true,
|
||||
password: true,
|
||||
institucion: { id_institucion: true },
|
||||
tipoUsuario: { id_tipo_usuario: true },
|
||||
},
|
||||
where: { operador, institucion },
|
||||
});
|
||||
findAdmin(admin: string) {
|
||||
return this.repository
|
||||
.findOne({
|
||||
select: {
|
||||
id_operador: true,
|
||||
activo: true,
|
||||
nombre: true,
|
||||
password: true,
|
||||
id_institucion: true,
|
||||
id_tipo_usuario: true,
|
||||
},
|
||||
where: {
|
||||
operador: admin,
|
||||
tipoUsuario: { id_tipo_usuario: Between(2, 3) },
|
||||
},
|
||||
})
|
||||
.then((admin) => this.llenarIds(admin));
|
||||
}
|
||||
|
||||
findInfoOperadorAdmin(admin: string) {
|
||||
return this.repository.findOne({
|
||||
select: {
|
||||
id_operador: true,
|
||||
activo: true,
|
||||
nombre: true,
|
||||
password: true,
|
||||
institucion: { id_institucion: true },
|
||||
tipoUsuario: { id_tipo_usuario: true },
|
||||
},
|
||||
where: {
|
||||
operador: admin,
|
||||
tipoUsuario: { id_tipo_usuario: Between(2, 3) },
|
||||
},
|
||||
});
|
||||
findOperador(institucion: Institucion, operador: string) {
|
||||
return this.repository
|
||||
.findOne({
|
||||
select: {
|
||||
id_operador: true,
|
||||
activo: true,
|
||||
nombre: true,
|
||||
password: true,
|
||||
id_institucion: true,
|
||||
id_tipo_usuario: true,
|
||||
},
|
||||
where: { operador, institucion },
|
||||
})
|
||||
.then((operador) => this.llenarIds(operador));
|
||||
}
|
||||
|
||||
findInfoOperadorById(id_operador: number) {
|
||||
@ -196,19 +200,29 @@ export class OperadorService {
|
||||
select: {
|
||||
id_operador: true,
|
||||
activo: true,
|
||||
correo : true,
|
||||
institucion: { id_institucion: true },
|
||||
tipoUsuario: { id_tipo_usuario: true },
|
||||
correo: true,
|
||||
id_institucion: true,
|
||||
id_tipo_usuario: true,
|
||||
},
|
||||
where: { id_operador },
|
||||
})
|
||||
.then((operador) => {
|
||||
if (!operador)
|
||||
throw new NotFoundException('No existe este id operador.');
|
||||
return operador;
|
||||
return this.llenarIds(operador);
|
||||
});
|
||||
}
|
||||
|
||||
llenarIds(operador: Operador) {
|
||||
operador.tipoUsuario = this.tipoUsuarioService.crearTipoUsuario(
|
||||
operador.id_tipo_usuario,
|
||||
);
|
||||
operador.institucion = this.institucionService.crearInstitucion(
|
||||
operador.id_institucion,
|
||||
);
|
||||
return operador;
|
||||
}
|
||||
|
||||
passwordReset(admin: Operador, id_operador: number, password?: string) {
|
||||
return this.findInfoOperadorById(id_operador)
|
||||
.then((operador) => {
|
||||
|
@ -20,9 +20,9 @@ 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';
|
||||
import { IdUsuarioPaginaDto } from '../dto/id-usuario-pagina.dto';
|
||||
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
||||
import { IdUsuarioDto } from '../dto/input/id-usuario.dto';
|
||||
import { IdUsuarioPaginaDto } from '../dto/input/id-usuario-pagina.dto';
|
||||
import { NumeroInventarioDto } from '../dto/numero-inventario.dto';
|
||||
import { ActivosDto } from './dto/input/activos.dto';
|
||||
import { CancelarUsuarioDto } from './dto/input/cancelar-usuario.dto';
|
||||
@ -359,7 +359,7 @@ export class PrestamoController {
|
||||
const usuarioOperador: Operador | Usuario =
|
||||
req.user.operador || req.user.usuario;
|
||||
|
||||
if ('id_usuario' in usuarioOperador)
|
||||
if (usuarioOperador instanceof Usuario)
|
||||
this.validarUsuarioService.validarUsuario(usuarioOperador);
|
||||
else this.validarUsuarioService.validarAdminOperador(usuarioOperador);
|
||||
return this.prestamoService.prestamoInfoById(parseInt(query.id_prestamo));
|
||||
|
@ -26,6 +26,10 @@ export class TipoUsuarioService {
|
||||
}));
|
||||
}
|
||||
|
||||
crearTipoUsuario(id_tipo_usuario: number) {
|
||||
return this.repository.create({ id_tipo_usuario });
|
||||
}
|
||||
|
||||
findAll(informacion?: string) {
|
||||
const query = this.repository
|
||||
.createQueryBuilder('tu')
|
||||
|
@ -16,7 +16,7 @@ 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';
|
||||
import { IdInstitucionDto } from '../dto/input/id-institucion.dto';
|
||||
|
||||
@Controller('upload-file')
|
||||
@ApiTags('upload-file')
|
||||
|
Loading…
Reference in New Issue
Block a user