Browse Source

filter fn modified to filter given items by policy

pull/7578/head
muhammedaltug 5 years ago
parent
commit
143a9788c7
  1. 4
      npm/ng-packs/packages/core/src/lib/models/common.ts
  2. 15
      npm/ng-packs/packages/core/src/lib/services/permission.service.ts

4
npm/ng-packs/packages/core/src/lib/models/common.ts

@ -12,6 +12,10 @@ export namespace ABP {
sendNullsAsQueryParam?: boolean;
}
export interface HasPolicy {
requiredPolicy?: string;
}
export interface Test extends Partial<Root> {
baseHref?: string;
listQueryDebounceTime?: number;

15
npm/ng-packs/packages/core/src/lib/services/permission.service.ts

@ -3,6 +3,7 @@ import { map } from 'rxjs/operators';
import snq from 'snq';
import { ApplicationConfigurationDto } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/models';
import { ConfigStateService } from './config-state.service';
import { ABP } from '../models';
@Injectable({ providedIn: 'root' })
export class PermissionService {
@ -19,14 +20,20 @@ export class PermissionService {
return this.isPolicyGranted(key, policies);
}
filterGrantedPolicies(policyKeys: Array<string>) {
filterItemsByPolicy<T extends ABP.HasPolicy>(items: Array<T>) {
const policies = this.getSnapshot();
return policyKeys.filter(key => this.isPolicyGranted(key, policies));
return items.filter(
item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),
);
}
filterGrantedPolicies$(policyKeys: Array<string>) {
filterItemsByPolicy$<T extends ABP.HasPolicy>(items: Array<T>) {
return this.getStream().pipe(
map(policies => policyKeys.filter(key => this.isPolicyGranted(key, policies))),
map(policies =>
items.filter(
item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies),
),
),
);
}

Loading…
Cancel
Save