Browse Source

[EC-788] fix: people component using wrong policy list (#4487)

The people component was updated to use the new PolicyService observable. However that broke compatibility with providers which need to manually fetch org info for their clients.
pull/4696/head
Andreas Coroiu 3 years ago committed by GitHub
parent
commit
a4aa042fc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 38
      apps/web/src/app/organizations/members/people.component.ts

38
apps/web/src/app/organizations/members/people.component.ts

@ -1,6 +1,17 @@ @@ -1,6 +1,17 @@
import { Component, OnDestroy, OnInit, ViewChild, ViewContainerRef } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { combineLatest, concatMap, firstValueFrom, lastValueFrom, Subject, takeUntil } from "rxjs";
import {
combineLatest,
concatMap,
firstValueFrom,
from,
lastValueFrom,
map,
shareReplay,
Subject,
switchMap,
takeUntil,
} from "rxjs";
import { SearchPipe } from "@bitwarden/angular/pipes/search.pipe";
import { UserNamePipe } from "@bitwarden/angular/pipes/user-name.pipe";
@ -19,6 +30,7 @@ import { @@ -19,6 +30,7 @@ import {
import { OrganizationApiServiceAbstraction } from "@bitwarden/common/abstractions/organization/organization-api.service.abstraction";
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
import { PolicyApiServiceAbstraction as PolicyApiService } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction";
import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction";
import { SearchService } from "@bitwarden/common/abstractions/search.service";
import { StateService } from "@bitwarden/common/abstractions/state.service";
@ -100,6 +112,7 @@ export class PeopleComponent @@ -100,6 +112,7 @@ export class PeopleComponent
searchService: SearchService,
validationService: ValidationService,
private policyService: PolicyService,
private policyApiService: PolicyApiService,
logService: LogService,
searchPipe: SearchPipe,
userNamePipe: UserNamePipe,
@ -129,10 +142,27 @@ export class PeopleComponent @@ -129,10 +142,27 @@ export class PeopleComponent
}
async ngOnInit() {
combineLatest([this.route.params, this.route.queryParams, this.policyService.policies$])
const organization$ = this.route.params.pipe(
map((params) => this.organizationService.get(params.organizationId)),
shareReplay({ refCount: true, bufferSize: 1 })
);
const policies$ = organization$.pipe(
switchMap((organization) => {
if (organization.isProviderUser) {
return from(this.policyApiService.getPolicies(organization.id)).pipe(
map((response) => this.policyService.mapPoliciesFromToken(response))
);
}
return this.policyService.policies$;
})
);
combineLatest([this.route.queryParams, policies$, organization$])
.pipe(
concatMap(async ([params, qParams, policies]) => {
this.organization = await this.organizationService.get(params.organizationId);
concatMap(async ([qParams, policies, organization]) => {
this.organization = organization;
// Backfill pub/priv key if necessary
if (

Loading…
Cancel
Save