UNPKG

@ema/js-base-library

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.

191 lines 12.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Util } from '../utils/util'; import { HttpService } from '../http/http-service'; /** @type {?} */ var singleton = Symbol(); /** @type {?} */ var singletonEnforcer = Symbol(); var PermissionsService = /** @class */ (function () { function PermissionsService(enforcer) { this._roles = { ANONYMOUS: [{ actions: 'read', subject: 'all' }] }; if (enforcer !== singletonEnforcer) { throw new Error('Cannot construct singleton'); } this._type = 'PermissionsService'; this._http = HttpService.instance; this._rules = this._roles.ANONYMOUS; } Object.defineProperty(PermissionsService, "instance", { get: /** * @return {?} */ function () { if (!this[singleton]) { this[singleton] = new PermissionsService(singletonEnforcer); } return this[singleton]; }, enumerable: true, configurable: true }); /** * @param {?} url * @param {?=} replace * @param {?=} pluck * @return {?} */ PermissionsService.prototype.loadRules = /** * @param {?} url * @param {?=} replace * @param {?=} pluck * @return {?} */ function (url, replace, pluck) { if (replace === void 0) { replace = true; } if (pluck === void 0) { pluck = undefined; } return tslib_1.__awaiter(this, void 0, void 0, function () { var data; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this._http.get(url)]; case 1: data = _a.sent(); if (pluck) { data = data[pluck]; } this.addRules(data, replace); return [2 /*return*/]; } }); }); }; /** * @param {?} rules * @param {?=} replace * @return {?} */ PermissionsService.prototype.addRules = /** * @param {?} rules * @param {?=} replace * @return {?} */ function (rules, replace) { if (replace === void 0) { replace = false; } if (!replace) { this.rules = tslib_1.__spread(this.rules, rules); } else { this.rules = rules; } if (Util.isBrowser()) { dispatchEvent(new CustomEvent('permissionsRulesChange', { detail: { rules: this.rules } })); } // this.registerPermissionComponents(); }; /** * @param {?=} componentElements * @return {?} */ PermissionsService.prototype.registerPermissionComponents = /** * @param {?=} componentElements * @return {?} */ function (componentElements) { var _this = this; /** @type {?} */ var components = componentElements || Array.from(document.getElementsByTagName('ema-permission')); components.forEach((/** * @param {?} comp * @return {?} */ function (comp) { comp['setPermissionService'](_this); // comp['setRules'](this.rules); })); }; Object.defineProperty(PermissionsService.prototype, "rules", { get: /** * @return {?} */ function () { return this._rules; }, set: /** * @param {?} rules * @return {?} */ function (rules) { this._rules = rules; if (Util.isBrowser()) { dispatchEvent(new CustomEvent('permissionsRulesChange', { detail: { rules: this._rules } })); } }, enumerable: true, configurable: true }); Object.defineProperty(PermissionsService.prototype, "roles", { get: /** * @return {?} */ function () { return this._roles; }, enumerable: true, configurable: true }); Object.defineProperty(PermissionsService.prototype, "user", { get: /** * @return {?} */ function () { return this._user; }, set: /** * @param {?} user * @return {?} */ function (user) { this._user = user; }, enumerable: true, configurable: true }); Object.defineProperty(PermissionsService.prototype, "type", { get: /** * @return {?} */ function () { return this._type; }, set: /** * @param {?} value * @return {?} */ function (value) { this._type = value; }, enumerable: true, configurable: true }); return PermissionsService; }()); export { PermissionsService }; if (false) { /** @type {?} */ PermissionsService.prototype._type; /** @type {?} */ PermissionsService.prototype._roles; /** @type {?} */ PermissionsService.prototype._rules; /** @type {?} */ PermissionsService.prototype._user; /** @type {?} */ PermissionsService.prototype._http; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlbWEvanMtYmFzZS1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7SUFFN0MsU0FBUyxHQUFHLE1BQU0sRUFBRTs7SUFDcEIsaUJBQWlCLEdBQUcsTUFBTSxFQUFFO0FBRWxDO0lBVUksNEJBQVksUUFBUTtRQVBwQixXQUFNLEdBQUc7WUFDTCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQ25ELENBQUM7UUFNRSxJQUFJLFFBQVEsS0FBSyxpQkFBaUIsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLG9CQUFvQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBVyw4QkFBUTs7OztRQUFuQjtZQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDL0Q7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixDQUFDOzs7T0FBQTs7Ozs7OztJQUVLLHNDQUFTOzs7Ozs7SUFBZixVQUFnQixHQUFXLEVBQUUsT0FBYyxFQUFFLEtBQXlCO1FBQXpDLHdCQUFBLEVBQUEsY0FBYztRQUFFLHNCQUFBLEVBQUEsaUJBQXlCOzs7Ozs0QkFDdkQscUJBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUE7O3dCQUFoQyxJQUFJLEdBQUcsU0FBeUI7d0JBQ3BDLElBQUcsS0FBSyxFQUFFOzRCQUNOLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7eUJBQ3JCO3dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDOzs7OztLQUNoQzs7Ozs7O0lBRUQscUNBQVE7Ozs7O0lBQVIsVUFBUyxLQUFZLEVBQUUsT0FBZTtRQUFmLHdCQUFBLEVBQUEsZUFBZTtRQUNsQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsSUFBSSxDQUFDLEtBQUssb0JBQU8sSUFBSSxDQUFDLEtBQUssRUFBSyxLQUFLLENBQUMsQ0FBQTtTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNsQixhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsd0JBQXdCLEVBQUMsRUFBQyxNQUFNLEVBQUMsRUFBQyxLQUFLLEVBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFBO1NBQ3hGO1FBQ0QsdUNBQXVDO0lBQzNDLENBQUM7Ozs7O0lBRUQseURBQTRCOzs7O0lBQTVCLFVBQTZCLGlCQUFrQjtRQUEvQyxpQkFNQzs7WUFMTyxVQUFVLEdBQUcsaUJBQWlCLElBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRyxVQUFVLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsSUFBSTtZQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQztZQUNuQyxnQ0FBZ0M7UUFDcEMsQ0FBQyxFQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsc0JBQUkscUNBQUs7Ozs7UUFBVDtZQUNJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7OztRQWNELFVBQVUsS0FBWTtZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakIsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLHdCQUF3QixFQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUMsS0FBSyxFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQTthQUN6RjtRQUNMLENBQUM7OztPQW5CQTtJQUVELHNCQUFJLHFDQUFLOzs7O1FBQVQ7WUFDSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxvQ0FBSTs7OztRQUFSO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7Ozs7O1FBRUQsVUFBUyxJQUFVO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQzs7O09BSkE7SUFhRCxzQkFBSSxvQ0FBSTs7OztRQUFSO1lBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RCLENBQUM7Ozs7O1FBRUQsVUFBUyxLQUFLO1lBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzs7O09BSkE7SUFNTCx5QkFBQztBQUFELENBQUMsQUFyRkQsSUFxRkM7Ozs7SUFuRkcsbUNBQWM7O0lBQ2Qsb0NBRUU7O0lBQ0Ysb0NBQWM7O0lBQ2QsbUNBQVk7O0lBQ1osbUNBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uL3VzZXJzL3VzZXInO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9odHRwL2h0dHAtc2VydmljZSc7XG5cbmNvbnN0IHNpbmdsZXRvbiA9IFN5bWJvbCgpO1xuY29uc3Qgc2luZ2xldG9uRW5mb3JjZXIgPSBTeW1ib2woKTtcblxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zU2VydmljZSB7XG5cbiAgICBfdHlwZTogc3RyaW5nO1xuICAgIF9yb2xlcyA9IHtcbiAgICAgICAgQU5PTllNT1VTOiBbeyBhY3Rpb25zOiAncmVhZCcsIHN1YmplY3Q6ICdhbGwnIH1dXG4gICAgfTtcbiAgICBfcnVsZXM6IGFueVtdO1xuICAgIF91c2VyOiBVc2VyO1xuICAgIF9odHRwOiBIdHRwU2VydmljZTtcblxuICAgIGNvbnN0cnVjdG9yKGVuZm9yY2VyKSB7XG4gICAgICAgIGlmIChlbmZvcmNlciAhPT0gc2luZ2xldG9uRW5mb3JjZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNvbnN0cnVjdCBzaW5nbGV0b24nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90eXBlID0gJ1Blcm1pc3Npb25zU2VydmljZSc7XG4gICAgICAgIHRoaXMuX2h0dHAgPSBIdHRwU2VydmljZS5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSB0aGlzLl9yb2xlcy5BTk9OWU1PVVM7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldCBpbnN0YW5jZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzW3NpbmdsZXRvbl0pIHtcbiAgICAgICAgICAgIHRoaXNbc2luZ2xldG9uXSA9IG5ldyBQZXJtaXNzaW9uc1NlcnZpY2Uoc2luZ2xldG9uRW5mb3JjZXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzW3NpbmdsZXRvbl07XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZFJ1bGVzKHVybDogc3RyaW5nLCByZXBsYWNlID0gdHJ1ZSwgcGx1Y2s6IHN0cmluZyA9IHVuZGVmaW5lZCkge1xuICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMuX2h0dHAuZ2V0KHVybCk7XG4gICAgICAgIGlmKHBsdWNrKSB7XG4gICAgICAgICAgICBkYXRhID0gZGF0YVtwbHVja11cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFkZFJ1bGVzKGRhdGEsIHJlcGxhY2UpO1xuICAgIH1cblxuICAgIGFkZFJ1bGVzKHJ1bGVzOiBhbnlbXSwgcmVwbGFjZSA9IGZhbHNlKSB7XG4gICAgICAgIGlmICghcmVwbGFjZSkge1xuICAgICAgICAgICAgdGhpcy5ydWxlcyA9IFsuLi50aGlzLnJ1bGVzLCAuLi5ydWxlc11cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucnVsZXMgPSBydWxlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAoVXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Blcm1pc3Npb25zUnVsZXNDaGFuZ2UnLHtkZXRhaWw6e3J1bGVzOnRoaXMucnVsZXMgfX0pKVxuICAgICAgICB9XG4gICAgICAgIC8vIHRoaXMucmVnaXN0ZXJQZXJtaXNzaW9uQ29tcG9uZW50cygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyUGVybWlzc2lvbkNvbXBvbmVudHMoY29tcG9uZW50RWxlbWVudHM/KSB7XG4gICAgICAgIGxldCBjb21wb25lbnRzID0gY29tcG9uZW50RWxlbWVudHMgfHwgIEFycmF5LmZyb20oZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2VtYS1wZXJtaXNzaW9uJykpO1xuICAgICAgICBjb21wb25lbnRzLmZvckVhY2goKGNvbXApID0+IHtcbiAgICAgICAgICAgIGNvbXBbJ3NldFBlcm1pc3Npb25TZXJ2aWNlJ10odGhpcyk7XG4gICAgICAgICAgICAvLyBjb21wWydzZXRSdWxlcyddKHRoaXMucnVsZXMpO1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGdldCBydWxlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bGVzO1xuICAgIH1cblxuICAgIGdldCByb2xlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvbGVzO1xuICAgIH1cblxuICAgIGdldCB1c2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlcjtcbiAgICB9XG5cbiAgICBzZXQgdXNlcih1c2VyOiBVc2VyKSB7XG4gICAgICAgIHRoaXMuX3VzZXIgPSB1c2VyO1xuICAgIH1cblxuICAgIHNldCBydWxlcyhydWxlczogYW55W10pIHtcbiAgICAgICAgdGhpcy5fcnVsZXMgPSBydWxlcztcbiAgICAgICAgaWYoVXRpbC5pc0Jyb3dzZXIoKSkge1xuICAgICAgICAgICAgZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoJ3Blcm1pc3Npb25zUnVsZXNDaGFuZ2UnLHtkZXRhaWw6e3J1bGVzOnRoaXMuX3J1bGVzIH19KSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBzZXQgdHlwZSh2YWx1ZSkge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgfVxuXG59XG4iXX0=