mirror of
https://github.com/bitwarden/browser
synced 2025-12-19 01:33:33 +00:00
* Implement key rotation v2 * Pass through masterpassword hint * Properly split old and new code * Mark legacy rotation as deprecated * Throw when data is null * Cleanup * Add tests * Fix build * Update libs/key-management/src/key.service.spec.ts Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> * Update apps/web/src/app/auth/settings/change-password.component.ts Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> * Add documentation * Centralize loading logic * Implement trust dialogs * Fix build and clean up * Add tests for accept organization component * Fix enrollment * Update apps/web/src/app/admin-console/organizations/manage/organization-trust.component.html Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> * Cleanup according to feedback * Change div to ng-container * Init uninited strings * Fix type errors on dialog config * Fix typing * Fix build * Fix build * Update libs/key-management-ui/src/key-rotation/key-rotation-trust-info.component.ts Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> * Fix linting * Undo legacy component import change * Simplify dialog text --------- Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com>
95 lines
2.4 KiB
TypeScript
95 lines
2.4 KiB
TypeScript
import { DialogRef, DIALOG_DATA } from "@angular/cdk/dialog";
|
|
import { CommonModule } from "@angular/common";
|
|
import { Component, OnInit, Inject } from "@angular/core";
|
|
import { FormBuilder, FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
|
|
import { JslibModule } from "@bitwarden/angular/jslib.module";
|
|
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
|
|
import {
|
|
AsyncActionsModule,
|
|
ButtonModule,
|
|
CalloutModule,
|
|
DialogModule,
|
|
DialogService,
|
|
FormFieldModule,
|
|
LinkModule,
|
|
TypographyModule,
|
|
} from "@bitwarden/components";
|
|
import { KeyService } from "@bitwarden/key-management";
|
|
|
|
type AccountRecoveryTrustDialogData = {
|
|
/** display name of the user */
|
|
name: string;
|
|
/** org id */
|
|
orgId: string;
|
|
/** org public key */
|
|
publicKey: Uint8Array;
|
|
};
|
|
@Component({
|
|
selector: "account-recovery-trust",
|
|
templateUrl: "account-recovery-trust.component.html",
|
|
standalone: true,
|
|
imports: [
|
|
CommonModule,
|
|
JslibModule,
|
|
DialogModule,
|
|
ButtonModule,
|
|
LinkModule,
|
|
TypographyModule,
|
|
ReactiveFormsModule,
|
|
FormFieldModule,
|
|
AsyncActionsModule,
|
|
FormsModule,
|
|
CalloutModule,
|
|
],
|
|
})
|
|
export class AccountRecoveryTrustComponent implements OnInit {
|
|
loading = true;
|
|
fingerprint: string = "";
|
|
confirmForm = this.formBuilder.group({});
|
|
|
|
constructor(
|
|
@Inject(DIALOG_DATA) protected params: AccountRecoveryTrustDialogData,
|
|
private formBuilder: FormBuilder,
|
|
private keyService: KeyService,
|
|
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;
|
|
}
|
|
|
|
async submit() {
|
|
if (this.loading) {
|
|
return;
|
|
}
|
|
|
|
this.dialogRef.close(true);
|
|
}
|
|
/**
|
|
* Strongly typed helper to open a AccountRecoveryTrustComponent
|
|
* @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: AccountRecoveryTrustDialogData) {
|
|
return dialogService.open<boolean, AccountRecoveryTrustDialogData>(
|
|
AccountRecoveryTrustComponent,
|
|
{
|
|
data,
|
|
},
|
|
);
|
|
}
|
|
}
|