diff --git a/packages/cli/src/UserManagement/routes/me.ts b/packages/cli/src/UserManagement/routes/me.ts index 78ff4eca49..a527a55c44 100644 --- a/packages/cli/src/UserManagement/routes/me.ts +++ b/packages/cli/src/UserManagement/routes/me.ts @@ -66,7 +66,7 @@ export function meNamespace(this: N8nApp): void { user_id: req.user.id, fields_changed: updatedkeys, }); - await this.externalHooks.run('user.profile.update', [currentEmail, req.body]); + await this.externalHooks.run('user.profile.update', [currentEmail, sanitizeUser(user)]); return sanitizeUser(user); }, diff --git a/packages/cli/src/UserManagement/routes/users.ts b/packages/cli/src/UserManagement/routes/users.ts index 72e0cc5e2d..56b8e685d2 100644 --- a/packages/cli/src/UserManagement/routes/users.ts +++ b/packages/cli/src/UserManagement/routes/users.ts @@ -214,6 +214,8 @@ export function usersNamespace(this: N8nApp): void { }), ); + await this.externalHooks.run('user.invited', [usersToSetUp]); + Logger.debug( usersPendingSetup.length > 1 ? `Sent ${usersPendingSetup.length} invite emails successfully` @@ -363,6 +365,9 @@ export function usersNamespace(this: N8nApp): void { user_id: invitee.id, }); + await this.externalHooks.run('user.profile.update', [invitee.email, sanitizeUser(invitee)]); + await this.externalHooks.run('user.password.update', [invitee.email, invitee.password]); + return sanitizeUser(updatedUser); }), ); @@ -478,6 +483,8 @@ export function usersNamespace(this: N8nApp): void { void InternalHooksManager.getInstance().onUserDeletion(req.user.id, telemetryData, false); + await this.externalHooks.run('user.deleted', [sanitizeUser(userToDelete)]); + return { success: true }; }), ); diff --git a/packages/cli/test/integration/shared/utils.ts b/packages/cli/test/integration/shared/utils.ts index 9a4f2e996b..b3faaf8b0b 100644 --- a/packages/cli/test/integration/shared/utils.ts +++ b/packages/cli/test/integration/shared/utils.ts @@ -98,7 +98,11 @@ export async function initTestServer({ if (!endpointGroups) return testServer.app; - if (endpointGroups.includes('credentials') || endpointGroups.includes('me')) { + if ( + endpointGroups.includes('credentials') || + endpointGroups.includes('me') || + endpointGroups.includes('users') + ) { testServer.externalHooks = ExternalHooks(); }