diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index e21c1d4..33a9877 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -5,6 +5,7 @@ import { } from '@nestjs/common'; import { JwtService } from '@nestjs/jwt'; import { Operador } from '../operador/entity/operador.entity'; +import { Usuario } from '../usuario/entity/usuario.entity'; import { BcryptService } from '../bcrypt/bcrypt.service'; import { ModuloService } from '../modulo/modulo.service'; import { OperadorService } from '../operador/operador.service'; @@ -26,20 +27,18 @@ export class AuthService { loginAdmin(admin: string, password: string) { return this.operadorService.findInfoOperadorAdmin(admin).then((admin) => { this.validacionBasica(admin, password); + this.validacionOperador(admin); const JwtPayload: JwtPayloadAdmin = { Operador: { id_operador: admin.id_operador, operador: admin.operador, nombre: admin.nombre, - institucion: { - id_institucion: admin.institucion.id_institucion, - }, - tipoUsuario: { - id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario, - }, + institucion: { id_institucion: admin.institucion.id_institucion }, + tipoUsuario: { id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario }, }, }; + return { token: this.jwtService.sign(JwtPayload) }; }); } @@ -51,6 +50,7 @@ export class AuthService { .findInfoOperador(modulo.institucion, operador) .then((operador) => { this.validacionBasica(operador, password); + this.validacionOperador(operador); const JwtPayload: JwtPayloadOperador = { Operador: { @@ -78,13 +78,7 @@ export class AuthService { .then((usuario) => { if (usuario && !usuario.password) throw new BadRequestException('Este usuario no ha sido registrado.'); - if ( - !usuario || - !this.bcryptService.comparar(password, usuario.password) - ) - throw new BadRequestException( - 'Usuario y/o password incorrectos, ingresa unas credenciales vĂ¡lidas.', - ); + this.validacionBasica(usuario, password); const JwtPayload: JwtPayloadUsuario = { Usuario: { @@ -101,11 +95,22 @@ export class AuthService { }); } - private validacionBasica(operador: Operador, password: string) { - if (!operador || !this.bcryptService.comparar(password, operador.password)) + private validacionBasica( + operadorUsuario: Operador | Usuario, + password: string, + ) { + // Valido que el operador o usuario existan y que el password sea el correcto + if ( + !operadorUsuario || + !this.bcryptService.comparar(password, operadorUsuario.password) + ) throw new BadRequestException( 'Usuario y/o password incorrectos, ingresa unas credenciales vĂ¡lidas.', ); + } + + private validacionOperador(operador: Operador) { + // Valido que el operador este activo if (!operador.activo) throw new UnauthorizedException('Esta cuenta se encuentra desactivada.'); }