diff --git a/bitwarden_license/bit-common/src/tools/reports/risk-insights/models/password-health.ts b/bitwarden_license/bit-common/src/tools/reports/risk-insights/models/password-health.ts
index 427cb06d9e0..b8d5852088a 100644
--- a/bitwarden_license/bit-common/src/tools/reports/risk-insights/models/password-health.ts
+++ b/bitwarden_license/bit-common/src/tools/reports/risk-insights/models/password-health.ts
@@ -25,7 +25,7 @@ export type ApplicationHealthReportDetail = {
passwordCount: number;
atRiskPasswordCount: number;
memberCount: number;
-
+ atRiskMemberCount: number;
memberDetails: MemberDetailsFlat[];
atRiskMemberDetails: MemberDetailsFlat[];
};
diff --git a/bitwarden_license/bit-common/src/tools/reports/risk-insights/services/risk-insights-report.service.ts b/bitwarden_license/bit-common/src/tools/reports/risk-insights/services/risk-insights-report.service.ts
index f4b30735584..c3b7c16a858 100644
--- a/bitwarden_license/bit-common/src/tools/reports/risk-insights/services/risk-insights-report.service.ts
+++ b/bitwarden_license/bit-common/src/tools/reports/risk-insights/services/risk-insights-report.service.ts
@@ -290,6 +290,7 @@ export class RiskInsightsReportService {
: newUriDetail.cipherMembers,
atRiskMemberDetails: existingUriDetail ? existingUriDetail.atRiskMemberDetails : [],
atRiskPasswordCount: existingUriDetail ? existingUriDetail.atRiskPasswordCount : 0,
+ atRiskMemberCount: existingUriDetail ? existingUriDetail.atRiskMemberDetails.length : 0,
} as ApplicationHealthReportDetail;
if (isAtRisk) {
diff --git a/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.html b/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.html
index 8d140a457ad..a1798e2ba9a 100644
--- a/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.html
+++ b/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.html
@@ -65,11 +65,11 @@
|
- {{ "application" | i18n }} |
- {{ "atRiskPasswords" | i18n }} |
- {{ "totalPasswords" | i18n }} |
- {{ "atRiskMembers" | i18n }} |
- {{ "totalMembers" | i18n }} |
+ {{ "application" | i18n }} |
+ {{ "atRiskPasswords" | i18n }} |
+ {{ "totalPasswords" | i18n }} |
+ {{ "atRiskMembers" | i18n }} |
+ {{ "totalMembers" | i18n }} |
@@ -100,7 +100,6 @@
{{ r.atRiskMemberCount }}
- w
{{ r.memberCount }}
|
diff --git a/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.ts b/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.ts
index fbd958b6c81..3ff04703fec 100644
--- a/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.ts
+++ b/bitwarden_license/bit-web/src/app/tools/access-intelligence/all-applications.component.ts
@@ -1,5 +1,3 @@
-// FIXME: Update this file to be type safe and remove this and next line
-// @ts-strict-ignore
import { Component, DestroyRef, inject, OnInit } from "@angular/core";
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
import { FormControl } from "@angular/forms";
@@ -15,14 +13,11 @@ import {
ApplicationHealthReportDetail,
ApplicationHealthReportSummary,
} from "@bitwarden/bit-common/tools/reports/risk-insights/models/password-health";
-import { AuditService } from "@bitwarden/common/abstractions/audit.service";
-import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
-import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import {
Icons,
NoItemsModule,
@@ -82,6 +77,8 @@ export class AllApplicationsComponent implements OnInit {
next: (applications: ApplicationHealthReportDetail[]) => {
if (applications) {
this.dataSource.data = applications;
+ const summary = this.reportService.generateApplicationsSummary(applications);
+ this.applicationSummary = summary;
this.loading = false;
}
},
@@ -90,14 +87,12 @@ export class AllApplicationsComponent implements OnInit {
constructor(
protected cipherService: CipherService,
- protected riskInsightsReportService: RiskInsightsReportService,
- protected auditService: AuditService,
protected i18nService: I18nService,
protected activatedRoute: ActivatedRoute,
protected toastService: ToastService,
- protected organizationService: OrganizationService,
protected configService: ConfigService,
protected dataService: RiskInsightsDataService,
+ protected reportService: RiskInsightsReportService,
) {
this.searchControl.valueChanges
.pipe(debounceTime(200), takeUntilDestroyed())
@@ -130,8 +125,8 @@ export class AllApplicationsComponent implements OnInit {
});
};
- trackByFunction(_: number, item: CipherView) {
- return item.id;
+ trackByFunction(_: number, item: ApplicationHealthReportDetail) {
+ return item.applicationName;
}
onCheckboxChange(id: number, event: Event) {