al recibir token crea usuario o operador con su modulo desde el inicio
This commit is contained in:
parent
c739dc1595
commit
fc73590ba9
@ -45,11 +45,11 @@ export class AuthService {
|
||||
.then((operador) => {
|
||||
this.validarLogin(operador, password);
|
||||
if (
|
||||
operador.institucion.id_institucion !==
|
||||
operador.institucion.id_institucion !=
|
||||
modulo.institucion.id_institucion
|
||||
)
|
||||
throw new ConflictException(
|
||||
'Este módulo no pertenece a tu institución, selecciona uno válido.',
|
||||
'Este módulo no pertenece a tu institución, selecciona una que si.',
|
||||
);
|
||||
|
||||
const payload: JwtPayload = {
|
||||
@ -83,7 +83,7 @@ export class AuthService {
|
||||
!this.bcryptService.comparar(password, usuarioOperador.password)
|
||||
)
|
||||
throw new UnauthorizedException(
|
||||
'Usuario y/o password incorrectos, trata de nuevo.',
|
||||
'Usuario y/o password incorrectos, ingresa unas credenciales válidas.',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1,19 +1,54 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { PassportStrategy } from '@nestjs/passport';
|
||||
import { Strategy, ExtractJwt } from 'passport-jwt';
|
||||
import { ModuloService } from 'src/modulo/modulo.service';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { OperadorService } from 'src/operador/operador.service';
|
||||
import { Usuario } from 'src/usuario/entity/usuario.entity';
|
||||
import { UsuarioService } from 'src/usuario/usuario.service';
|
||||
import { Modulo } from '../../modulo/entity/modulo.entity';
|
||||
|
||||
import { JwtPayload } from '../dto/jwt-payload';
|
||||
|
||||
@Injectable()
|
||||
export class JwtStrategyService extends PassportStrategy(Strategy) {
|
||||
constructor(private configService: ConfigService) {
|
||||
constructor(
|
||||
private configService: ConfigService,
|
||||
private moduloService: ModuloService,
|
||||
private operadorService: OperadorService,
|
||||
private usuarioService: UsuarioService,
|
||||
) {
|
||||
super({
|
||||
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
|
||||
secretOrKey: configService.get<string>('AUTH_SECRETKEY'),
|
||||
});
|
||||
}
|
||||
|
||||
validate(payload: JwtPayload) {
|
||||
return payload;
|
||||
async validate(payload: JwtPayload) {
|
||||
const user: { modulo?: Modulo; usuario?: Usuario; operador?: Operador } =
|
||||
{};
|
||||
|
||||
if (payload.id_usuario)
|
||||
await this.usuarioService
|
||||
.findById(payload.id_usuario, true, true)
|
||||
.then((usuario) => (user.usuario = usuario));
|
||||
else if (payload.id_operador)
|
||||
await this.operadorService
|
||||
.findById(payload.id_operador)
|
||||
.then(async (operador) => {
|
||||
user.operador = operador;
|
||||
if (operador.tipoUsuario.id_tipo_usuario === 4) {
|
||||
if (payload.id_modulo)
|
||||
await this.moduloService
|
||||
.findById(payload.id_modulo)
|
||||
.then((modulo) => (user.modulo = modulo));
|
||||
else
|
||||
throw new ConflictException(
|
||||
'Credenciales no válidas, inicia sesión de nuevo.',
|
||||
);
|
||||
}
|
||||
});
|
||||
return user;
|
||||
}
|
||||
}
|
||||
|
@ -131,6 +131,21 @@ export class UsuarioController {
|
||||
return this.usuarioService.passwordReset(body.id_usuario);
|
||||
}
|
||||
|
||||
@Put('update-password')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({
|
||||
description:
|
||||
'Enpoint que desactiva todas las cuentas de usuarios de una institución.',
|
||||
})
|
||||
@ApiBearerAuth('jwt')
|
||||
@ApiBody({
|
||||
description: 'Es obligatorio enviar el campo id_usuario.',
|
||||
examples: { ejemplo: { value: { id_institucion: 200 } } },
|
||||
})
|
||||
desactivarCuentas(@Body() body: UpdateUsuarioInputDto) {
|
||||
return this.usuarioService.passwordReset(body.id_usuario);
|
||||
}
|
||||
|
||||
@Serealize(UsuarioOutputDto)
|
||||
@Get('usuario')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
|
Loading…
Reference in New Issue
Block a user