|
@@ -16,6 +16,7 @@ const InstitutionsAPI = require('../Institutions/InstitutionsAPI')
|
|
|
const Modules = require('../../infrastructure/Modules')
|
|
const Modules = require('../../infrastructure/Modules')
|
|
|
const Errors = require('../Errors/Errors')
|
|
const Errors = require('../Errors/Errors')
|
|
|
const OnboardingDataCollectionManager = require('../OnboardingDataCollection/OnboardingDataCollectionManager')
|
|
const OnboardingDataCollectionManager = require('../OnboardingDataCollection/OnboardingDataCollectionManager')
|
|
|
|
|
+const EmailHandler = require('../Email/EmailHandler')
|
|
|
|
|
|
|
|
module.exports = {
|
|
module.exports = {
|
|
|
deleteUser: callbackify(deleteUser),
|
|
deleteUser: callbackify(deleteUser),
|
|
@@ -48,6 +49,7 @@ async function deleteUser(userId, options) {
|
|
|
await Modules.promises.hooks.fire('deleteUser', userId)
|
|
await Modules.promises.hooks.fire('deleteUser', userId)
|
|
|
await _createDeletedUser(user, options)
|
|
await _createDeletedUser(user, options)
|
|
|
await ProjectDeleter.promises.deleteUsersProjects(user._id)
|
|
await ProjectDeleter.promises.deleteUsersProjects(user._id)
|
|
|
|
|
+ await _sendDeleteEmail(user)
|
|
|
await deleteMongoUser(user._id)
|
|
await deleteMongoUser(user._id)
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
logger.warn({ error, userId }, 'something went wrong deleting the user')
|
|
logger.warn({ error, userId }, 'something went wrong deleting the user')
|
|
@@ -110,6 +112,13 @@ async function ensureCanDeleteUser(user) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+async function _sendDeleteEmail(user) {
|
|
|
|
|
+ const emailOptions = {
|
|
|
|
|
+ to: user.email,
|
|
|
|
|
+ }
|
|
|
|
|
+ await EmailHandler.promises.sendEmail('deletedAccount', emailOptions)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
async function _createDeletedUser(user, options) {
|
|
async function _createDeletedUser(user, options) {
|
|
|
await DeletedUser.updateOne(
|
|
await DeletedUser.updateOne(
|
|
|
{ 'deleterData.deletedUserId': user._id },
|
|
{ 'deleterData.deletedUserId': user._id },
|