mirror of
https://github.com/movie-web/backend.git
synced 2025-09-13 13:03:26 +00:00
Remove user deletion job from session expiry
This commit is contained in:
@@ -20,37 +20,5 @@ export const sessionExpiryJob = job(
|
|||||||
log.info(
|
log.info(
|
||||||
`Removed ${deletedSessions.affectedRows} sessions that had expired`,
|
`Removed ${deletedSessions.affectedRows} sessions that had expired`,
|
||||||
);
|
);
|
||||||
|
|
||||||
const knex = em.getKnex();
|
|
||||||
|
|
||||||
// Count all sessions for a user ID
|
|
||||||
const sessionCountForUser = em
|
|
||||||
.createQueryBuilder(Session, 'session')
|
|
||||||
.count()
|
|
||||||
.where({ user: knex.ref('user.id') })
|
|
||||||
.getKnexQuery();
|
|
||||||
|
|
||||||
const now = new Date();
|
|
||||||
const oneYearAgo = new Date();
|
|
||||||
oneYearAgo.setFullYear(now.getFullYear() - 1);
|
|
||||||
|
|
||||||
// Delete all users who do not have any sessions AND
|
|
||||||
// (their login date is null OR they last logged in over 1 year ago)
|
|
||||||
const deletedUsers = await em
|
|
||||||
.createQueryBuilder(User, 'user')
|
|
||||||
.delete()
|
|
||||||
.withSubQuery(sessionCountForUser, 'session.sessionCount')
|
|
||||||
.where({
|
|
||||||
'session.sessionCount': 0,
|
|
||||||
$or: [
|
|
||||||
{ lastLoggedIn: { $eq: undefined } },
|
|
||||||
{ lastLoggedIn: { $lt: oneYearAgo } },
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.execute<{ affectedRows: number }>('run');
|
|
||||||
|
|
||||||
log.info(
|
|
||||||
`Removed ${deletedUsers.affectedRows} users older than 1 year with no sessions`,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user