mirror of
https://github.com/bitwarden/browser
synced 2026-01-01 16:13:27 +00:00
* [PM-24469] Refactor CipherViewComponent to use Angular signals and computed properties for improved reactivity * [PM-24469] Refactor CipherViewComponent to utilize Angular signals for organization data retrieval * [PM-24469] Refactor CipherViewComponent to utilize Angular signals for folder data retrieval * [PM-24469] Cleanup organization signal * [PM-24469] Refactor CipherViewComponent to replace signal for card expiration with computed property * [PM-24469] Improve collections loading in CipherViewComponent * [PM-24469] Remove redundant loadCipherData method * [PM-24469] Refactor CipherViewComponent to replace signal with computed property for pending change password tasks * [PM-24469] Refactor LoginCredentialsViewComponent to rename hadPendingChangePasswordTask to showChangePasswordLink for clarity * [PM-24469] Introduce showChangePasswordLink computed property for improved readability * [PM-24469] Initial RI for premium logic * [PM-24469] Refactor checkPassword risk checking logic * [PM-24469] Cleanup premium check * [PM-24469] Cleanup UI visuals * [PM-24469] Fix missing typography import * [PM-24469] Cleanup docs * [PM-24469] Add feature flag * [PM-24469] Ensure password risk check is only performed when the feature is enabled, and the cipher is editable by the user, and it has a password * [PM-24469] Refactor password risk evaluation logic and add unit tests for risk assessment * [PM-24469] Fix mismatched CipherId type * [PM-24469] Fix test dependencies * [PM-24469] Fix config service mock in emergency view dialog spec * [PM-24469] Wait for decrypted vault before calculating cipher risk * [PM-24469] startWith(false) for passwordIsAtRisk signal to avoid showing stale values when cipher changes * [PM-24469] Exclude organization owned ciphers from JIT risk analysis * [PM-24469] Add initial cipher-view component test boilerplate * [PM-24469] Add passwordIsAtRisk signal tests * [PM-24469] Ignore soft deleted items for RI for premium feature * [PM-24469] Fix tests
86 lines
2.6 KiB
HTML
86 lines
2.6 KiB
HTML
<ng-container *ngIf="!!cipher()">
|
|
<bit-callout *ngIf="cardIsExpired()" type="info" [title]="'cardExpiredTitle' | i18n">
|
|
{{ "cardExpiredMessage" | i18n }}
|
|
</bit-callout>
|
|
|
|
<bit-callout
|
|
*ngIf="!hasLoginUri() && hadPendingChangePasswordTask()"
|
|
type="warning"
|
|
[title]="'missingWebsite' | i18n"
|
|
>
|
|
{{ "changeAtRiskPasswordAndAddWebsite" | i18n }}
|
|
</bit-callout>
|
|
|
|
<bit-callout *ngIf="showChangePasswordLink()" type="warning" [title]="''">
|
|
<a bitLink href="#" appStopClick (click)="launchChangePassword()" linkType="secondary">
|
|
{{ "changeAtRiskPassword" | i18n }}
|
|
<i class="bwi bwi-external-link tw-ml-1" aria-hidden="true"></i>
|
|
</a>
|
|
</bit-callout>
|
|
|
|
<!-- HELPER TEXT -->
|
|
<p class="tw-text-muted" bitTypography="helper" *ngIf="cipher()?.isDeleted && !cipher()?.edit">
|
|
{{ "noEditPermissions" | i18n }}
|
|
</p>
|
|
|
|
<!-- ITEM DETAILS -->
|
|
<app-item-details-v2
|
|
[cipher]="cipher()"
|
|
[organization]="organization()"
|
|
[collections]="resolvedCollections()"
|
|
[folder]="folder()"
|
|
[hideOwner]="isAdminConsole()"
|
|
>
|
|
</app-item-details-v2>
|
|
|
|
<!-- LOGIN CREDENTIALS -->
|
|
<app-login-credentials-view
|
|
*ngIf="hasLogin()"
|
|
[cipher]="cipher()"
|
|
[activeUserId]="activeUserId$ | async"
|
|
[showChangePasswordLink]="showChangePasswordLink()"
|
|
(handleChangePassword)="launchChangePassword()"
|
|
></app-login-credentials-view>
|
|
|
|
<!-- AUTOFILL OPTIONS -->
|
|
<app-autofill-options-view
|
|
*ngIf="hasAutofill()"
|
|
[loginUris]="cipher()!.login.uris"
|
|
[cipherId]="cipher()!.id"
|
|
>
|
|
</app-autofill-options-view>
|
|
|
|
<!-- CARD DETAILS -->
|
|
<app-card-details-view *ngIf="hasCard()" [cipher]="cipher()"></app-card-details-view>
|
|
|
|
<!-- IDENTITY SECTIONS -->
|
|
<app-view-identity-sections *ngIf="cipher()?.identity" [cipher]="cipher()">
|
|
</app-view-identity-sections>
|
|
|
|
<!-- SshKEY SECTIONS -->
|
|
<app-sshkey-view *ngIf="hasSshKey()" [sshKey]="cipher()!.sshKey"></app-sshkey-view>
|
|
|
|
<!-- ADDITIONAL OPTIONS -->
|
|
<ng-container *ngIf="cipher()?.notes">
|
|
<app-additional-options [notes]="cipher()!.notes"> </app-additional-options>
|
|
</ng-container>
|
|
|
|
<!-- CUSTOM FIELDS -->
|
|
<ng-container *ngIf="cipher()?.hasFields">
|
|
<app-custom-fields-v2 [cipher]="cipher()"> </app-custom-fields-v2>
|
|
</ng-container>
|
|
|
|
<!-- ATTACHMENTS SECTION -->
|
|
<ng-container *ngIf="cipher()?.hasAttachments">
|
|
<app-attachments-v2-view
|
|
[emergencyAccessId]="emergencyAccessId()"
|
|
[cipher]="cipher()"
|
|
[admin]="isAdminConsole()"
|
|
>
|
|
</app-attachments-v2-view>
|
|
</ng-container>
|
|
|
|
<!-- ITEM HISTORY SECTION -->
|
|
<app-item-history-v2 [cipher]="cipher()"> </app-item-history-v2>
|
|
</ng-container>
|