mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 14:23:32 +00:00
[PS-1942] Add Provider Filters (#4147)
* Add Helper to filter out Provider Orgs * Use filter where getAll used to be used * Change name to isNotProviderUser
This commit is contained in:
@@ -4,6 +4,7 @@ import { map, Observable } from "rxjs";
|
|||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
import {
|
import {
|
||||||
canAccessAdmin,
|
canAccessAdmin,
|
||||||
|
isNotProviderUser,
|
||||||
OrganizationService,
|
OrganizationService,
|
||||||
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
import { Utils } from "@bitwarden/common/misc/utils";
|
import { Utils } from "@bitwarden/common/misc/utils";
|
||||||
@@ -23,6 +24,7 @@ export class OrganizationSwitcherComponent implements OnInit {
|
|||||||
|
|
||||||
async ngOnInit() {
|
async ngOnInit() {
|
||||||
this.organizations$ = this.organizationService.organizations$.pipe(
|
this.organizations$ = this.organizationService.organizations$.pipe(
|
||||||
|
map((orgs) => orgs.filter(isNotProviderUser)),
|
||||||
canAccessAdmin(this.i18nService),
|
canAccessAdmin(this.i18nService),
|
||||||
map((orgs) => orgs.sort(Utils.getSortFunction(this.i18nService, "name")))
|
map((orgs) => orgs.sort(Utils.getSortFunction(this.i18nService, "name")))
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import { Component, OnInit } from "@angular/core";
|
import { Component, OnInit } from "@angular/core";
|
||||||
import { Observable } from "rxjs";
|
import { map, Observable } from "rxjs";
|
||||||
|
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
import { MessagingService } from "@bitwarden/common/abstractions/messaging.service";
|
import { MessagingService } from "@bitwarden/common/abstractions/messaging.service";
|
||||||
import {
|
import {
|
||||||
canAccessAdmin,
|
canAccessAdmin,
|
||||||
|
isNotProviderUser,
|
||||||
OrganizationService,
|
OrganizationService,
|
||||||
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
@@ -54,6 +55,7 @@ export class NavbarComponent implements OnInit {
|
|||||||
this.providers = await this.providerService.getAll();
|
this.providers = await this.providerService.getAll();
|
||||||
|
|
||||||
this.organizations$ = this.organizationService.organizations$.pipe(
|
this.organizations$ = this.organizationService.organizations$.pipe(
|
||||||
|
map((orgs) => orgs.filter(isNotProviderUser)),
|
||||||
canAccessAdmin(this.i18nService)
|
canAccessAdmin(this.i18nService)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,10 @@ import { CipherService } from "@bitwarden/common/abstractions/cipher.service";
|
|||||||
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
|
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
|
||||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||||
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
import { LogService } from "@bitwarden/common/abstractions/log.service";
|
||||||
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
import {
|
||||||
|
isNotProviderUser,
|
||||||
|
OrganizationService,
|
||||||
|
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||||
import { OrganizationUserStatusType } from "@bitwarden/common/enums/organizationUserStatusType";
|
import { OrganizationUserStatusType } from "@bitwarden/common/enums/organizationUserStatusType";
|
||||||
import { Utils } from "@bitwarden/common/misc/utils";
|
import { Utils } from "@bitwarden/common/misc/utils";
|
||||||
@@ -54,7 +57,10 @@ export class ShareComponent implements OnInit, OnDestroy {
|
|||||||
this.organizations$ = this.organizationService.organizations$.pipe(
|
this.organizations$ = this.organizationService.organizations$.pipe(
|
||||||
map((orgs) => {
|
map((orgs) => {
|
||||||
return orgs
|
return orgs
|
||||||
.filter((o) => o.enabled && o.status === OrganizationUserStatusType.Confirmed)
|
.filter(
|
||||||
|
(o) =>
|
||||||
|
o.enabled && o.status === OrganizationUserStatusType.Confirmed && isNotProviderUser(o)
|
||||||
|
)
|
||||||
.sort(Utils.getSortFunction(this.i18nService, "name"));
|
.sort(Utils.getSortFunction(this.i18nService, "name"));
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ import { firstValueFrom, from, mergeMap, Observable } from "rxjs";
|
|||||||
import { CipherService } from "@bitwarden/common/abstractions/cipher.service";
|
import { CipherService } from "@bitwarden/common/abstractions/cipher.service";
|
||||||
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
|
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
|
||||||
import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction";
|
import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction";
|
||||||
import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
import {
|
||||||
|
isNotProviderUser,
|
||||||
|
OrganizationService,
|
||||||
|
} from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
|
||||||
import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction";
|
import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction";
|
||||||
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
||||||
import { PolicyType } from "@bitwarden/common/enums/policyType";
|
import { PolicyType } from "@bitwarden/common/enums/policyType";
|
||||||
@@ -40,7 +43,9 @@ export class VaultFilterService {
|
|||||||
async buildOrganizations(): Promise<Organization[]> {
|
async buildOrganizations(): Promise<Organization[]> {
|
||||||
let organizations = await this.organizationService.getAll();
|
let organizations = await this.organizationService.getAll();
|
||||||
if (organizations != null) {
|
if (organizations != null) {
|
||||||
organizations = organizations.sort((a, b) => a.name.localeCompare(b.name));
|
organizations = organizations
|
||||||
|
.filter(isNotProviderUser)
|
||||||
|
.sort((a, b) => a.name.localeCompare(b.name));
|
||||||
}
|
}
|
||||||
|
|
||||||
return organizations;
|
return organizations;
|
||||||
|
|||||||
@@ -70,6 +70,10 @@ export function canAccessAdmin(i18nService: I18nService) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isNotProviderUser(org: Organization): boolean {
|
||||||
|
return !org.isProviderUser;
|
||||||
|
}
|
||||||
|
|
||||||
export abstract class OrganizationService {
|
export abstract class OrganizationService {
|
||||||
organizations$: Observable<Organization[]>;
|
organizations$: Observable<Organization[]>;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user