mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
[PM-20108] Update account recovery trust prompt, delete organization trust prompt (#14218)
* Update trust prompt and move to shared km module * Delete organization trust component * Update org trust warning message
This commit is contained in:
@@ -3564,6 +3564,30 @@
|
||||
"deviceTrusted": {
|
||||
"message": "Device trusted"
|
||||
},
|
||||
"trustOrganization": {
|
||||
"message": "Trust organization"
|
||||
},
|
||||
"trust": {
|
||||
"message": "Trust"
|
||||
},
|
||||
"doNotTrust": {
|
||||
"message": "Do not trust"
|
||||
},
|
||||
"organizationNotTrusted": {
|
||||
"message": "Organization is not trusted"
|
||||
},
|
||||
"emergencyAccessTrustWarning": {
|
||||
"message": "For the security of your account, only confirm if you have granted emergency access to this user and their fingerprint matches what is displayed in their account"
|
||||
},
|
||||
"orgTrustWarning": {
|
||||
"message": "For the security of your account, only proceed if you are a member of this organization, have account recovery enabled, and the fingerprint displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"orgTrustWarning1": {
|
||||
"message": "This organization has an Enterprise policy that will enroll you in account recovery. Enrollment will allow organization administrators to change your password. Only proceed if you recognize this organization and the fingerprint phrase displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"trustUser":{
|
||||
"message": "Trust user"
|
||||
},
|
||||
"sendsNoItemsTitle": {
|
||||
"message": "No active Sends",
|
||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||
|
||||
@@ -3152,6 +3152,30 @@
|
||||
"deviceTrusted": {
|
||||
"message": "Device trusted"
|
||||
},
|
||||
"trustOrganization": {
|
||||
"message": "Trust organization"
|
||||
},
|
||||
"trust": {
|
||||
"message": "Trust"
|
||||
},
|
||||
"doNotTrust": {
|
||||
"message": "Do not trust"
|
||||
},
|
||||
"organizationNotTrusted": {
|
||||
"message": "Organization is not trusted"
|
||||
},
|
||||
"emergencyAccessTrustWarning": {
|
||||
"message": "For the security of your account, only confirm if you have granted emergency access to this user and their fingerprint matches what is displayed in their account"
|
||||
},
|
||||
"orgTrustWarning": {
|
||||
"message": "For the security of your account, only proceed if you are a member of this organization, have account recovery enabled, and the fingerprint displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"orgTrustWarning1": {
|
||||
"message": "This organization has an Enterprise policy that will enroll you in account recovery. Enrollment will allow organization administrators to change your password. Only proceed if you recognize this organization and the fingerprint phrase displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"trustUser":{
|
||||
"message": "Trust user"
|
||||
},
|
||||
"inputRequired": {
|
||||
"message": "Input is required."
|
||||
},
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
<form [formGroup]="confirmForm" [bitSubmit]="submit">
|
||||
<bit-dialog
|
||||
dialogSize="large"
|
||||
[loading]="loading"
|
||||
[title]="'trustOrganization' | i18n"
|
||||
[subtitle]="params.name"
|
||||
>
|
||||
<ng-container bitDialogContent>
|
||||
<bit-callout type="warning">{{ "orgTrustWarning" | i18n }}</bit-callout>
|
||||
<p bitTypography="body1">
|
||||
{{ "fingerprintPhrase" | i18n }} <code>{{ fingerprint }}</code>
|
||||
</p>
|
||||
</ng-container>
|
||||
<ng-container bitDialogFooter>
|
||||
<button type="submit" buttonType="primary" bitButton bitFormButton>
|
||||
<span>{{ "trust" | i18n }}</span>
|
||||
</button>
|
||||
<button bitButton bitFormButton buttonType="secondary" type="button" bitDialogClose>
|
||||
{{ "doNotTrust" | i18n }}
|
||||
</button>
|
||||
</ng-container>
|
||||
</bit-dialog>
|
||||
</form>
|
||||
@@ -1,69 +0,0 @@
|
||||
import { DialogRef, DIALOG_DATA } from "@angular/cdk/dialog";
|
||||
import { Component, OnInit, Inject } from "@angular/core";
|
||||
import { FormBuilder } from "@angular/forms";
|
||||
|
||||
import { OrganizationManagementPreferencesService } from "@bitwarden/common/admin-console/abstractions/organization-management-preferences/organization-management-preferences.service";
|
||||
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
||||
import { DialogService } from "@bitwarden/components";
|
||||
import { KeyService } from "@bitwarden/key-management";
|
||||
|
||||
type OrganizationTrustDialogData = {
|
||||
/** display name of the organization */
|
||||
name: string;
|
||||
/** identifies the organization */
|
||||
orgId: string;
|
||||
/** org public key */
|
||||
publicKey: Uint8Array;
|
||||
};
|
||||
@Component({
|
||||
selector: "organization-trust",
|
||||
templateUrl: "organization-trust.component.html",
|
||||
})
|
||||
export class OrganizationTrustComponent implements OnInit {
|
||||
loading = true;
|
||||
fingerprint: string = "";
|
||||
confirmForm = this.formBuilder.group({});
|
||||
|
||||
constructor(
|
||||
@Inject(DIALOG_DATA) protected params: OrganizationTrustDialogData,
|
||||
private formBuilder: FormBuilder,
|
||||
private keyService: KeyService,
|
||||
protected organizationManagementPreferencesService: OrganizationManagementPreferencesService,
|
||||
private logService: LogService,
|
||||
private dialogRef: DialogRef<boolean>,
|
||||
) {}
|
||||
|
||||
async ngOnInit() {
|
||||
try {
|
||||
const fingerprint = await this.keyService.getFingerprint(
|
||||
this.params.orgId,
|
||||
this.params.publicKey,
|
||||
);
|
||||
if (fingerprint != null) {
|
||||
this.fingerprint = fingerprint.join("-");
|
||||
}
|
||||
} catch (e) {
|
||||
this.logService.error(e);
|
||||
}
|
||||
this.loading = false;
|
||||
}
|
||||
|
||||
submit = async () => {
|
||||
if (this.loading) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.dialogRef.close(true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Strongly typed helper to open a OrganizationTrustComponent
|
||||
* @param dialogService Instance of the dialog service that will be used to open the dialog
|
||||
* @param data The data to pass to the dialog
|
||||
*/
|
||||
static open(dialogService: DialogService, data: OrganizationTrustDialogData) {
|
||||
return dialogService.open<boolean, OrganizationTrustDialogData>(OrganizationTrustComponent, {
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -18,8 +18,8 @@ import { Utils } from "@bitwarden/common/platform/misc/utils";
|
||||
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
|
||||
import { DialogService, ToastService } from "@bitwarden/components";
|
||||
import { KeyService } from "@bitwarden/key-management";
|
||||
import { AccountRecoveryTrustComponent } from "@bitwarden/key-management-ui";
|
||||
|
||||
import { OrganizationTrustComponent } from "../manage/organization-trust.component";
|
||||
import { OrganizationUserResetPasswordService } from "../members/services/organization-user-reset-password/organization-user-reset-password.service";
|
||||
|
||||
interface EnrollMasterPasswordResetData {
|
||||
@@ -62,7 +62,7 @@ export class EnrollMasterPasswordReset {
|
||||
await userVerificationService.buildRequest<OrganizationUserResetPasswordEnrollmentRequest>(
|
||||
secret,
|
||||
);
|
||||
const dialogRef = OrganizationTrustComponent.open(dialogService, {
|
||||
const dialogRef = AccountRecoveryTrustComponent.open(dialogService, {
|
||||
name: data.organization.name,
|
||||
orgId: data.organization.id,
|
||||
publicKey,
|
||||
|
||||
@@ -9,7 +9,6 @@ import { LayoutComponent, NavigationModule } from "@bitwarden/components";
|
||||
|
||||
import { OrganizationLayoutComponent } from "../admin-console/organizations/layouts/organization-layout.component";
|
||||
import { EventsComponent as OrgEventsComponent } from "../admin-console/organizations/manage/events.component";
|
||||
import { OrganizationTrustComponent } from "../admin-console/organizations/manage/organization-trust.component";
|
||||
import { UserConfirmComponent as OrgUserConfirmComponent } from "../admin-console/organizations/manage/user-confirm.component";
|
||||
import { VerifyRecoverDeleteOrgComponent } from "../admin-console/organizations/manage/verify-recover-delete-org.component";
|
||||
import { AcceptFamilySponsorshipComponent } from "../admin-console/organizations/sponsorships/accept-family-sponsorship.component";
|
||||
@@ -111,7 +110,6 @@ import { SharedModule } from "./shared.module";
|
||||
OrgReusedPasswordsReportComponent,
|
||||
OrgUnsecuredWebsitesReportComponent,
|
||||
OrgUserConfirmComponent,
|
||||
OrganizationTrustComponent,
|
||||
OrgWeakPasswordsReportComponent,
|
||||
PreferencesComponent,
|
||||
PremiumBadgeComponent,
|
||||
@@ -157,7 +155,6 @@ import { SharedModule } from "./shared.module";
|
||||
OrgReusedPasswordsReportComponent,
|
||||
OrgUnsecuredWebsitesReportComponent,
|
||||
OrgUserConfirmComponent,
|
||||
OrganizationTrustComponent,
|
||||
OrgWeakPasswordsReportComponent,
|
||||
PreferencesComponent,
|
||||
PremiumBadgeComponent,
|
||||
|
||||
@@ -10397,12 +10397,18 @@
|
||||
"doNotTrust": {
|
||||
"message": "Do not trust"
|
||||
},
|
||||
"organizationNotTrusted": {
|
||||
"message": "Organization is not trusted"
|
||||
},
|
||||
"emergencyAccessTrustWarning": {
|
||||
"message": "For the security of your account, only confirm if you have granted emergency access to this user and their fingerprint matches what is displayed in their account"
|
||||
},
|
||||
"orgTrustWarning": {
|
||||
"message": "For the security of your account, only proceed if you are a member of this organization, have account recovery enabled, and the fingerprint displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"orgTrustWarning1": {
|
||||
"message": "This organization has an Enterprise policy that will enroll you in account recovery. Enrollment will allow organization administrators to change your password. Only proceed if you recognize this organization and the fingerprint phrase displayed below matches the organization's fingerprint."
|
||||
},
|
||||
"trustUser":{
|
||||
"message": "Trust user"
|
||||
},
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
[subtitle]="params.name"
|
||||
>
|
||||
<ng-container bitDialogContent>
|
||||
<bit-callout type="warning">{{ "orgTrustWarning" | i18n }}</bit-callout>
|
||||
<p bitTypography="body1">
|
||||
{{ "orgTrustWarning1" | i18n }}
|
||||
<br />
|
||||
<br />
|
||||
{{ "fingerprintPhrase" | i18n }} <code>{{ fingerprint }}</code>
|
||||
</p>
|
||||
</ng-container>
|
||||
|
||||
Reference in New Issue
Block a user