diff --git a/src/operador/entity/views/full-informacion-operador.view.ts b/src/operador/entity/views/full-informacion-operador.view.ts index 5f115f0..e844194 100644 --- a/src/operador/entity/views/full-informacion-operador.view.ts +++ b/src/operador/entity/views/full-informacion-operador.view.ts @@ -29,7 +29,7 @@ export class FullInformacionOperadorView { id_operador: number; @ViewColumn() - activo: boolean; + activo: number; @ViewColumn() id_institucion: number; diff --git a/src/operador/operador.controller.ts b/src/operador/operador.controller.ts index d0a1ca4..8fad1b3 100644 --- a/src/operador/operador.controller.ts +++ b/src/operador/operador.controller.ts @@ -134,7 +134,7 @@ export class OperadorController { const admin: Operador = req.user.operador; this.validarUsuarioService.validarSuperAdminAdmin(admin); - return this.operadorService.findAll(query); + return this.operadorService.findAll(admin, query); } @Serealize(OperadorOutputDto) @@ -148,7 +148,7 @@ export class OperadorController { const admin: Operador = req.user.operador; this.validarUsuarioService.validarAdmin(admin); - return this.operadorService.findAllByInstitucion(admin.institucion); + return this.operadorService.findAllAdmin(admin); } @Serealize(MessageOutputDto) diff --git a/src/operador/operador.service.ts b/src/operador/operador.service.ts index 12b59e7..8874b33 100644 --- a/src/operador/operador.service.ts +++ b/src/operador/operador.service.ts @@ -103,12 +103,15 @@ export class OperadorService { .then((admin) => this.llenarIds(admin)); } - async findAll(filtros: { - pagina: string; - id_institucion?: string; - id_tipo_usuario?: string; - operador?: string; - }): Promise<[Operador[], number]> { + async findAll( + admin: Operador, + filtros: { + pagina: string; + id_institucion?: string; + id_tipo_usuario?: string; + operador?: string; + }, + ): Promise<[Operador[], number]> { const institucion = filtros.id_institucion ? await this.institucionService.findById(parseInt(filtros.id_institucion)) : null; @@ -121,8 +124,10 @@ export class OperadorService { id_tipo_usuario: MoreThan(2), }; + if (admin.tipoUsuario.id_tipo_usuario > 2) + busqueda.id_institucion = admin.institucion.id_institucion; + else if (institucion) busqueda.id_institucion = institucion.id_institucion; if (filtros.operador) busqueda.operador = Like(`${filtros.operador}%`); - if (institucion) busqueda.id_institucion = institucion.id_institucion; if (tipoUsuario) busqueda.id_tipo_usuario = tipoUsuario.id_tipo_usuario; return this.fullInformacionOperadorView .findAndCount({ @@ -137,7 +142,7 @@ export class OperadorService { operadores.push( this.repository.create({ id_operador: infoOperadores[0][i].id_operador, - activo: infoOperadores[0][i].activo, + activo: infoOperadores[0][i].activo === 1, correo: infoOperadores[0][i].correo, nombre: infoOperadores[0][i].nombre, operador: infoOperadores[0][i].operador, @@ -155,21 +160,13 @@ export class OperadorService { }); } - findAllByInstitucion(institucion: Institucion): Promise { + findAllAdmin(admin: Operador): Promise { return this.repository.find({ select: ['id_operador', 'operador'], - where: { institucion }, + where: { institucion: admin.institucion }, }); } - findOperador(institucion: Institucion, operador: string): Promise { - return this.repository - .findOne({ - where: { operador, institucion, tipoUsuario: { id_tipo_usuario: 4 } }, - }) - .then((operador) => this.llenarIds(operador)); - } - findById(id_operador: number): Promise { return this.repository .findOne({ @@ -189,6 +186,14 @@ export class OperadorService { }); } + findOperador(institucion: Institucion, operador: string): Promise { + return this.repository + .findOne({ + where: { operador, institucion, tipoUsuario: { id_tipo_usuario: 4 } }, + }) + .then((operador) => this.llenarIds(operador)); + } + llenarIds(operador: Operador): Operador { if (operador) { operador.tipoUsuario = this.tipoUsuarioService.crearTipoUsuario( @@ -210,15 +215,15 @@ export class OperadorService { return this.findById(id_operador) .then((operador) => { this.validarUpdate(admin, operador); - // Si no se manda una password se genera una + // Generamos un password por si no se mando uno if (!password) password = this.bcryptService.generarPassword(); - // Encriptación + // Encriptamos password operador.password = this.bcryptService.encriptar(password); - // Guardar + // Guardamos cambios return this.repository.save(operador); }) .then((operador) => - // Reenviar correo + // Enviamos un correo con credenciales this.nodemailerService.sendEmail({ email: operador.correo, subject: 'Credenciales PC Puma',