mirror of
https://github.com/bitwarden/browser
synced 2025-12-13 06:43:35 +00:00
[PM-17465] refactor PolicyService.getAll$ to make userId not optional (#13031)
* refactor PolicyService.getAll$ to make userId not optional * add fix to browser * fix test to read from mock singleUserState * remove nested pipes, cleanup
This commit is contained in:
@@ -47,7 +47,7 @@ export class FamiliesPolicyService {
|
||||
map((organizations) => organizations.find((org) => org.canManageSponsorships)?.id),
|
||||
switchMap((enterpriseOrgId) =>
|
||||
this.policyService
|
||||
.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy)
|
||||
.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy, userId)
|
||||
.pipe(
|
||||
map(
|
||||
(policies) =>
|
||||
|
||||
@@ -6,6 +6,7 @@ import { PolicyService } from "@bitwarden/common/admin-console/abstractions/poli
|
||||
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||
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";
|
||||
|
||||
@@ -110,7 +111,11 @@ export class FreeFamiliesPolicyService {
|
||||
});
|
||||
}
|
||||
|
||||
return this.policyService.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy).pipe(
|
||||
return this.accountService.activeAccount$.pipe(
|
||||
getUserId,
|
||||
switchMap((userId) =>
|
||||
this.policyService.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy, userId),
|
||||
),
|
||||
map((policies) => ({
|
||||
isFreeFamilyPolicyEnabled: policies.some(
|
||||
(policy) => policy.organizationId === organizationId && policy.enabled,
|
||||
|
||||
@@ -98,7 +98,7 @@ export class SponsoredFamiliesComponent implements OnInit, OnDestroy {
|
||||
|
||||
this.availableSponsorshipOrgs$ = combineLatest([
|
||||
this.organizationService.organizations$(userId),
|
||||
this.policyService.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy),
|
||||
this.policyService.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy, userId),
|
||||
]).pipe(
|
||||
map(([organizations, policies]) =>
|
||||
organizations
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
// @ts-strict-ignore
|
||||
import { formatDate } from "@angular/common";
|
||||
import { Component, EventEmitter, Input, Output, OnInit } from "@angular/core";
|
||||
import { firstValueFrom, map, Observable } from "rxjs";
|
||||
import { firstValueFrom, map, Observable, switchMap } from "rxjs";
|
||||
|
||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
|
||||
import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
|
||||
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 { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||
@@ -38,6 +40,7 @@ export class SponsoringOrgRowComponent implements OnInit {
|
||||
private toastService: ToastService,
|
||||
private configService: ConfigService,
|
||||
private policyService: PolicyService,
|
||||
private accountService: AccountService,
|
||||
) {}
|
||||
|
||||
async ngOnInit() {
|
||||
@@ -54,17 +57,19 @@ export class SponsoringOrgRowComponent implements OnInit {
|
||||
);
|
||||
|
||||
if (this.isFreeFamilyFlagEnabled) {
|
||||
this.isFreeFamilyPolicyEnabled$ = this.policyService
|
||||
.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy)
|
||||
.pipe(
|
||||
map(
|
||||
(policies) =>
|
||||
Array.isArray(policies) &&
|
||||
policies.some(
|
||||
(policy) => policy.organizationId === this.sponsoringOrg.id && policy.enabled,
|
||||
),
|
||||
),
|
||||
);
|
||||
this.isFreeFamilyPolicyEnabled$ = this.accountService.activeAccount$.pipe(
|
||||
getUserId,
|
||||
switchMap((userId) =>
|
||||
this.policyService.getAll$(PolicyType.FreeFamiliesSponsorshipPolicy, userId),
|
||||
),
|
||||
map(
|
||||
(policies) =>
|
||||
Array.isArray(policies) &&
|
||||
policies.some(
|
||||
(policy) => policy.organizationId === this.sponsoringOrg.id && policy.enabled,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user