@firestitch/app-acl 9.0.18 → 9.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/components/acl-entries/acl-entries.component.d.ts +27 -27
- package/app/components/acl-entry/acl-entry.component.d.ts +23 -23
- package/app/components/acl-entry/index.d.ts +1 -1
- package/app/components/acl-object-roles/acl-object-roles.component.d.ts +14 -14
- package/app/components/acl-permission-popover/acl-permission-popover.component.d.ts +9 -9
- package/app/components/acl-permission-popover/index.d.ts +1 -1
- package/app/components/acl-role/acl-role.component.d.ts +43 -42
- package/app/components/acl-role-popover/acl-role-popover.component.d.ts +10 -10
- package/app/components/acl-roles/acl-roles.component.d.ts +31 -31
- package/app/consts/acl-role-accesses.d.ts +5 -5
- package/app/enums/acl-role-access.d.ts +6 -6
- package/app/enums/index.d.ts +1 -1
- package/app/fs-app-acl.module.d.ts +4 -4
- package/app/injectors/app-acl-config.injector.d.ts +2 -2
- package/app/injectors/index.d.ts +1 -1
- package/app/interfaces/acl-entry-data.d.ts +11 -11
- package/app/interfaces/acl-entry.d.ts +18 -18
- package/app/interfaces/acl-level.d.ts +3 -3
- package/app/interfaces/acl-object-entry.d.ts +11 -11
- package/app/interfaces/acl-object-role.d.ts +6 -6
- package/app/interfaces/acl-object.d.ts +4 -4
- package/app/interfaces/acl-permission.d.ts +7 -7
- package/app/interfaces/acl-role.d.ts +15 -15
- package/app/interfaces/app-acl-config.d.ts +7 -7
- package/app/interfaces/index.d.ts +11 -11
- package/app/interfaces/name-value.d.ts +4 -4
- package/app/services/app-acl.service.d.ts +13 -13
- package/app/services/index.d.ts +1 -1
- package/bundles/firestitch-app-acl.umd.js +854 -850
- package/bundles/firestitch-app-acl.umd.js.map +1 -1
- package/bundles/firestitch-app-acl.umd.min.js +2 -2
- package/bundles/firestitch-app-acl.umd.min.js.map +1 -1
- package/esm2015/app/components/acl-entries/acl-entries.component.js +176 -176
- package/esm2015/app/components/acl-entry/acl-entry.component.js +87 -87
- package/esm2015/app/components/acl-entry/index.js +1 -1
- package/esm2015/app/components/acl-object-roles/acl-object-roles.component.js +62 -62
- package/esm2015/app/components/acl-permission-popover/acl-permission-popover.component.js +34 -34
- package/esm2015/app/components/acl-permission-popover/index.js +1 -1
- package/esm2015/app/components/acl-role/acl-role.component.js +191 -187
- package/esm2015/app/components/acl-role-popover/acl-role-popover.component.js +40 -40
- package/esm2015/app/components/acl-roles/acl-roles.component.js +157 -157
- package/esm2015/app/consts/acl-role-accesses.js +7 -7
- package/esm2015/app/enums/acl-role-access.js +7 -7
- package/esm2015/app/enums/index.js +3 -3
- package/esm2015/app/fs-app-acl.module.js +81 -81
- package/esm2015/app/injectors/app-acl-config.injector.js +2 -2
- package/esm2015/app/injectors/index.js +3 -3
- package/esm2015/app/interfaces/index.js +1 -1
- package/esm2015/app/services/app-acl.service.js +80 -80
- package/esm2015/app/services/index.js +1 -1
- package/esm2015/firestitch-app-acl.js +10 -10
- package/esm2015/public_api.js +5 -5
- package/esm5/app/components/acl-entries/acl-entries.component.js +179 -179
- package/esm5/app/components/acl-entry/acl-entry.component.js +92 -92
- package/esm5/app/components/acl-entry/index.js +1 -1
- package/esm5/app/components/acl-object-roles/acl-object-roles.component.js +63 -63
- package/esm5/app/components/acl-permission-popover/acl-permission-popover.component.js +36 -36
- package/esm5/app/components/acl-permission-popover/index.js +1 -1
- package/esm5/app/components/acl-role/acl-role.component.js +201 -197
- package/esm5/app/components/acl-role-popover/acl-role-popover.component.js +42 -42
- package/esm5/app/components/acl-roles/acl-roles.component.js +162 -162
- package/esm5/app/consts/acl-role-accesses.js +7 -7
- package/esm5/app/enums/acl-role-access.js +7 -7
- package/esm5/app/enums/index.js +3 -3
- package/esm5/app/fs-app-acl.module.js +85 -85
- package/esm5/app/injectors/app-acl-config.injector.js +2 -2
- package/esm5/app/injectors/index.js +3 -3
- package/esm5/app/interfaces/index.js +1 -1
- package/esm5/app/services/app-acl.service.js +85 -85
- package/esm5/app/services/index.js +1 -1
- package/esm5/firestitch-app-acl.js +10 -10
- package/esm5/public_api.js +5 -5
- package/fesm2015/firestitch-app-acl.js +821 -817
- package/fesm2015/firestitch-app-acl.js.map +1 -1
- package/fesm5/firestitch-app-acl.js +858 -854
- package/fesm5/firestitch-app-acl.js.map +1 -1
- package/firestitch-app-acl.d.ts +11 -11
- package/firestitch-app-acl.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/app-acl/app/enums/acl-role-access.ts","ng://@firestitch/app-acl/app/consts/acl-role-accesses.ts","ng://@firestitch/app-acl/app/injectors/app-acl-config.injector.ts","ng://@firestitch/app-acl/app/services/app-acl.service.ts","ng://@firestitch/app-acl/app/components/acl-role/acl-role.component.ts","ng://@firestitch/app-acl/app/components/acl-roles/acl-roles.component.ts","ng://@firestitch/app-acl/app/components/acl-permission-popover/acl-permission-popover.component.ts","ng://@firestitch/app-acl/app/components/acl-role-popover/acl-role-popover.component.ts","ng://@firestitch/app-acl/app/components/acl-entry/acl-entry.component.ts","ng://@firestitch/app-acl/app/components/acl-entries/acl-entries.component.ts","ng://@firestitch/app-acl/app/components/acl-object-roles/acl-object-roles.component.ts","ng://@firestitch/app-acl/app/fs-app-acl.module.ts"],"names":["AclRoleAccess","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","AclRoleAccesses","name","None","Read","Write","Full","FS_APP_ACL_CONFIG","InjectionToken","snakecaseKeys","_snakecaseKeys","camelcaseKeys","_camelcaseKeys","FsAppAclService","_appAclConfig","getPermissions","_this","_permissions$","ReplaySubject","permissions","pipe","map","data","input","subscribe","complete","getLevels","_levels$","levels","getIndexedLevels","list","isArray","item","case","deep","output","Inject","args","Injectable","providedIn","FsAclRoleComponent","_appAclService","_dialogRef","_message","_data","aclRole","levelPermissions","indexedAccesses","aclLevels","indexedAclLevels","onlyFullAccess","AclLevels","aclRoleConfigs","levelAclRoleConfigs","_destroy$","Subject","save","permission","access","id","saveAclRole","tap","response","success","close","ngOnInit","forkJoin","getRole","takeUntil","_a","_b","aclPermissions","allPermissions","level","forEach","aclPermission","find","_applyMaxPermissionAccess","_updatePermissions","_updateAclRoleConfigs","listConfig","status","paging","noResults","message","group","initialExpand","groupBy","compareBy","category","fetch","of","sort","a","b","toUpperCase","levelChange","setTimeout","reload","query","environment","environmentId","loadAclRole","allPermissionsChange","all","ngOnDestroy","filter","some","Math","max","concat","__spread","accesses","MatDialogRef","FsMessage","MAT_DIALOG_DATA","ViewChild","FsListComponent","Component","template","FsAclRolesComponent","_dialog","_cdRef","QueryList","indexedAclRoleLevels","Observable","observer","_loadListConfig","openDialog","open","width","afterClosed","filters","type","ItemType","Keyword","label","Select","values","hide","Checkbox","unchecked","checked","actions","click","event","rowActions","deleteAclRole","remove","title","menu","show","row","state","loadAclRoles","MatDialog","ChangeDetectorRef","Input","ViewChildren","selector","changeDetection","ChangeDetectionStrategy","OnPush","FsAclPermissionPopoverComponent","description","FsAclRolePopoverComponent","aclRolePermissions","FsAclEntryComponent","aclRoles","titleEdit","titleAdd","required","saveAclObjectEntry","aclObjectEntry","aclObjectRole","object","aclEntries","aclEntry","aclObjectRoleChange","aclObjectRoles","reduce","aclRoleId","objectId","FsAclEntriesComponent","_confirm","environmentShow","environmentLabel","aclEntriesList","aclEntriesConfig","confirm","loadAclEntries","objects","aclRoleState","items","environments","grouped","forOwn","split","parseInt","entry","unshift","sortBy","update","FsPrompt","FsAclObjectRolesComponent","multiple","disabled","rolesLabel","levelLabel","change","EventEmitter","compareAclRole","o1","o2","changed","emit","Output","viewProviders","provide","ControlContainer","useExisting","NgForm","FsAppAclModule","forRoot","ngModule","FsAppAclModule_1","NgModule","imports","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum AclRoleAccess {\n None = 0,\n Read = 5,\n Write = 10,\n Full = 15,\n}\n","\nimport { AclRoleAccess } from '../enums';\n\nexport const AclRoleAccesses = [\n { name: 'None', value: AclRoleAccess.None },\n { name: 'Read', value: AclRoleAccess.Read },\n { name: 'Write', value: AclRoleAccess.Write },\n { name: 'Full', value: AclRoleAccess.Full }\n];\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_ACL_CONFIG = new InjectionToken<any[]>('fs-app-acl-config');\n","import { Injectable, Inject } from '@angular/core';\n\nimport { list } from '@firestitch/common';\n\nimport { map } from 'rxjs/operators';\nimport { ReplaySubject } from 'rxjs';\n\nimport { isArray } from 'lodash-es';\n\n\nimport { FS_APP_ACL_CONFIG } from './../injectors/app-acl-config.injector';\nimport { AppAclConfig, AclPermission, AclLevel } from './../interfaces';\n\nimport * as _snakecaseKeys from 'snakecase-keys';\nimport * as _camelcaseKeys from 'camelcase-keys';\n\nconst snakecaseKeys = _snakecaseKeys;\nconst camelcaseKeys = _camelcaseKeys;\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsAppAclService {\n\n private _permissions$: ReplaySubject<AclPermission[]>;\n private _levels$: ReplaySubject<AclLevel[]>;\n\n constructor(\n @Inject(FS_APP_ACL_CONFIG) private _appAclConfig: AppAclConfig,\n ) { }\n\n public getPermissions() {\n\n if (!this._permissions$) {\n this._permissions$ = new ReplaySubject();\n\n this._appAclConfig.permissions\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((permissions) => {\n this._permissions$.next(permissions);\n this._permissions$.complete();\n });\n }\n\n return this._permissions$;\n }\n\n public getLevels() {\n\n if (!this._levels$) {\n this._levels$ = new ReplaySubject();\n\n this._appAclConfig.levels\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((levels) => {\n this._levels$.next(levels);\n this._levels$.complete();\n });\n }\n\n return this._levels$;\n }\n\n\n public getIndexedLevels() {\n return this.getLevels()\n .pipe(\n map((data) => {\n return list(data, 'name', 'value');\n })\n );\n }\n\n public input(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(data, { deep: true }) : data;\n }\n }\n\n public output(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(data, { deep: true }) : data;\n }\n }\n}\n","import { Component, Inject, OnInit, ViewChild, OnDestroy } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { AclRoleAccesses } from './../../consts/acl-role-accesses';\nimport { AclRole } from './../../interfaces';\nimport { tap, takeUntil, map } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { list } from '@firestitch/common';\nimport { FsListConfig, FsListComponent } from '@firestitch/list';\n\nimport { of, Observable, forkJoin, Subject } from 'rxjs';\nimport { FsAppAclService } from './../../services';\n\n\n@Component({\n templateUrl: './acl-role.component.html',\n styleUrls: ['./acl-role.component.scss']\n})\nexport class FsAclRoleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent) public list: FsListComponent;\n\n public aclRole: AclRole = null;\n public environment;\n public permissions: any[] = [];\n public listConfig: FsListConfig;\n public levelPermissions = [];\n public AclRoleAccesses = AclRoleAccesses;\n public indexedAccesses = {};\n public aclLevels: any[] = [];\n public indexedAclLevels = {};\n public onlyFullAccess = false;\n public AclLevels = {};\n public aclRoleConfigs = [];\n public levelAclRoleConfigs = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n ) {}\n\n public ngOnInit(): void {\n forkJoin(\n this.getRole(),\n this._appAclService.getPermissions(),\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(([\n aclRole,\n aclPermissions,\n ]) => {\n\n this.permissions = aclPermissions;\n this.aclLevels = this._data.aclLevels;\n\n this.indexedAclLevels = list(this.aclLevels, 'name', 'value');\n this.indexedAccesses = list(AclRoleAccesses, 'name', 'value');\n\n this.aclRole = {\n ...{\n aclPermissions: [],\n allPermissions: true,\n aclRoleConfigs: [],\n permissions: {},\n level: this.aclLevels[0].value,\n },\n ...aclRole,\n };\n\n if (this.aclRole.id) {\n this.permissions.forEach((permission) => {\n let access = 0;\n\n const aclPermission = this.aclRole.aclPermissions.find((item) => {\n return item.permission === permission.value;\n });\n\n if (aclPermission) {\n access = aclPermission.access;\n }\n\n this.aclRole.permissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateAclRoleConfigs();\n });\n\n this.listConfig = {\n status: false,\n paging: false,\n noResults: {\n message: '',\n },\n group: {\n initialExpand: true,\n groupBy: (data) => {\n return data;\n },\n compareBy: (data) => {\n return data.category || 'General';\n },\n },\n fetch: () => {\n return of({\n data: this.levelPermissions.sort((a, b) => {\n a = a.name.toUpperCase();\n b = b.name.toUpperCase();\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n\n return 0;\n }),\n });\n },\n };\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateAclRoleConfigs();\n setTimeout(() => {\n this.list.reload();\n });\n }\n\n public getRole(): Observable<any> {\n if (!this._data.aclRole.id) {\n return of(this._data.aclRole);\n }\n\n const query: any = {\n aclPermissions: true,\n aclRoleConfigs: true,\n };\n\n if (!this.environment) {\n query.environmentId = null;\n }\n\n return this._data.loadAclRole(this._data.aclRole, query)\n .pipe(\n map((data) => this._appAclService.input(data)),\n );\n }\n\n public save = (): Observable<any> => {\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRole.permissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs: this.levelAclRoleConfigs.map((item) => {\n return {\n id: item.id,\n value: item.value,\n data: item.data,\n };\n }),\n };\n\n return this._data.saveAclRole(this._appAclService.output(aclRole))\n .pipe(\n tap((response) => {\n this._message.success('Saved Changes');\n this.close(response);\n }),\n );\n }\n\n public close(data: any = null): void {\n this._dialogRef.close(data);\n }\n\n public allPermissionsChange(all: boolean): void {\n this._updatePermissions();\n if (all) {\n this._applyMaxPermissionAccess();\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _updatePermissions(): void {\n this.levelPermissions = this.permissions.filter((permission) => {\n return permission.levels.some((item) => {\n return item === this.aclRole.level;\n });\n });\n }\n\n private _updateAclRoleConfigs(): void {\n this.levelAclRoleConfigs = this.aclRoleConfigs.filter((item) => {\n return this.aclRole.level === item.level;\n });\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRole.permissions[permission.value] = Math.max(...permission.accesses);\n });\n }\n\n}\n","import { takeUntil, filter, map } from 'rxjs/operators';\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, ViewChildren, QueryList } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { list } from '@firestitch/common';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { AclRole, AclLevel } from './../../interfaces';\nimport { FsAclRoleComponent } from '../acl-role/acl-role.component';\nimport { FsAppAclService } from '../../services';\n\n@Component({\n selector: 'fs-acl-roles',\n templateUrl: 'acl-roles.component.html',\n styleUrls: [ 'acl-roles.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRolesComponent implements OnInit, OnDestroy {\n\n @Input() deleteAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() saveAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() loadAclRoles: (query: any) => Observable<{ data: AclRole[], paging: any }>;\n @Input() loadAclRole: (aclRole: AclRole, query) => Observable<AclRole>;\n @Input() aclLevels: AclLevel[] = [];\n\n @ViewChildren(FsListComponent)\n public list = new QueryList<FsListComponent>();\n\n public listConfig: FsListConfig;\n public permissions;\n public indexedAclRoleLevels: { [value: string]: string } = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private readonly _cdRef: ChangeDetectorRef,\n ) { }\n\n public ngOnInit(): void {\n\n new Observable(observer => {\n\n if (this.aclLevels.length) {\n observer.next(this.aclLevels);\n observer.complete();\n } else {\n\n this._appAclService.getLevels()\n .subscribe((aclLevels: AclLevel[]) => {\n observer.next(aclLevels);\n observer.complete();\n });\n }\n })\n .subscribe((aclLevels: AclLevel[]) => {\n this.aclLevels = aclLevels;\n this.indexedAclRoleLevels = list(this.aclLevels, 'name', 'value');\n this._loadListConfig();\n });\n }\n\n public openDialog(aclRole: AclRole = { id: null }): void {\n\n const dialogRef = this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n filter((response) => !!response),\n )\n .subscribe((response) => {\n this.list.forEach((list: FsListComponent) => {\n list.reload();\n });\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _loadListConfig() {\n this.listConfig = {\n sort: { value: 'hierarchy' },\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'level',\n label: 'Level',\n type: ItemType.Select,\n values: this.aclLevels,\n hide: this.aclLevels.length <= 1\n },\n {\n name: 'state',\n label: 'Show Deleted',\n type: ItemType.Checkbox,\n unchecked: 'active',\n checked: 'deleted',\n },\n ],\n actions: [\n {\n click: (event) => {\n this.openDialog();\n },\n label: 'Create',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this.deleteAclRole(this._appAclService.output(data));\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this role?',\n },\n menu: true,\n label: 'Delete',\n show: (row) => row.state !== 'deleted',\n },\n ],\n fetch: (query) => {\n query.permissions = true;\n return this.loadAclRoles(query)\n .pipe(\n map((data) => this._appAclService.input(data))\n );\n },\n };\n }\n\n}\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'acl-permission-popover',\n templateUrl: './acl-permission-popover.component.html',\n styleUrls: ['./acl-permission-popover.component.scss']\n})\nexport class FsAclPermissionPopoverComponent implements OnInit {\n\n @Input() permission;\n\n public description;\n\n public constructor(\n private _appAclService: FsAppAclService\n ) { }\n\n public ngOnInit() {\n this._appAclService.getPermissions()\n .subscribe(permissions => {\n this.description = permissions.filter(item => {\n return item.value === this.permission.value;\n }).map(item => {\n return item.description;\n })[0];\n });\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FsAppAclService } from './../../services';\n\n@Component({\n selector: 'fs-acl-role-popover',\n templateUrl: './acl-role-popover.component.html',\n styleUrls: ['./acl-role-popover.component.scss']\n})\nexport class FsAclRolePopoverComponent implements OnInit {\n\n @Input() aclRole;\n @Input() objectName;\n\n public permissions = [];\n\n public constructor(\n private readonly _appAclService: FsAppAclService,\n ) {}\n\n public ngOnInit() {\n const aclRolePermissions = this.aclRole.permissions || [];\n\n this._appAclService.getPermissions()\n .subscribe((response) => {\n this.permissions = response.filter(item => {\n return aclRolePermissions.some(permission => {\n return item.value === permission.value;\n });\n });\n });\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { map } from 'rxjs/operators';\nimport { forkJoin } from 'rxjs';\n\nimport { AclRole, AclEntryData, AclObjectRole, AclObjectEntry, AclEntry } from './../../interfaces';\nimport { FsAppAclService } from './../../services';\n\n\n@Component({\n templateUrl: './acl-entry.component.html',\n styleUrls: ['./acl-entry.component.scss'],\n})\nexport class FsAclEntryComponent implements OnInit {\n\n public aclRoles: AclRole[] = [];\n public aclObjectEntry: AclObjectEntry;\n public aclObjectRole: AclObjectRole;\n public indexedAclRoleLevels = {};\n public titleEdit = 'Edit Roles';\n public titleAdd = 'Assign Roles';\n public required = true;\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclEntryComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: AclEntryData\n ) {\n this.aclObjectEntry = { ..._data.aclObjectEntry };\n this.required = _data.required ?? true;\n\n if (_data.titleEdit) {\n this.titleEdit = _data.titleEdit;\n }\n\n if (_data.titleAdd) {\n this.titleAdd = _data.titleAdd;\n }\n }\n\n public save = () => {\n return this._data.saveAclObjectEntry(this._appAclService.output(this.aclObjectEntry))\n .subscribe((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n })\n }\n\n public ngOnInit() {\n forkJoin(\n this._data.loadAclRoles({\n level: this.aclObjectEntry.level,\n environmentId: this.aclObjectEntry.environmentId,\n })\n .pipe(\n map((data) => this._appAclService.input(data)),\n ),\n this._appAclService.getIndexedLevels()\n )\n .subscribe(([\n aclRoles,\n levels,\n ]) => {\n\n this.aclRoles = aclRoles;\n this.indexedAclRoleLevels = levels;\n\n this.aclObjectRole = {\n object: this.aclObjectEntry.object,\n aclRoles: this.aclObjectEntry.aclEntries\n .map((aclEntry: AclEntry) => {\n return aclEntry.aclRole;\n })\n };\n });\n }\n\n public aclObjectRoleChange(aclObjectRoles: AclObjectRole[]) {\n\n this.aclObjectEntry.aclEntries = aclObjectRoles.reduce((aclEntries, aclObjectRole) => {\n aclObjectRole.aclRoles.forEach(aclRole => {\n aclEntries.push({\n aclRoleId: aclRole.id,\n aclRole: aclRole,\n objectId: aclObjectRole.object ? aclObjectRole.object.id : null,\n object: aclObjectRole.object || null\n });\n });\n\n return aclEntries;\n }, []);\n }\n\n public close(data = null) {\n this._dialogRef.close(data);\n }\n\n}\n","import { takeUntil, map } from 'rxjs/operators';\nimport { Component, OnInit, ViewChild, OnDestroy, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { sortBy, groupBy, forOwn } from 'lodash-es';\n\nimport { FsListAction, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsAppAclService } from '../../services';\nimport { AclEntry, AclEntryData, AclRole, AclObjectEntry } from '../../interfaces';\nimport { FsAclEntryComponent } from '../acl-entry';\nimport { FsPrompt } from '@firestitch/prompt';\n\n\n@Component({\n selector: 'fs-acl-entries',\n templateUrl: './acl-entries.component.html',\n styleUrls: ['./acl-entries.component.scss']\n})\nexport class FsAclEntriesComponent implements OnInit, OnDestroy {\n\n @Input() public loadAclEntries: (query: any) => Observable<AclEntry[]>;\n @Input() public loadAclRoles: (query: any) => Observable<AclRole[]>;\n @Input() public saveAclObjectEntry: (aclObjectEntry: AclObjectEntry) => Observable<any>;\n @Input() public environmentShow = true;\n @Input() public environmentLabel = 'Environment';\n @Input() public actions: FsListAction[] = [];\n\n @ViewChild(FsListComponent)\n public aclEntriesList: FsListComponent = null;\n\n public aclEntriesConfig: FsListConfig = null;\n public permissions: any[] = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private _confirm: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._appAclService.getPermissions()\n .subscribe(response => {\n this.permissions = response;\n });\n\n this.aclEntriesConfig = {\n status: false,\n paging: false,\n actions: this.actions,\n rowActions: [\n {\n label: 'Remove All Roles',\n click: (aclObjectEntry: AclObjectEntry) => {\n this._confirm\n .confirm({\n title: 'Remove All Roles',\n template: 'Are you sure you would like to remove all roles?',\n }).subscribe(() => {\n const data = this._appAclService.output({ ...aclObjectEntry, aclEntries: [] });\n this.saveAclObjectEntry(data)\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n });\n }\n }\n ],\n fetch: () => {\n return new Observable((observer) => {\n this.loadAclEntries({\n aclRoles: true,\n aclRolePermissions: true,\n objects: true,\n aclRoleState: 'active',\n })\n .pipe(\n map((response) => this._appAclService.input(response)),\n )\n .subscribe((aclEntries: AclEntry[]) => {\n const objects = aclEntries.reduce((items, item) => {\n if (item.object) {\n items[item.object.id] = item.object;\n }\n return items;\n }, {});\n\n const environments = aclEntries.reduce((items, item) => {\n if (item.environment) {\n items[item.environment.id] = item.environment;\n }\n return items;\n }, {});\n\n let aclObjectEntry: AclObjectEntry[] = [];\n const grouped = groupBy(aclEntries, (item) => {\n return [item.aclRole.level, item.environmentId, item.objectId];\n });\n\n forOwn(grouped, (group, key) => {\n key = key.split(',');\n aclObjectEntry.push({\n object: objects[key[2]],\n level: key[0],\n environmentId: key[1] ? parseInt(key[1]) : null,\n environment: environments[key[1]],\n aclEntries: group,\n });\n });\n\n const hasApp = aclObjectEntry.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntry.unshift({\n object: null, aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntry = sortBy(aclObjectEntry, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntry });\n observer.complete();\n });\n });\n },\n };\n }\n\n public update(aclObjectEntry: AclObjectEntry) {\n\n const data: AclEntryData = {\n aclObjectEntry: aclObjectEntry,\n required: false,\n loadAclRoles: this.loadAclRoles,\n saveAclObjectEntry: this.saveAclObjectEntry\n }\n\n this._dialog.open(FsAclEntryComponent, {\n data: data\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public reload(): void {\n this.aclEntriesList.reload();\n }\n\n}\n","import { ControlContainer, NgForm } from '@angular/forms';\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\n\nimport { AclObjectRole, AclRole } from '../../interfaces';\n\n\n@Component({\n selector: 'fs-acl-object-roles',\n templateUrl: './acl-object-roles.component.html',\n styleUrls: ['./acl-object-roles.component.scss'],\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class FsAclObjectRolesComponent {\n\n @Input() aclRoles: AclRole[] = [];\n @Input() required = false;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() aclObjectRoles: AclObjectRole[] = [];\n @Input() rolesLabel = 'Roles';\n @Input() levelLabel = '';\n @Output() change = new EventEmitter<AclObjectRole[]>();\n\n public compareAclRole = (o1: any, o2: any) => {\n return o1 && o2 && o1.id === o2.id;\n }\n\n public changed() {\n this.change.emit(this.aclObjectRoles);\n }\n}\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AppAclConfig } from './interfaces/app-acl-config';\nimport { FS_APP_ACL_CONFIG } from './injectors/app-acl-config.injector';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPopoverModule } from '@firestitch/popover';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { FsCheckboxGroupModule } from '@firestitch/checkboxgroup';\n\nimport { FsAclRolesComponent } from './components/acl-roles/acl-roles.component';\nimport { FsAclPermissionPopoverComponent } from './components/acl-permission-popover';\nimport { FsAclRolePopoverComponent } from './components/acl-role-popover/acl-role-popover.component';\nimport { FsAclEntriesComponent } from './components/acl-entries/acl-entries.component';\nimport { FsAclRoleComponent } from './components/acl-role/acl-role.component';\nimport { FsAclObjectRolesComponent } from './components/acl-object-roles/acl-object-roles.component';\nimport { FsAclEntryComponent } from './components/acl-entry/acl-entry.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatSelectModule,\n MatButtonModule,\n MatRadioModule,\n MatInputModule,\n FlexLayoutModule,\n\n FsListModule,\n FsPopoverModule,\n FsDialogModule,\n FsFormModule,\n FsLabelModule,\n FsRadioGroupModule,\n FsBadgeModule,\n FsCheckboxGroupModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n exports: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n entryComponents: [\n FsAclRoleComponent\n ]\n})\nexport class FsAppAclModule {\n static forRoot(): ModuleWithProviders<FsAppAclModule> {\n return {\n ngModule: FsAppAclModule,\n // providers: [\n // { provide: FS_APP_ACL_CONFIG, useValue: config || {} }\n // ]\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@firestitch/app-acl/app/enums/acl-role-access.ts","ng://@firestitch/app-acl/app/consts/acl-role-accesses.ts","ng://@firestitch/app-acl/app/injectors/app-acl-config.injector.ts","ng://@firestitch/app-acl/app/services/app-acl.service.ts","ng://@firestitch/app-acl/app/components/acl-role/acl-role.component.ts","ng://@firestitch/app-acl/app/components/acl-roles/acl-roles.component.ts","ng://@firestitch/app-acl/app/components/acl-permission-popover/acl-permission-popover.component.ts","ng://@firestitch/app-acl/app/components/acl-role-popover/acl-role-popover.component.ts","ng://@firestitch/app-acl/app/components/acl-entry/acl-entry.component.ts","ng://@firestitch/app-acl/app/components/acl-entries/acl-entries.component.ts","ng://@firestitch/app-acl/app/components/acl-object-roles/acl-object-roles.component.ts","ng://@firestitch/app-acl/app/fs-app-acl.module.ts"],"names":["AclRoleAccess","__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__decorate","decorators","target","key","desc","d","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","AclRoleAccesses","name","None","Read","Write","Full","FS_APP_ACL_CONFIG","InjectionToken","snakecaseKeys","_snakecaseKeys","camelcaseKeys","_camelcaseKeys","FsAppAclService","_appAclConfig","getPermissions","_this","_permissions$","ReplaySubject","permissions","pipe","map","data","input","subscribe","complete","getLevels","_levels$","levels","getIndexedLevels","list","isArray","item","case","deep","output","Inject","args","Injectable","providedIn","FsAclRoleComponent","_appAclService","_dialogRef","_message","_data","_cdRef","aclRole","levelPermissions","indexedAccesses","aclLevels","indexedAclLevels","onlyFullAccess","AclLevels","aclRoleConfigs","levelAclRoleConfigs","_destroy$","Subject","save","permission","access","id","saveAclRole","tap","response","success","close","ngOnInit","forkJoin","getRole","takeUntil","_a","_b","aclPermissions","allPermissions","level","forEach","aclPermission","find","_applyMaxPermissionAccess","_updatePermissions","_updateAclRoleConfigs","markForCheck","listConfig","status","paging","noResults","message","group","initialExpand","groupBy","compareBy","category","fetch","of","sort","a","b","toUpperCase","levelChange","setTimeout","reload","query","environment","environmentId","loadAclRole","allPermissionsChange","all","ngOnDestroy","filter","some","Math","max","concat","__spread","accesses","MatDialogRef","FsMessage","MAT_DIALOG_DATA","ChangeDetectorRef","ViewChild","FsListComponent","Component","template","changeDetection","ChangeDetectionStrategy","OnPush","FsAclRolesComponent","_dialog","QueryList","indexedAclRoleLevels","Observable","observer","_loadListConfig","openDialog","open","width","afterClosed","filters","type","ItemType","Keyword","label","Select","values","hide","Checkbox","unchecked","checked","actions","click","event","rowActions","deleteAclRole","remove","title","menu","show","row","state","loadAclRoles","MatDialog","Input","ViewChildren","selector","FsAclPermissionPopoverComponent","description","FsAclRolePopoverComponent","aclRolePermissions","FsAclEntryComponent","aclRoles","titleEdit","titleAdd","required","saveAclObjectEntry","aclObjectEntry","aclObjectRole","object","aclEntries","aclEntry","aclObjectRoleChange","aclObjectRoles","reduce","aclRoleId","objectId","FsAclEntriesComponent","_confirm","environmentShow","environmentLabel","aclEntriesList","aclEntriesConfig","confirm","loadAclEntries","objects","aclRoleState","items","environments","grouped","forOwn","split","parseInt","entry","unshift","sortBy","update","FsPrompt","FsAclObjectRolesComponent","multiple","disabled","rolesLabel","levelLabel","change","EventEmitter","compareAclRole","o1","o2","changed","emit","Output","viewProviders","provide","ControlContainer","useExisting","NgForm","FsAppAclModule","forRoot","ngModule","FsAppAclModule_1","NgModule","imports","CommonModule","FormsModule","MatDialogModule","MatFormFieldModule","MatCheckboxModule","MatSelectModule","MatButtonModule","MatRadioModule","MatInputModule","FlexLayoutModule","FsListModule","FsPopoverModule","FsDialogModule","FsFormModule","FsLabelModule","FsRadioGroupModule","FsBadgeModule","FsCheckboxGroupModule","declarations","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export enum AclRoleAccess {\n None = 0,\n Read = 5,\n Write = 10,\n Full = 15,\n}\n","\nimport { AclRoleAccess } from '../enums';\n\nexport const AclRoleAccesses = [\n { name: 'None', value: AclRoleAccess.None },\n { name: 'Read', value: AclRoleAccess.Read },\n { name: 'Write', value: AclRoleAccess.Write },\n { name: 'Full', value: AclRoleAccess.Full }\n];\n","import { InjectionToken } from '@angular/core';\n\nexport const FS_APP_ACL_CONFIG = new InjectionToken<any[]>('fs-app-acl-config');\n","import { Injectable, Inject } from '@angular/core';\n\nimport { list } from '@firestitch/common';\n\nimport { map } from 'rxjs/operators';\nimport { ReplaySubject } from 'rxjs';\n\nimport { isArray } from 'lodash-es';\n\n\nimport { FS_APP_ACL_CONFIG } from './../injectors/app-acl-config.injector';\nimport { AppAclConfig, AclPermission, AclLevel } from './../interfaces';\n\nimport * as _snakecaseKeys from 'snakecase-keys';\nimport * as _camelcaseKeys from 'camelcase-keys';\n\nconst snakecaseKeys = _snakecaseKeys;\nconst camelcaseKeys = _camelcaseKeys;\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsAppAclService {\n\n private _permissions$: ReplaySubject<AclPermission[]>;\n private _levels$: ReplaySubject<AclLevel[]>;\n\n constructor(\n @Inject(FS_APP_ACL_CONFIG) private _appAclConfig: AppAclConfig,\n ) { }\n\n public getPermissions() {\n\n if (!this._permissions$) {\n this._permissions$ = new ReplaySubject();\n\n this._appAclConfig.permissions\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((permissions) => {\n this._permissions$.next(permissions);\n this._permissions$.complete();\n });\n }\n\n return this._permissions$;\n }\n\n public getLevels() {\n\n if (!this._levels$) {\n this._levels$ = new ReplaySubject();\n\n this._appAclConfig.levels\n .pipe(\n map((data) => this.input(data)),\n )\n .subscribe((levels) => {\n this._levels$.next(levels);\n this._levels$.complete();\n });\n }\n\n return this._levels$;\n }\n\n\n public getIndexedLevels() {\n return this.getLevels()\n .pipe(\n map((data) => {\n return list(data, 'name', 'value');\n })\n );\n }\n\n public input(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? camelcaseKeys(data, { deep: true }) : data;\n }\n }\n\n public output(data) {\n if (isArray(data)) {\n return data.map(item => {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(item, { deep: true }) : item;\n });\n } else {\n return this._appAclConfig.case === 'snake' ? snakecaseKeys(data, { deep: true }) : data;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { AclRoleAccesses } from './../../consts/acl-role-accesses';\nimport { AclRole } from './../../interfaces';\nimport { map, takeUntil, tap } from 'rxjs/operators';\n\nimport { FsMessage } from '@firestitch/message';\nimport { list } from '@firestitch/common';\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\n\nimport { forkJoin, Observable, of, Subject } from 'rxjs';\nimport { FsAppAclService } from './../../services';\n\n\n@Component({\n templateUrl: './acl-role.component.html',\n styleUrls: ['./acl-role.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRoleComponent implements OnInit, OnDestroy {\n\n @ViewChild(FsListComponent) public list: FsListComponent;\n\n public aclRole: AclRole = null;\n public environment;\n public permissions: any[] = [];\n public listConfig: FsListConfig;\n public levelPermissions = [];\n public AclRoleAccesses = AclRoleAccesses;\n public indexedAccesses = {};\n public aclLevels: any[] = [];\n public indexedAclLevels = {};\n public onlyFullAccess = false;\n public AclLevels = {};\n public aclRoleConfigs = [];\n public levelAclRoleConfigs = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclRoleComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: any,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit(): void {\n forkJoin(\n this.getRole(),\n this._appAclService.getPermissions(),\n )\n .pipe(takeUntil(this._destroy$))\n .subscribe(([\n aclRole,\n aclPermissions,\n ]) => {\n\n this.permissions = aclPermissions;\n this.aclLevels = this._data.aclLevels;\n\n this.indexedAclLevels = list(this.aclLevels, 'name', 'value');\n this.indexedAccesses = list(AclRoleAccesses, 'name', 'value');\n\n this.aclRole = {\n ...{\n aclPermissions: [],\n allPermissions: true,\n aclRoleConfigs: [],\n permissions: {},\n level: this.aclLevels[0].value,\n },\n ...aclRole,\n };\n\n if (this.aclRole.id) {\n this.permissions.forEach((permission) => {\n let access = 0;\n\n const aclPermission = this.aclRole.aclPermissions.find((item) => {\n return item.permission === permission.value;\n });\n\n if (aclPermission) {\n access = aclPermission.access;\n }\n\n this.aclRole.permissions[permission.value] = access;\n });\n }\n\n if (this.aclRole.allPermissions) {\n this._applyMaxPermissionAccess();\n }\n\n this._updatePermissions();\n this._updateAclRoleConfigs();\n\n this._cdRef.markForCheck();\n });\n\n this.listConfig = {\n status: false,\n paging: false,\n noResults: {\n message: '',\n },\n group: {\n initialExpand: true,\n groupBy: (data) => {\n return data;\n },\n compareBy: (data) => {\n return data.category || 'General';\n },\n },\n fetch: () => {\n return of({\n data: this.levelPermissions.sort((a, b) => {\n a = a.name.toUpperCase();\n b = b.name.toUpperCase();\n if (a < b) {\n return -1;\n } else if (a > b) {\n return 1;\n }\n\n return 0;\n }),\n });\n },\n };\n }\n\n public levelChange(): void {\n this._updatePermissions();\n this._updateAclRoleConfigs();\n setTimeout(() => {\n this.list.reload();\n });\n }\n\n public getRole(): Observable<any> {\n if (!this._data.aclRole.id) {\n return of(this._data.aclRole);\n }\n\n const query: any = {\n aclPermissions: true,\n aclRoleConfigs: true,\n };\n\n if (!this.environment) {\n query.environmentId = null;\n }\n\n return this._data.loadAclRole(this._data.aclRole, query)\n .pipe(\n map((data) => this._appAclService.input(data)),\n );\n }\n\n public save = (): Observable<any> => {\n const aclRole = {\n ...this.aclRole,\n permissions: this.levelPermissions.map((permission) => {\n return {\n value: permission.value,\n access: this.aclRole.permissions[permission.value] || 0,\n };\n }),\n aclRoleConfigs: this.levelAclRoleConfigs.map((item) => {\n return {\n id: item.id,\n value: item.value,\n data: item.data,\n };\n }),\n };\n\n return this._data.saveAclRole(this._appAclService.output(aclRole))\n .pipe(\n tap((response) => {\n this._message.success('Saved Changes');\n this.close(response);\n }),\n );\n }\n\n public close(data: any = null): void {\n this._dialogRef.close(data);\n }\n\n public allPermissionsChange(all: boolean): void {\n this._updatePermissions();\n if (all) {\n this._applyMaxPermissionAccess();\n }\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _updatePermissions(): void {\n this.levelPermissions = this.permissions.filter((permission) => {\n return permission.levels.some((item) => {\n return item === this.aclRole.level;\n });\n });\n }\n\n private _updateAclRoleConfigs(): void {\n this.levelAclRoleConfigs = this.aclRoleConfigs.filter((item) => {\n return this.aclRole.level === item.level;\n });\n }\n\n private _applyMaxPermissionAccess(): void {\n this.permissions.forEach((permission) => {\n this.aclRole.permissions[permission.value] = Math.max(...permission.accesses);\n });\n }\n\n}\n","import { takeUntil, filter, map } from 'rxjs/operators';\nimport { Component, OnInit, OnDestroy, ChangeDetectionStrategy, Input, ChangeDetectorRef, ViewChildren, QueryList } from '@angular/core';\n\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { FsListComponent, FsListConfig } from '@firestitch/list';\nimport { ItemType } from '@firestitch/filter';\nimport { list } from '@firestitch/common';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { AclRole, AclLevel } from './../../interfaces';\nimport { FsAclRoleComponent } from '../acl-role/acl-role.component';\nimport { FsAppAclService } from '../../services';\n\n@Component({\n selector: 'fs-acl-roles',\n templateUrl: 'acl-roles.component.html',\n styleUrls: [ 'acl-roles.component.scss' ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FsAclRolesComponent implements OnInit, OnDestroy {\n\n @Input() deleteAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() saveAclRole: (aclRole: AclRole) => Observable<AclRole>;\n @Input() loadAclRoles: (query: any) => Observable<{ data: AclRole[], paging: any }>;\n @Input() loadAclRole: (aclRole: AclRole, query) => Observable<AclRole>;\n @Input() aclLevels: AclLevel[] = [];\n\n @ViewChildren(FsListComponent)\n public list = new QueryList<FsListComponent>();\n\n public listConfig: FsListConfig;\n public permissions;\n public indexedAclRoleLevels: { [value: string]: string } = {};\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private readonly _cdRef: ChangeDetectorRef,\n ) { }\n\n public ngOnInit(): void {\n\n new Observable(observer => {\n\n if (this.aclLevels.length) {\n observer.next(this.aclLevels);\n observer.complete();\n } else {\n\n this._appAclService.getLevels()\n .subscribe((aclLevels: AclLevel[]) => {\n observer.next(aclLevels);\n observer.complete();\n });\n }\n })\n .subscribe((aclLevels: AclLevel[]) => {\n this.aclLevels = aclLevels;\n this.indexedAclRoleLevels = list(this.aclLevels, 'name', 'value');\n this._loadListConfig();\n });\n }\n\n public openDialog(aclRole: AclRole = { id: null }): void {\n\n const dialogRef = this._dialog.open(FsAclRoleComponent, {\n width: '70%',\n data: {\n aclRole,\n aclLevels: this.aclLevels,\n loadAclRole: this.loadAclRole,\n saveAclRole: this.saveAclRole,\n },\n });\n\n dialogRef.afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n filter((response) => !!response),\n )\n .subscribe((response) => {\n this.list.forEach((list: FsListComponent) => {\n list.reload();\n });\n });\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n private _loadListConfig() {\n this.listConfig = {\n sort: { value: 'hierarchy' },\n filters: [\n {\n name: 'keyword',\n type: ItemType.Keyword,\n label: 'Search',\n },\n {\n name: 'level',\n label: 'Level',\n type: ItemType.Select,\n values: this.aclLevels,\n hide: this.aclLevels.length <= 1\n },\n {\n name: 'state',\n label: 'Show Deleted',\n type: ItemType.Checkbox,\n unchecked: 'active',\n checked: 'deleted',\n },\n ],\n actions: [\n {\n click: (event) => {\n this.openDialog();\n },\n label: 'Create',\n },\n ],\n rowActions: [\n {\n click: (data) => {\n return this.deleteAclRole(this._appAclService.output(data));\n },\n remove: {\n title: 'Confirm',\n template: 'Are you sure you would like to delete this role?',\n },\n menu: true,\n label: 'Delete',\n show: (row) => row.state !== 'deleted',\n },\n ],\n fetch: (query) => {\n query.permissions = true;\n return this.loadAclRoles(query)\n .pipe(\n map((data) => this._appAclService.input(data))\n );\n },\n };\n }\n\n}\n","import { Component, OnInit, Input, Inject } from '@angular/core';\nimport { FsAppAclService } from './../../services/app-acl.service';\n\n@Component({\n selector: 'acl-permission-popover',\n templateUrl: './acl-permission-popover.component.html',\n styleUrls: ['./acl-permission-popover.component.scss']\n})\nexport class FsAclPermissionPopoverComponent implements OnInit {\n\n @Input() permission;\n\n public description;\n\n public constructor(\n private _appAclService: FsAppAclService\n ) { }\n\n public ngOnInit() {\n this._appAclService.getPermissions()\n .subscribe(permissions => {\n this.description = permissions.filter(item => {\n return item.value === this.permission.value;\n }).map(item => {\n return item.description;\n })[0];\n });\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { FsAppAclService } from './../../services';\n\n@Component({\n selector: 'fs-acl-role-popover',\n templateUrl: './acl-role-popover.component.html',\n styleUrls: ['./acl-role-popover.component.scss']\n})\nexport class FsAclRolePopoverComponent implements OnInit {\n\n @Input() aclRole;\n @Input() objectName;\n\n public permissions = [];\n\n public constructor(\n private readonly _appAclService: FsAppAclService,\n ) {}\n\n public ngOnInit() {\n const aclRolePermissions = this.aclRole.permissions || [];\n\n this._appAclService.getPermissions()\n .subscribe((response) => {\n this.permissions = response.filter(item => {\n return aclRolePermissions.some(permission => {\n return item.value === permission.value;\n });\n });\n });\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FsMessage } from '@firestitch/message';\n\nimport { map } from 'rxjs/operators';\nimport { forkJoin } from 'rxjs';\n\nimport { AclRole, AclEntryData, AclObjectRole, AclObjectEntry, AclEntry } from './../../interfaces';\nimport { FsAppAclService } from './../../services';\n\n\n@Component({\n templateUrl: './acl-entry.component.html',\n styleUrls: ['./acl-entry.component.scss'],\n})\nexport class FsAclEntryComponent implements OnInit {\n\n public aclRoles: AclRole[] = [];\n public aclObjectEntry: AclObjectEntry;\n public aclObjectRole: AclObjectRole;\n public indexedAclRoleLevels = {};\n public titleEdit = 'Edit Roles';\n public titleAdd = 'Assign Roles';\n public required = true;\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialogRef: MatDialogRef<FsAclEntryComponent>,\n private readonly _message: FsMessage,\n @Inject(MAT_DIALOG_DATA) private readonly _data: AclEntryData\n ) {\n this.aclObjectEntry = { ..._data.aclObjectEntry };\n this.required = _data.required ?? true;\n\n if (_data.titleEdit) {\n this.titleEdit = _data.titleEdit;\n }\n\n if (_data.titleAdd) {\n this.titleAdd = _data.titleAdd;\n }\n }\n\n public save = () => {\n return this._data.saveAclObjectEntry(this._appAclService.output(this.aclObjectEntry))\n .subscribe((data) => {\n this._message.success('Saved Changes');\n this.close(data);\n })\n }\n\n public ngOnInit() {\n forkJoin(\n this._data.loadAclRoles({\n level: this.aclObjectEntry.level,\n environmentId: this.aclObjectEntry.environmentId,\n })\n .pipe(\n map((data) => this._appAclService.input(data)),\n ),\n this._appAclService.getIndexedLevels()\n )\n .subscribe(([\n aclRoles,\n levels,\n ]) => {\n\n this.aclRoles = aclRoles;\n this.indexedAclRoleLevels = levels;\n\n this.aclObjectRole = {\n object: this.aclObjectEntry.object,\n aclRoles: this.aclObjectEntry.aclEntries\n .map((aclEntry: AclEntry) => {\n return aclEntry.aclRole;\n })\n };\n });\n }\n\n public aclObjectRoleChange(aclObjectRoles: AclObjectRole[]) {\n\n this.aclObjectEntry.aclEntries = aclObjectRoles.reduce((aclEntries, aclObjectRole) => {\n aclObjectRole.aclRoles.forEach(aclRole => {\n aclEntries.push({\n aclRoleId: aclRole.id,\n aclRole: aclRole,\n objectId: aclObjectRole.object ? aclObjectRole.object.id : null,\n object: aclObjectRole.object || null\n });\n });\n\n return aclEntries;\n }, []);\n }\n\n public close(data = null) {\n this._dialogRef.close(data);\n }\n\n}\n","import { takeUntil, map } from 'rxjs/operators';\nimport { Component, OnInit, ViewChild, OnDestroy, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Subject, Observable } from 'rxjs';\n\nimport { sortBy, groupBy, forOwn } from 'lodash-es';\n\nimport { FsListAction, FsListComponent, FsListConfig } from '@firestitch/list';\nimport { FsAppAclService } from '../../services';\nimport { AclEntry, AclEntryData, AclRole, AclObjectEntry } from '../../interfaces';\nimport { FsAclEntryComponent } from '../acl-entry';\nimport { FsPrompt } from '@firestitch/prompt';\n\n\n@Component({\n selector: 'fs-acl-entries',\n templateUrl: './acl-entries.component.html',\n styleUrls: ['./acl-entries.component.scss']\n})\nexport class FsAclEntriesComponent implements OnInit, OnDestroy {\n\n @Input() public loadAclEntries: (query: any) => Observable<AclEntry[]>;\n @Input() public loadAclRoles: (query: any) => Observable<AclRole[]>;\n @Input() public saveAclObjectEntry: (aclObjectEntry: AclObjectEntry) => Observable<any>;\n @Input() public environmentShow = true;\n @Input() public environmentLabel = 'Environment';\n @Input() public actions: FsListAction[] = [];\n\n @ViewChild(FsListComponent)\n public aclEntriesList: FsListComponent = null;\n\n public aclEntriesConfig: FsListConfig = null;\n public permissions: any[] = [];\n\n private _destroy$ = new Subject();\n\n constructor(\n private readonly _appAclService: FsAppAclService,\n private readonly _dialog: MatDialog,\n private _confirm: FsPrompt,\n ) {}\n\n public ngOnInit(): void {\n this._appAclService.getPermissions()\n .subscribe(response => {\n this.permissions = response;\n });\n\n this.aclEntriesConfig = {\n status: false,\n paging: false,\n actions: this.actions,\n rowActions: [\n {\n label: 'Remove All Roles',\n click: (aclObjectEntry: AclObjectEntry) => {\n this._confirm\n .confirm({\n title: 'Remove All Roles',\n template: 'Are you sure you would like to remove all roles?',\n }).subscribe(() => {\n const data = this._appAclService.output({ ...aclObjectEntry, aclEntries: [] });\n this.saveAclObjectEntry(data)\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n });\n }\n }\n ],\n fetch: () => {\n return new Observable((observer) => {\n this.loadAclEntries({\n aclRoles: true,\n aclRolePermissions: true,\n objects: true,\n aclRoleState: 'active',\n })\n .pipe(\n map((response) => this._appAclService.input(response)),\n )\n .subscribe((aclEntries: AclEntry[]) => {\n const objects = aclEntries.reduce((items, item) => {\n if (item.object) {\n items[item.object.id] = item.object;\n }\n return items;\n }, {});\n\n const environments = aclEntries.reduce((items, item) => {\n if (item.environment) {\n items[item.environment.id] = item.environment;\n }\n return items;\n }, {});\n\n let aclObjectEntry: AclObjectEntry[] = [];\n const grouped = groupBy(aclEntries, (item) => {\n return [item.aclRole.level, item.environmentId, item.objectId];\n });\n\n forOwn(grouped, (group, key) => {\n key = key.split(',');\n aclObjectEntry.push({\n object: objects[key[2]],\n level: key[0],\n environmentId: key[1] ? parseInt(key[1]) : null,\n environment: environments[key[1]],\n aclEntries: group,\n });\n });\n\n const hasApp = aclObjectEntry.some((item) => {\n return item.aclEntries.some((entry) => {\n return !entry.objectId;\n });\n });\n\n if (!hasApp) {\n aclObjectEntry.unshift({\n object: null, aclEntries: [],\n level: 'app',\n environmentId: null,\n });\n }\n\n aclObjectEntry = sortBy(aclObjectEntry, (item: AclObjectEntry) => {\n return item.object ? item.level : '';\n });\n\n observer.next({ data: aclObjectEntry });\n observer.complete();\n });\n });\n },\n };\n }\n\n public update(aclObjectEntry: AclObjectEntry) {\n\n const data: AclEntryData = {\n aclObjectEntry: aclObjectEntry,\n required: false,\n loadAclRoles: this.loadAclRoles,\n saveAclObjectEntry: this.saveAclObjectEntry\n }\n\n this._dialog.open(FsAclEntryComponent, {\n data: data\n })\n .afterClosed()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.aclEntriesList.reload();\n });\n }\n\n public ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public reload(): void {\n this.aclEntriesList.reload();\n }\n\n}\n","import { ControlContainer, NgForm } from '@angular/forms';\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\n\nimport { AclObjectRole, AclRole } from '../../interfaces';\n\n\n@Component({\n selector: 'fs-acl-object-roles',\n templateUrl: './acl-object-roles.component.html',\n styleUrls: ['./acl-object-roles.component.scss'],\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class FsAclObjectRolesComponent {\n\n @Input() aclRoles: AclRole[] = [];\n @Input() required = false;\n @Input() multiple = false;\n @Input() disabled = false;\n @Input() aclObjectRoles: AclObjectRole[] = [];\n @Input() rolesLabel = 'Roles';\n @Input() levelLabel = '';\n @Output() change = new EventEmitter<AclObjectRole[]>();\n\n public compareAclRole = (o1: any, o2: any) => {\n return o1 && o2 && o1.id === o2.id;\n }\n\n public changed() {\n this.change.emit(this.aclObjectRoles);\n }\n}\n","import { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AppAclConfig } from './interfaces/app-acl-config';\nimport { FS_APP_ACL_CONFIG } from './injectors/app-acl-config.injector';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FsListModule } from '@firestitch/list';\nimport { FsPopoverModule } from '@firestitch/popover';\nimport { FsDialogModule } from '@firestitch/dialog';\nimport { FsFormModule } from '@firestitch/form';\nimport { FsLabelModule } from '@firestitch/label';\nimport { FsRadioGroupModule } from '@firestitch/radiogroup';\nimport { FsBadgeModule } from '@firestitch/badge';\nimport { FsCheckboxGroupModule } from '@firestitch/checkboxgroup';\n\nimport { FsAclRolesComponent } from './components/acl-roles/acl-roles.component';\nimport { FsAclPermissionPopoverComponent } from './components/acl-permission-popover';\nimport { FsAclRolePopoverComponent } from './components/acl-role-popover/acl-role-popover.component';\nimport { FsAclEntriesComponent } from './components/acl-entries/acl-entries.component';\nimport { FsAclRoleComponent } from './components/acl-role/acl-role.component';\nimport { FsAclObjectRolesComponent } from './components/acl-object-roles/acl-object-roles.component';\nimport { FsAclEntryComponent } from './components/acl-entry/acl-entry.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatDialogModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatSelectModule,\n MatButtonModule,\n MatRadioModule,\n MatInputModule,\n FlexLayoutModule,\n\n FsListModule,\n FsPopoverModule,\n FsDialogModule,\n FsFormModule,\n FsLabelModule,\n FsRadioGroupModule,\n FsBadgeModule,\n FsCheckboxGroupModule,\n ],\n declarations: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n exports: [\n FsAclRolesComponent,\n FsAclPermissionPopoverComponent,\n FsAclRoleComponent,\n FsAclEntriesComponent,\n FsAclRolePopoverComponent,\n FsAclObjectRolesComponent,\n FsAclEntryComponent,\n ],\n entryComponents: [\n FsAclRoleComponent\n ]\n})\nexport class FsAppAclModule {\n static forRoot(): ModuleWithProviders<FsAppAclModule> {\n return {\n ngModule: FsAppAclModule,\n // providers: [\n // { provide: FS_APP_ACL_CONFIG, useValue: config || {} }\n // ]\n };\n }\n}\n"]}
|