import { Http } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import { MyClaim } from './../models/index'; import { IDataStructure, FieldFilter } from './../interfaces/index'; /** * Permission provider * @class * @classdesc Permission role checking. */ export declare class PermissionProvider { private http; /** Data container */ data$: Observable>; /** An EventEmitter to listen to change events from server*/ private dataObserver; /** The initialized flag */ private initialized; /** Data container */ private dataStore; /** The dummy instances of entity*/ private _dummyMyClaimInstance; /** * Represents a Permission provider * @constructor * @param http Http */ constructor(http: Http); /** * Filter claim * @param filters Filter condition array * @returns {Promise} */ filterAllClaims(filters: FieldFilter[]): Promise; /** * check permission * @param claimResource {string} The claim resource. * @param claimRight {string} The claim right. * @returns {boolean} TRUE: Has permission; FALSE: None */ checkPermission(claimResource: string, claimRight: string): boolean; /** * check permission * @param entity * @param claimRight {string} The claim right. * @returns {boolean} TRUE: Has permission; FALSE: None */ checkEntityPermission(entity: IDataStructure, claimRight: string): boolean; /** * check permission * @param claimResource {string} The claim resource. * @returns {boolean} TRUE: Has permission; FALSE: None * @returns {MyClaim[]} */ checkPermissions(claimResource: string): MyClaim[]; /** * check permission * @param entity {IDataStructure} Type of data * @returns {MyClaim[]} */ checkEntityPermissions(entity: IDataStructure): MyClaim[]; /** * Reload permissions by multi claims * @param claims {MyClaim[]} The claims resource * @returns {Promise} */ reloadPermissionsForMultipleClaims(claims: MyClaim[]): Promise; /** * Reload permissions by data type * @param entity {IDataStructure} Type of data * @returns {Promise} */ reloadPermissionsForResource(entity: IDataStructure): Promise; /** * Reload permissions by data type * @param entity {IDataStructure} Type of data * @returns {Promise} */ reloadAllClaims(): Promise; }