listo operador
This commit is contained in:
@@ -160,7 +160,7 @@ export class OperadorController {
|
||||
@ApiBearerAuth('jwt')
|
||||
@ApiBody({
|
||||
description: 'Es obligatorio enviar el campo id_operador.',
|
||||
examples: { ejemplo: { value: { id_operador: 4 } } },
|
||||
examples: { ejemplo: { value: { id_operador: 4, _password: '' } } },
|
||||
})
|
||||
passwordResset(@Request() req, @Body() body: UpdateOperadorDto) {
|
||||
const admin: Operador = req.user.operador;
|
||||
@@ -184,7 +184,7 @@ export class OperadorController {
|
||||
description:
|
||||
'Todas las variables a excepción de id_operador son opcionales.',
|
||||
examples: {
|
||||
ejemplo: { value: { id_operador: 3, _activo: true, _password: '' } },
|
||||
ejemplo: { value: { id_operador: 3, _activo: true } },
|
||||
},
|
||||
})
|
||||
update(@Request() req, @Body() body: UpdateOperadorDto) {
|
||||
|
||||
@@ -4,7 +4,14 @@ import {
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Between, FindOptionsWhere, Like, Not, Repository } from 'typeorm';
|
||||
import {
|
||||
Between,
|
||||
FindOptionsWhere,
|
||||
Like,
|
||||
MoreThan,
|
||||
Not,
|
||||
Repository,
|
||||
} from 'typeorm';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Operador } from './entity/operador.entity';
|
||||
import { FullInformacionOperadorView } from './entity/views/full-informacion-operador.view';
|
||||
@@ -118,18 +125,16 @@ export class OperadorService {
|
||||
parseInt(filtros.id_tipo_usuario),
|
||||
)
|
||||
: null;
|
||||
const busqueda: FindOptionsWhere<FullInformacionOperadorView> = {};
|
||||
const busqueda: FindOptionsWhere<FullInformacionOperadorView> = {
|
||||
id_tipo_usuario: MoreThan(2),
|
||||
};
|
||||
|
||||
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({
|
||||
where: [
|
||||
busqueda,
|
||||
{ id_tipo_usuario: Not(1) },
|
||||
{ id_tipo_usuario: Not(2) },
|
||||
],
|
||||
where: busqueda,
|
||||
take: 25,
|
||||
skip: (parseInt(filtros.pagina) - 1) * 25,
|
||||
})
|
||||
@@ -153,7 +158,7 @@ export class OperadorService {
|
||||
},
|
||||
}),
|
||||
);
|
||||
return [operadores];
|
||||
return [operadores, infoOperadores[1]];
|
||||
});
|
||||
}
|
||||
|
||||
@@ -274,12 +279,12 @@ export class OperadorService {
|
||||
`El super admin solo puede modificar la infomración de los admins.`,
|
||||
);
|
||||
if (admin.tipoUsuario.id_tipo_usuario === 3) {
|
||||
// Valido admin no pueda modificar admins
|
||||
// Valido que el admin no pueda modificar otro admin
|
||||
if (operador.tipoUsuario.id_tipo_usuario === 3)
|
||||
throw new ConflictException(
|
||||
`No puedes actualizar la información de otro admin.`,
|
||||
);
|
||||
// Valido que admin solo pueda modificar operadores de su institución
|
||||
// Valido que el admin solo pueda modificar operadores de su institución
|
||||
if (
|
||||
admin.institucion.id_institucion != operador.institucion.id_institucion
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user