mirror of
https://github.com/bitwarden/browser
synced 2025-12-15 07:43:35 +00:00
Auth/PM-11969 - Registration with Email Verification - Accept Emergency Access Invite Flow (#11018)
* PM-11969 - Registration with Email Verification - Accept Emergency Access Invite Fixed * PM-11969 - Fix PR feedback * PM-11969 - AcceptEmergencyComponent - remove prop
This commit is contained in:
@@ -71,6 +71,8 @@ export class WebRegistrationFinishService
|
||||
userAsymmetricKeys: [string, EncString],
|
||||
emailVerificationToken?: string,
|
||||
orgSponsoredFreeFamilyPlanToken?: string,
|
||||
acceptEmergencyAccessInviteToken?: string,
|
||||
emergencyAccessId?: string,
|
||||
): Promise<RegisterFinishRequest> {
|
||||
const registerRequest = await super.buildRegisterRequest(
|
||||
email,
|
||||
@@ -94,6 +96,11 @@ export class WebRegistrationFinishService
|
||||
registerRequest.orgSponsoredFreeFamilyPlanToken = orgSponsoredFreeFamilyPlanToken;
|
||||
}
|
||||
|
||||
if (acceptEmergencyAccessInviteToken && emergencyAccessId) {
|
||||
registerRequest.acceptEmergencyAccessInviteToken = acceptEmergencyAccessInviteToken;
|
||||
registerRequest.acceptEmergencyAccessId = emergencyAccessId;
|
||||
}
|
||||
|
||||
return registerRequest;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,14 +26,8 @@
|
||||
>
|
||||
{{ "logIn" | i18n }}
|
||||
</a>
|
||||
<a
|
||||
bitButton
|
||||
buttonType="primary"
|
||||
[routerLink]="registerRoute$ | async"
|
||||
[queryParams]="{ email: email }"
|
||||
[block]="true"
|
||||
>
|
||||
<button type="button" bitButton buttonType="primary" (click)="register()" [block]="true">
|
||||
{{ "createAccount" | i18n }}
|
||||
</a>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Component } from "@angular/core";
|
||||
import { ActivatedRoute, Params, Router } from "@angular/router";
|
||||
import { firstValueFrom } from "rxjs";
|
||||
|
||||
import { RegisterRouteService } from "@bitwarden/auth/common";
|
||||
import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
|
||||
@@ -18,6 +19,8 @@ import { EmergencyAccessService } from "../services/emergency-access.service";
|
||||
})
|
||||
export class AcceptEmergencyComponent extends BaseAcceptComponent {
|
||||
name: string;
|
||||
emergencyAccessId: string;
|
||||
acceptEmergencyAccessInviteToken: string;
|
||||
|
||||
protected requiredParameters: string[] = ["id", "name", "email", "token"];
|
||||
protected failedShortMessage = "emergencyInviteAcceptFailedShort";
|
||||
@@ -55,5 +58,36 @@ export class AcceptEmergencyComponent extends BaseAcceptComponent {
|
||||
// Fix URL encoding of space issue with Angular
|
||||
this.name = this.name.replace(/\+/g, " ");
|
||||
}
|
||||
|
||||
if (qParams.id) {
|
||||
this.emergencyAccessId = qParams.id;
|
||||
}
|
||||
|
||||
if (qParams.token) {
|
||||
this.acceptEmergencyAccessInviteToken = qParams.token;
|
||||
}
|
||||
}
|
||||
|
||||
async register() {
|
||||
let queryParams: Params;
|
||||
let registerRoute = await firstValueFrom(this.registerRoute$);
|
||||
if (registerRoute === "/register") {
|
||||
queryParams = {
|
||||
email: this.email,
|
||||
};
|
||||
} else if (registerRoute === "/signup") {
|
||||
// We have to override the base component route as we don't need users to
|
||||
// complete email verification if they are coming directly an emailed invite.
|
||||
registerRoute = "/finish-signup";
|
||||
queryParams = {
|
||||
email: this.email,
|
||||
acceptEmergencyAccessInviteToken: this.acceptEmergencyAccessInviteToken,
|
||||
emergencyAccessId: this.emergencyAccessId,
|
||||
};
|
||||
}
|
||||
|
||||
await this.router.navigate([registerRoute], {
|
||||
queryParams: queryParams,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user