fix(auth, workspace-invitation): enforce required subdomains (#9464)

Updated the handling of `targetWorkspaceSubdomain` and `subdomain` to
enforce them as required fields. This prevents potential issues caused
by missing values during sign-in/up and workspace invitation processes.
This commit is contained in:
Antoine Moreaux
2025-01-08 18:51:49 +01:00
committed by GitHub
parent bc30c6973c
commit d61409a5df
3 changed files with 18 additions and 15 deletions

View File

@ -498,6 +498,7 @@ describe('SignInUpService', () => {
email, email,
password, password,
fromSSO: false, fromSSO: false,
targetWorkspaceSubdomain: 'testSubDomain',
workspaceInviteHash, workspaceInviteHash,
}); });

View File

@ -122,19 +122,21 @@ export class SignInUpService {
} }
} }
const signInUpWithInvitationResult = await this.signInUpWithInvitation({ const signInUpWithInvitationResult = targetWorkspaceSubdomain
email, ? await this.signInUpWithInvitation({
workspacePersonalInviteToken, email,
workspaceInviteHash, workspacePersonalInviteToken,
targetWorkspaceSubdomain, workspaceInviteHash,
fromSSO, targetWorkspaceSubdomain,
firstName, fromSSO,
lastName, firstName,
picture, lastName,
authProvider, picture,
passwordHash, authProvider,
existingUser, passwordHash,
}); existingUser,
})
: undefined;
if (isDefined(signInUpWithInvitationResult)) { if (isDefined(signInUpWithInvitationResult)) {
return signInUpWithInvitationResult; return signInUpWithInvitationResult;
@ -187,7 +189,7 @@ export class SignInUpService {
passwordHash?: string; passwordHash?: string;
existingUser: User | null; existingUser: User | null;
fromSSO: boolean; fromSSO: boolean;
targetWorkspaceSubdomain?: string; targetWorkspaceSubdomain: string;
}) { }) {
const maybeInvitation = const maybeInvitation =
fromSSO && !workspacePersonalInviteToken && !workspaceInviteHash fromSSO && !workspacePersonalInviteToken && !workspaceInviteHash

View File

@ -139,7 +139,7 @@ export class WorkspaceInvitationService {
subdomain, subdomain,
email, email,
}: { }: {
subdomain?: string; subdomain: string;
email: string; email: string;
}) { }) {
const workspace = const workspace =