mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 14:13:43 +01:00
Merge pull request #25467 from overleaf/bg-fix-error-handling-when-accounts-are-deleted
improve logging deleted when user data is expired GitOrigin-RevId: ac85b66c503184a815348a11a730fb68a504d80a
This commit is contained in:
@@ -87,17 +87,29 @@ async function deleteMongoUser(userId) {
|
||||
}
|
||||
|
||||
async function expireDeletedUser(userId) {
|
||||
await Modules.promises.hooks.fire('expireDeletedUser', userId)
|
||||
const deletedUser = await DeletedUser.findOne({
|
||||
'deleterData.deletedUserId': userId,
|
||||
}).exec()
|
||||
|
||||
await Feedback.deleteMany({ userId }).exec()
|
||||
await OnboardingDataCollectionManager.deleteOnboardingDataCollection(userId)
|
||||
|
||||
deletedUser.user = undefined
|
||||
deletedUser.deleterData.deleterIpAddress = undefined
|
||||
await deletedUser.save()
|
||||
logger.info({ userId }, 'expiring deleted user')
|
||||
try {
|
||||
logger.info({ userId }, 'firing expireDeletedUser hook')
|
||||
await Modules.promises.hooks.fire('expireDeletedUser', userId)
|
||||
logger.info({ userId }, 'removing deleted user feedback records')
|
||||
await Feedback.deleteMany({ userId }).exec()
|
||||
logger.info({ userId }, 'removing deleted user onboarding data')
|
||||
await OnboardingDataCollectionManager.deleteOnboardingDataCollection(userId)
|
||||
logger.info({ userId }, 'redacting PII from the deleted user record')
|
||||
const deletedUser = await DeletedUser.findOne({
|
||||
'deleterData.deletedUserId': userId,
|
||||
}).exec()
|
||||
deletedUser.user = undefined
|
||||
deletedUser.deleterData.deleterIpAddress = undefined
|
||||
await deletedUser.save()
|
||||
logger.info({ userId }, 'deleted user expiry complete')
|
||||
} catch (error) {
|
||||
logger.warn(
|
||||
{ error, userId },
|
||||
'something went wrong expiring the deleted user'
|
||||
)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
async function expireDeletedUsersAfterDuration() {
|
||||
@@ -112,11 +124,27 @@ async function expireDeletedUsersAfterDuration() {
|
||||
if (deletedUsers.length === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
for (let i = 0; i < deletedUsers.length; i++) {
|
||||
const deletedUserId = deletedUsers[i].deleterData.deletedUserId
|
||||
await expireDeletedUser(deletedUserId)
|
||||
await UserAuditLogEntry.deleteMany({ userId: deletedUserId }).exec()
|
||||
logger.info(
|
||||
{ deletedUsers: deletedUsers.length, retentionPeriodInDays: DURATION },
|
||||
'expiring batch of deleted users older than retention period'
|
||||
)
|
||||
try {
|
||||
for (let i = 0; i < deletedUsers.length; i++) {
|
||||
const deletedUserId = deletedUsers[i].deleterData.deletedUserId
|
||||
await expireDeletedUser(deletedUserId)
|
||||
logger.info({ deletedUserId }, 'removing deleted user audit log entries')
|
||||
await UserAuditLogEntry.deleteMany({ userId: deletedUserId }).exec()
|
||||
}
|
||||
logger.info(
|
||||
{ deletedUsers: deletedUsers.length },
|
||||
'batch of deleted users expired successfully'
|
||||
)
|
||||
} catch (error) {
|
||||
logger.warn(
|
||||
{ error },
|
||||
'something went wrong expiring batch of deleted users'
|
||||
)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user