diff --git a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.html b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.html index 6769998e2c8..8431b01759e 100644 --- a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.html +++ b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.html @@ -44,8 +44,8 @@
diff --git a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.stories.ts b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.stories.ts index 5e00a0cf5d1..5860343f916 100644 --- a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.stories.ts +++ b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/member-access-report.component.stories.ts @@ -65,6 +65,7 @@ function createMockMember(index: number): MemberAccessReportView { groupsCount: ((index * 2) % 5) + 1, // Deterministic: 1-5 itemsCount: ((index * 17) % 200) + 1, // Deterministic: 1-200 usesKeyConnector: index % 2 === 0, // Deterministic: alternating true/false + userIdFromOrgUser: `userIdFromOrgUser${index}`, }; } diff --git a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.spec.ts b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.spec.ts index bab0d7f228e..cd5a1aed010 100644 --- a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.spec.ts +++ b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.spec.ts @@ -106,6 +106,7 @@ describe("MemberAccessReportService", () => { resetPasswordEnrolled: options.resetPasswordEnrolled ?? false, groups: options.groups ?? [], avatarColor: options.avatarColor, + userId: "userIdFromOrgUser" + id, }); const createMockCipher = (id: string, collectionIds: string[]): Partial => ({ @@ -224,6 +225,7 @@ describe("MemberAccessReportService", () => { itemsCount: 0, userGuid: expect.any(String), usesKeyConnector: expect.any(Boolean), + userIdFromOrgUser: "", }, { name: "James Lull", @@ -234,6 +236,7 @@ describe("MemberAccessReportService", () => { itemsCount: 0, userGuid: expect.any(String), usesKeyConnector: expect.any(Boolean), + userIdFromOrgUser: "", }, { name: "Beth Williams", @@ -244,6 +247,7 @@ describe("MemberAccessReportService", () => { itemsCount: 0, userGuid: expect.any(String), usesKeyConnector: expect.any(Boolean), + userIdFromOrgUser: "", }, { name: "Ray Williams", @@ -254,6 +258,7 @@ describe("MemberAccessReportService", () => { itemsCount: 0, userGuid: expect.any(String), usesKeyConnector: expect.any(Boolean), + userIdFromOrgUser: "", }, ]); }); @@ -452,6 +457,7 @@ describe("MemberAccessReportService", () => { collectionsCount: 1, groupsCount: 1, itemsCount: 1, + userIdFromOrgUser: "userIdFromOrgUser" + userId1, }); }); @@ -503,6 +509,7 @@ describe("MemberAccessReportService", () => { collectionsCount: 2, // Distinct collections groupsCount: 0, itemsCount: 3, // Distinct ciphers + userIdFromOrgUser: "userIdFromOrgUser" + userId1, }); }); diff --git a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.ts b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.ts index 046ed070e93..e094c647861 100644 --- a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.ts +++ b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/services/member-access-report.service.ts @@ -50,6 +50,7 @@ interface OrganizationUserData { twoFactorEnabled: boolean; usesKeyConnector: boolean; resetPasswordEnrolled: boolean; + userIdFromOrgUser: string | null; // userId from organization user endpoint (may be null for some users, e.g. pending invites) } interface MemberCipherAccess { @@ -128,6 +129,7 @@ export class MemberAccessReportService { groupsCount: groupCount, itemsCount: itemsCount, usesKeyConnector: userDataArray.some((data) => data.usesKeyConnector), + userIdFromOrgUser: "", // V1 API doesn't provide userId from OrgUser endpoint }; memberAccessReportViewCollection.push(aggregatedData); @@ -298,6 +300,7 @@ export class MemberAccessReportService { twoFactorEnabled: orgUser.twoFactorEnabled || false, usesKeyConnector: orgUser.usesKeyConnector || false, resetPasswordEnrolled: orgUser.resetPasswordEnrolled || false, + userIdFromOrgUser: orgUser.userId || null, }); } @@ -531,6 +534,7 @@ export class MemberAccessReportService { groupsCount: data.groups.size, itemsCount: data.items.size, usesKeyConnector: metadata.usesKeyConnector, + userIdFromOrgUser: metadata.userIdFromOrgUser, }); } diff --git a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/view/member-access-report.view.ts b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/view/member-access-report.view.ts index d004f3dc720..36dec988b22 100644 --- a/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/view/member-access-report.view.ts +++ b/bitwarden_license/bit-web/src/app/dirt/reports/member-access-report/view/member-access-report.view.ts @@ -9,4 +9,5 @@ export type MemberAccessReportView = { itemsCount: number; userGuid: Guid; usesKeyConnector: boolean; + userIdFromOrgUser: string | null; // maybe null and used for avatar };