From 3b381b037c0ee9e17973642ea63ea99451a1419d Mon Sep 17 00:00:00 2001 From: Morgan <33722304+ThyMinimalDev@users.noreply.github.com> Date: Fri, 14 Mar 2025 17:36:24 +0200 Subject: [PATCH] fix: incorrect managed user username format on update (#20090) --- .../oauth-client-users.controller.e2e-spec.ts | 7 +++++++ .../oauth-clients/services/oauth-clients-users.service.ts | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts index 87090f9479..d8ac922477 100644 --- a/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts +++ b/apps/api/v2/src/modules/oauth-clients/controllers/oauth-client-users/oauth-client-users.controller.e2e-spec.ts @@ -26,6 +26,7 @@ import { UserRepositoryFixture } from "test/fixtures/repository/users.repository import { randomString } from "test/utils/randomString"; import { SUCCESS_STATUS } from "@calcom/platform-constants"; +import { slugify } from "@calcom/platform-libraries"; import { ApiSuccessResponse } from "@calcom/platform-types"; const CLIENT_REDIRECT_URI = "http://localhost:4321"; @@ -228,6 +229,9 @@ describe("OAuth Client Users Endpoints", () => { expect(responseBody.data.user.timeFormat).toEqual(requestBody.timeFormat); expect(responseBody.data.user.locale).toEqual(requestBody.locale); expect(responseBody.data.user.avatarUrl).toEqual(requestBody.avatarUrl); + const [emailUser, emailDomain] = responseBody.data.user.email.split("@"); + const [domainName, TLD] = emailDomain.split("."); + expect(responseBody.data.user.username).toEqual(slugify(`${emailUser}-${domainName}-${TLD}`)); expect(responseBody.data.accessToken).toBeDefined(); expect(responseBody.data.refreshToken).toBeDefined(); @@ -546,6 +550,9 @@ describe("OAuth Client Users Endpoints", () => { expect(responseBody.data.email).toEqual( OAuthClientUsersService.getOAuthUserEmail(oAuthClient.id, userUpdatedEmail) ); + const [emailUser, emailDomain] = responseBody.data.email.split("@"); + const [domainName, TLD] = emailDomain.split("."); + expect(responseBody.data.username).toEqual(slugify(`${emailUser}-${domainName}-${TLD}`)); expect(responseBody.data.locale).toEqual(Locales.PT_BR); }); diff --git a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts index 3383a0afdb..2d41b34f79 100644 --- a/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts +++ b/apps/api/v2/src/modules/oauth-clients/services/oauth-clients-users.service.ts @@ -123,7 +123,9 @@ export class OAuthClientUsersService { if (body.email) { const emailWithOAuthId = OAuthClientUsersService.getOAuthUserEmail(oAuthClientId, body.email); body.email = emailWithOAuthId; - const newUsername = slugify(emailWithOAuthId); + const [emailUser, emailDomain] = emailWithOAuthId.split("@"); + const [domainName, TLD] = emailDomain.split("."); + const newUsername = slugify(`${emailUser}-${domainName}-${TLD}`); await this.userRepository.updateUsername(userId, newUsername); }