diff --git a/services/web/app/src/Features/User/UserDeleter.js b/services/web/app/src/Features/User/UserDeleter.js index d5437243a9..22d90f7b31 100644 --- a/services/web/app/src/Features/User/UserDeleter.js +++ b/services/web/app/src/Features/User/UserDeleter.js @@ -158,4 +158,8 @@ async function _cleanupUser(user) { await InstitutionsAPI.promises.deleteAffiliations(user._id) await SubscriptionUpdater.promises.removeUserFromAllGroups(user._id) await UserMembershipsHandler.promises.removeUserFromAllEntities(user._id) + await Modules.promises.hooks.fire('cleanupPersonalAccessTokens', user._id, [ + 'collabratec', + 'git_bridge', + ]) } diff --git a/services/web/test/unit/src/User/UserDeleterTests.js b/services/web/test/unit/src/User/UserDeleterTests.js index 31e7d70b2a..6489fea035 100644 --- a/services/web/test/unit/src/User/UserDeleterTests.js +++ b/services/web/test/unit/src/User/UserDeleterTests.js @@ -236,6 +236,17 @@ describe('UserDeleter', function () { ).to.have.been.calledWith(this.userId) }) + it('should cleanup collabratec access tokens', async function () { + await this.UserDeleter.promises.deleteUser(this.userId, { + ipAddress: this.ipAddress, + }) + expect(this.Modules.promises.hooks.fire).to.have.been.calledWith( + 'cleanupPersonalAccessTokens', + this.userId, + ['collabratec', 'git_bridge'] + ) + }) + it('should fire the deleteUser hook for modules', async function () { await this.UserDeleter.promises.deleteUser(this.userId, { ipAddress: this.ipAddress,