diff --git a/auth/schemas/authUsers.ts b/auth/schemas/authUsers.ts index 5fd54eb973..3dc8cb5f54 100644 --- a/auth/schemas/authUsers.ts +++ b/auth/schemas/authUsers.ts @@ -50,6 +50,7 @@ export const AuthUsersSchema = new mongoose.Schema({ documento: String, password: String, foto: String, + lastLogin: Date, authMethod: { type: String, required: false diff --git a/auth/schemas/permisos-organizaciones.ts b/auth/schemas/permisos-organizaciones.ts index ef86ad44e8..ac45367003 100644 --- a/auth/schemas/permisos-organizaciones.ts +++ b/auth/schemas/permisos-organizaciones.ts @@ -10,7 +10,8 @@ export const PermisosOrganizacionesSchema = new Schema({ perfiles: [{ _id: Types.ObjectId, nombre: String - }] + }], + lastLogin: Date }); PermisosOrganizacionesSchema.plugin(AuditPlugin); diff --git a/core/tm/controller/authUser.ts b/core/tm/controller/authUser.ts index 0696646040..d3cadacce0 100644 --- a/core/tm/controller/authUser.ts +++ b/core/tm/controller/authUser.ts @@ -1,19 +1,19 @@ /** * Función que verifica la última vez que se actualizó/logueó un usuario. - * Si es mayor o igual a 1 mes se desactiva, + * Si es mayor o igual a 3 meses se desactiva, * cambiando la variable activo que se encuentra en cada organización a false. */ import * as moment from 'moment'; import { AuthUsers } from '../../../auth/schemas/authUsers'; export async function verificarUltimoLogueo(done) { - const usuarios: any = AuthUsers.find({ 'organizaciones.activo': true }).cursor({ batchSize: 100 }); - const fLimite = moment().subtract(1, 'months').toDate(); - const fSinLogin = moment().subtract(2, 'months').toDate(); + const usuarios = AuthUsers.find({ 'organizaciones.activo': true }).cursor({ batchSize: 100 }); + const fLimite = moment().subtract(3, 'months').toDate(); + const fSinLogin = moment().subtract(4, 'months').toDate(); const esMenor = (fecha) => (fecha && fecha < fLimite); for await (const user of usuarios) { for (const org of user.organizaciones) { - const lastUpdate = user.updatedAt || user.createdAt; + const lastUpdate = org.updatedAt || org.createdAt || user.updatedAt || user.createdAt; if (esMenor(lastUpdate) && esMenor(org.lastLogin)) { org.activo = false; }