Browse Source

update: form prop util functions to use the injection cycle

pull/21197/head
sumeyyeKurtulus 2 years ago
parent
commit
358a586e28
  1. 10
      npm/ng-packs/packages/components/extensible/src/lib/utils/props.util.ts
  2. 17
      npm/ng-packs/packages/components/extensible/src/lib/utils/state.util.ts

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

@ -1,4 +1,5 @@
import { ConfigStateService, PermissionService } from '@abp/ng.core';
import { Injector } from '@angular/core';
import { Observable, of } from 'rxjs';
import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
import {
@ -52,20 +53,21 @@ export function mergeWithDefaultProps<F extends PropsFactory<any>>(
}
export function checkPolicies(
injector: Injector,
properties: ObjectExtensions.EntityExtensionProperties,
configState: ConfigStateService,
permissionService: PermissionService,
) {
const configState = injector.get(ConfigStateService);
const permission = injector.get(PermissionService);
const props = Object.entries(properties);
const checkPolicy = (policy: Policy): boolean => {
const { permissions, globalFeatures, features } = policy;
const { permissions, globalFeatures, features } = policy || {};
const checks = [
{
items: permissions?.permissionNames,
requiresAll: permissions?.requiresAll,
check: (item: string) => permissionService.getGrantedPolicy(item),
check: (item: string) => permission.getGrantedPolicy(item),
},
{
items: globalFeatures?.features,

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

@ -5,8 +5,8 @@ import {
ExtensionEnumDto,
ExtensionPropertyUiLookupDto,
ObjectExtensionsDto,
PermissionService,
} from '@abp/ng.core';
import { Injector } from '@angular/core';
import { Observable, pipe, zip } from 'rxjs';
import { filter, map, switchMap, take } from 'rxjs/operators';
import { ePropType } from '../enums/props.enum';
@ -56,10 +56,8 @@ function selectEnums(
);
}
export function getObjectExtensionEntitiesFromStore(
configState: ConfigStateService,
moduleKey: string,
) {
export function getObjectExtensionEntitiesFromStore(injector: Injector, moduleKey: string) {
const configState = injector.get(ConfigStateService);
return selectObjectExtensions(configState).pipe(
map(extensions => {
if (!extensions) return null;
@ -73,11 +71,8 @@ export function getObjectExtensionEntitiesFromStore(
);
}
export function mapEntitiesToContributors<T = any>(
configState: ConfigStateService,
permissionService: PermissionService,
resource: string,
) {
export function mapEntitiesToContributors<T = any>(injector: Injector, resource: string) {
const configState = injector.get(ConfigStateService);
return pipe(
switchMap((entities: any) =>
zip(selectLocalization(configState), selectEnums(configState)).pipe(
@ -100,7 +95,7 @@ export function mapEntitiesToContributors<T = any>(
return acc;
}
checkPolicies(properties, configState, permissionService);
checkPolicies(injector, properties);
const mapPropertiesToContributors = createPropertiesToContributorsMapper<T>(
generateDisplayName,

Loading…
Cancel
Save