Browse Source

policy function renamed

pull/20988/head
masum-ulu 1 year ago
parent
commit
96c3e1be3c
  1. 27
      npm/ng-packs/packages/components/extensible/src/lib/utils/props.util.ts
  2. 4
      npm/ng-packs/packages/components/extensible/src/lib/utils/state.util.ts

27
npm/ng-packs/packages/components/extensible/src/lib/utils/props.util.ts

@ -51,22 +51,13 @@ export function mergeWithDefaultProps<F extends PropsFactory<any>>(
});
}
function isPolicyMet(
checkFunction: (item: string) => boolean,
requiresAll: boolean,
items?: string[],
): boolean {
if (!items?.length) {
return true;
}
return requiresAll ? items.every(checkFunction) : items.some(checkFunction);
}
export function checkPolicyProperties(
export function checkPolicies(
properties: ObjectExtensions.EntityExtensionProperties,
configState: ConfigStateService,
permissionService: PermissionService,
) {
const props = Object.entries(properties);
const checkPolicy = (policy: Policy): boolean => {
const { permissions, globalFeatures, features } = policy;
@ -88,12 +79,16 @@ export function checkPolicyProperties(
},
];
return checks.every(({ items, requiresAll, check }) =>
isPolicyMet(check, requiresAll ?? false, items),
);
return checks.every(({ items, requiresAll, check }) => {
if (!items?.length) {
return true;
}
return requiresAll ? items.every(check) : items.some(check);
});
};
Object.entries(properties).forEach(([name, property]) => {
props.forEach(([name, property]) => {
if (property.policy && !checkPolicy(property.policy)) {
delete properties[name];
}

4
npm/ng-packs/packages/components/extensible/src/lib/utils/state.util.ts

@ -16,7 +16,7 @@ import { ObjectExtensions } from '../models/object-extensions';
import { PropCallback } from '../models/props';
import { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';
import { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';
import { checkPolicyProperties, createExtraPropertyValueResolver } from './props.util';
import { checkPolicies, createExtraPropertyValueResolver } from './props.util';
import {
createTypeaheadDisplayNameGenerator,
createTypeaheadOptions,
@ -100,7 +100,7 @@ export function mapEntitiesToContributors<T = any>(
return acc;
}
checkPolicyProperties(properties, configState, permissionService);
checkPolicies(properties, configState, permissionService);
const mapPropertiesToContributors = createPropertiesToContributorsMapper<T>(
generateDisplayName,

Loading…
Cancel
Save