From 5f64d956520612a681611a27c5f4f2e5f27b640e Mon Sep 17 00:00:00 2001 From: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Date: Thu, 9 Sep 2021 07:34:27 +1000 Subject: [PATCH] Fixes and cleanup for policyAppliesToUser (#476) * Fix canManagePolicies logic to include providers * Move new logic to isOwner (same as server) * Refactor policyAppliesToUser * Use const instead of var * Fix linting --- common/src/models/domain/organization.ts | 2 +- common/src/services/policy.service.ts | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/common/src/models/domain/organization.ts b/common/src/models/domain/organization.ts index a7376956c15..3ba4d4b4e7a 100644 --- a/common/src/models/domain/organization.ts +++ b/common/src/models/domain/organization.ts @@ -89,7 +89,7 @@ export class Organization { } get isOwner() { - return this.type === OrganizationUserType.Owner; + return this.type === OrganizationUserType.Owner || this.isProviderUser; } get canAccessBusinessPortal() { diff --git a/common/src/services/policy.service.ts b/common/src/services/policy.service.ts index 54f77f81027..996836bc37e 100644 --- a/common/src/services/policy.service.ts +++ b/common/src/services/policy.service.ts @@ -172,21 +172,18 @@ export class PolicyService implements PolicyServiceAbstraction { } async policyAppliesToUser(policyType: PolicyType, policyFilter?: (policy: Policy) => boolean) { - if (policyFilter == null) { - policyFilter = (policy: Policy) => true; - } - const policies = await this.getAll(policyType); const organizations = await this.userService.getAllOrganizations(); + let filteredPolicies; - const filteredPolicies = policies - .filter(p => - p.enabled && - p.type === policyType && - policyFilter(p)) - .map(p => p.organizationId); + if (policyFilter != null) { + filteredPolicies = policies.filter(p => p.enabled && policyFilter(p)); + } + else { + filteredPolicies = policies.filter(p => p.enabled); + } - const policySet = new Set(filteredPolicies); + const policySet = new Set(filteredPolicies.map(p => p.organizationId)); return organizations.some(o => o.enabled &&