|
1 | 1 | /** |
2 | 2 | * Función que verifica la última vez que se actualizó/logueó un usuario. |
3 | | - * Si es mayor o igual a 3 mes se desactiva, |
| 3 | + * Si es mayor o igual a 3 meses se desactiva, |
4 | 4 | * cambiando la variable activo que se encuentra en cada organización a false. |
5 | 5 | */ |
6 | 6 | import * as moment from 'moment'; |
7 | 7 | import { AuthUsers } from '../../../auth/schemas/authUsers'; |
8 | 8 |
|
9 | 9 | export async function verificarUltimoLogueo(done) { |
10 | | - const usuarios: any = AuthUsers.find({ 'organizaciones.activo': true }).cursor({ batchSize: 100 }); |
| 10 | + const usuarios = AuthUsers.find({ 'organizaciones.activo': true }).cursor({ batchSize: 100 }); |
11 | 11 | const fLimite = moment().subtract(3, 'months').toDate(); |
12 | 12 | const fSinLogin = moment().subtract(4, 'months').toDate(); |
| 13 | + const esMenor = (fecha) => (fecha && fecha < fLimite); |
13 | 14 | for await (const user of usuarios) { |
14 | 15 | for (const org of user.organizaciones) { |
15 | | - if (!org.lastLogin && !user.lastLogin && !user.updatedAt && !user.createdAt) { |
16 | | - org.lastLogin = fSinLogin; |
17 | | - } |
18 | | - |
19 | | - const lastUpdate = [org.lastLogin, user.lastLogin, user.updatedAt, user.createdAt] |
20 | | - .filter(date => date) |
21 | | - .sort((a, b) => moment(b).valueOf() - moment(a).valueOf())[0]; |
22 | | - |
23 | | - if (moment(lastUpdate).isBefore(fLimite)) { |
| 16 | + const lastUpdate = org.updatedAt || org.createdAt || user.updatedAt || user.createdAt; |
| 17 | + if (esMenor(lastUpdate) && esMenor(org.lastLogin)) { |
24 | 18 | org.activo = false; |
25 | 19 | } |
| 20 | + if (!org.lastLogin && org.activo) { |
| 21 | + org.lastLogin = user.lastLogin || lastUpdate || fSinLogin; |
| 22 | + } |
26 | 23 | } |
27 | 24 | await AuthUsers.updateOne( |
28 | 25 | { _id: user._id }, |
|
0 commit comments