mirror of
https://github.com/bitwarden/browser
synced 2026-02-18 10:23:52 +00:00
* feat(user-decryption-options) [PM-26413]: Update UserDecryptionOptionsService and tests to use UserId-only APIs. * feat(user-decryption-options) [PM-26413]: Update InternalUserDecryptionOptionsService call sites to use UserId-only API. * feat(user-decryption-options) [PM-26413] Update userDecryptionOptions$ call sites to use the UserId-only API. * feat(user-decryption-options) [PM-26413]: Update additional call sites. * feat(user-decryption-options) [PM-26413]: Update dependencies and an additional call site. * feat(user-verification-service) [PM-26413]: Replace where allowed by unrestricted imports invocation of UserVerificationService.hasMasterPassword (deprecated) with UserDecryptionOptions.hasMasterPasswordById$. Additional work to complete as tech debt tracked in PM-27009. * feat(user-decryption-options) [PM-26413]: Update for non-null strict adherence. * feat(user-decryption-options) [PM-26413]: Update type safety and defensive returns. * chore(user-decryption-options) [PM-26413]: Comment cleanup. * feat(user-decryption-options) [PM-26413]: Update tests. * feat(user-decryption-options) [PM-26413]: Standardize null-checking on active account id for new API consumption. * feat(vault-timeout-settings-service) [PM-26413]: Add test cases to illustrate null active account from AccountService. * fix(fido2-user-verification-service-spec) [PM-26413]: Update test harness to use FakeAccountService. * fix(downstream-components) [PM-26413]: Prefer use of the getUserId operator in all authenticated contexts for user id provided to UserDecryptionOptionsService. --------- Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
41 lines
1.6 KiB
TypeScript
41 lines
1.6 KiB
TypeScript
import { Component, OnInit } from "@angular/core";
|
|
import { firstValueFrom, Observable } from "rxjs";
|
|
|
|
import { UserDecryptionOptionsServiceAbstraction } from "@bitwarden/auth/common";
|
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
|
import { getUserId } from "@bitwarden/common/auth/services/account.service";
|
|
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
|
|
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
|
|
|
|
import { HeaderModule } from "../../../layouts/header/header.module";
|
|
import { SharedModule } from "../../../shared";
|
|
|
|
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
|
|
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
|
|
@Component({
|
|
templateUrl: "security.component.html",
|
|
imports: [SharedModule, HeaderModule],
|
|
})
|
|
export class SecurityComponent implements OnInit {
|
|
showChangePassword = true;
|
|
changePasswordRoute = "password";
|
|
consolidatedSessionTimeoutComponent$: Observable<boolean>;
|
|
|
|
constructor(
|
|
private userDecryptionOptionsService: UserDecryptionOptionsServiceAbstraction,
|
|
private accountService: AccountService,
|
|
private configService: ConfigService,
|
|
) {
|
|
this.consolidatedSessionTimeoutComponent$ = this.configService.getFeatureFlag$(
|
|
FeatureFlag.ConsolidatedSessionTimeoutComponent,
|
|
);
|
|
}
|
|
|
|
async ngOnInit() {
|
|
const userId = await firstValueFrom(this.accountService.activeAccount$.pipe(getUserId));
|
|
this.showChangePassword = userId
|
|
? await firstValueFrom(this.userDecryptionOptionsService.hasMasterPasswordById$(userId))
|
|
: false;
|
|
}
|
|
}
|