@esfaenza/core 19.2.45 → 19.2.46
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/components/external-page/external_pages.component.d.ts +10 -2
- package/components/jace-resource/jace-resource.component.d.ts +1 -1
- package/components/navbar/navbar.component.d.ts +2 -5
- package/directives/es-routerLink/es-routerLink.directive.d.ts +1 -0
- package/fesm2022/esfaenza-core-components.mjs +49 -28
- package/fesm2022/esfaenza-core-components.mjs.map +1 -1
- package/fesm2022/esfaenza-core-directives.mjs +20 -14
- package/fesm2022/esfaenza-core-directives.mjs.map +1 -1
- package/fesm2022/esfaenza-core-services.mjs +30 -5
- package/fesm2022/esfaenza-core-services.mjs.map +1 -1
- package/fesm2022/esfaenza-core.mjs +9 -5
- package/fesm2022/esfaenza-core.mjs.map +1 -1
- package/package.json +6 -6
- package/services/classes/app.state.d.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esfaenza-core-services.mjs","sources":["../../../projects/core/services/src/classes/app.accesstoken.ts","../../../projects/core/services/src/classes/app.globalsearch.ts","../../../projects/core/services/src/classes/app.errorhandler.ts","../../../projects/core/services/src/classes/app.event.ts","../../../projects/core/services/src/classes/app.httpextensions.loc.ts","../../../projects/core/services/src/classes/app.state.ts","../../../projects/core/services/src/classes/app.httpextensions.ts","../../../projects/core/services/src/classes/app.menufilter.ts","../../../projects/core/services/src/classes/app.completedjobredirection.ts","../../../projects/core/services/src/classes/app.session.ts","../../../projects/core/services/src/classes/preferences/app.cache.persistor.ts","../../../projects/core/services/src/classes/preferences/app.preference.persistor.ts","../../../projects/core/services/src/classes/preferences/user/app.userpreferences.base.ts","../../../projects/core/services/src/classes/app.routeguard.ts","../../../projects/core/services/src/esfaenza-core-services.ts"],"sourcesContent":["// Angular\r\nimport { Inject, Injectable, Optional } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { CookieService } from \"ngx-cookie-service\";\r\n\r\n// Applicazione\r\nimport { AccountScope, ANONYMOUS_MODE, JaceIdentity, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TokenService {\r\n\r\n public accountScope: AccountScope;\r\n\r\n constructor(public cs: CookieService, @Optional() @Inject(USE_FAKE_ACCESS_TOKEN) public USE_FAKE_ACCESS_TOKEN: boolean, @Optional() @Inject(ANONYMOUS_MODE) public ANONYMOUS_MODE: boolean) {\r\n if (this.USE_FAKE_ACCESS_TOKEN)\r\n this.accountScope = this.getFakeAccountScope();\r\n }\r\n\r\n clearTokens(): void {\r\n this.cs.delete(\"access_token\");\r\n }\r\n\r\n getAccessToken(): String {\r\n if(this.ANONYMOUS_MODE)\r\n return \"\";\r\n\r\n return this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get(\"accessToken\");\r\n }\r\n\r\n getJaceIdentity(): JaceIdentity {\r\n if(this.ANONYMOUS_MODE)\r\n return null;\r\n\r\n let token = this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get(\"accessToken\");\r\n if (!token)\r\n return null;\r\n\r\n let base64Url = token.split(\".\")[1];\r\n let base64 = base64Url.replace(\"-\", \"+\").replace(\"_\", \"/\");\r\n let tokenData = JSON.parse(decodeURIComponent(window.atob(base64).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\")));\r\n\r\n let identity: JaceIdentity = new JaceIdentity(this.accountScope);\r\n identity.IdActor = tokenData.ACTORID;\r\n identity.IdActorRole = tokenData.ACTORROLEID;\r\n identity.IdAccount = tokenData.ACCOUNTID;\r\n identity.IdUser = tokenData.USERID;\r\n identity.DsUser = tokenData.USERNAME;\r\n identity.FullName = tokenData.USERDESCRIPTION;\r\n identity.Idtenant = tokenData.TENANT;\r\n identity.TenantName = tokenData.TENANTNAME;\r\n identity.ExpirationTime = new Date(tokenData.exp * 1000);//unix-epoch in secondi -> millisecondi\r\n\r\n return identity;\r\n }\r\n\r\n //Accesstoken fittizio ma valido, per simulare la connession corretta col backend\r\n private getFakeToken(): string {\r\n\r\n /* Il Token generato è il seguente:\r\n\r\n {\r\n \"nbf\": 1590415846,\r\n \"exp\": 1990420065,\r\n \"iss\": \"http://authapi.jace.energysoftware.priv\",\r\n \"aud\": [ \"http://authapi.jace.energysoftware.priv/resources\", \"authentication\" ],\r\n \"client_id\": \"application\",\r\n \"sub\": \"1003\",\r\n \"auth_time\": 1590415846,\r\n \"idp\": \"local\",\r\n \"ACCOUNTID\": \"1003\",\r\n \"USERID\": \"259\",\r\n \"USERDESCRIPTION\": \"Test User\",\r\n \"USERNAME\": \"TEST\",\r\n \"TENANT\": \"FX\",\r\n \"TENANTNAME\": \"Fenix Srl\",\r\n \"jti\": \"0e5307561606e444e2885b11a3144421\",\r\n \"scope\": [ \"auth\", \"offline_access\" ],\r\n \"amr\": [\"password\" ],\r\n \"iat\": 1590416465\r\n }\r\n */\r\n return \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE1OTA0MTU4NDYsImV4cCI6MTk5MDQyMDA2NSwiaXNzIjoiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYiLCJhdWQiOlsiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYvcmVzb3VyY2VzIiwiYXV0aGVudGljYXRpbyJdLCJjbGllbnRfaWQiOiJtZXRlcmluZ3N0YWdpbmciLCJzdWIiOiIxMDAzIiwiYXV0aF90aW1lIjoxNTkwNDE1ODQ2LCJpZHAiOiJsb2NhbCIsIkFDQ09VTlRJRCI6IjEwMDMiLCJVU0VSSUQiOiIyNTkiLCJVU0VSREVTQ1JJUFRJT04iOiJUZXN0IFVzZXIiLCJVU0VSTkFNRSI6IlRFU1QiLCJURU5BTlQiOiJGWCIsIlRFTkFOVE5BTUUiOiJGZW5peCBTcmwiLCJqdGkiOiIwZTUzMDc1NjE2MDZlNDQ0ZTI4ODViMTFhMzE0NDQyMSIsInNjb3BlIjpbImF1dGgiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsicGFzc3dvcmQiXSwiaWF0IjoxNTkwNDE2NDY1fQ.aev_Txa9tIaEZvZ_KWDqb2Ob95Nf-3rqsNyJX4BPKXE\";\r\n }\r\n\r\n private getFakeAccountScope(): AccountScope {\r\n let accountScope = {\r\n \"modules\": [\r\n {\r\n \"idmodule\": 36,\r\n \"dsname\": \"Auth\",\r\n \"dscategory\": \"Infrastructure\",\r\n \"idmodulealt\": \"auth\"\r\n },\r\n {\r\n \"idmodule\": 14,\r\n \"dsname\": \"Compliance Dati Catastali\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"complianceade\"\r\n },\r\n {\r\n \"idmodule\": 2,\r\n \"dsname\": \"Forecasting & Metering\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"mdm\"\r\n },\r\n {\r\n \"idmodule\": 48,\r\n \"dsname\": \"Sales Management\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"sales\"\r\n },\r\n {\r\n \"idmodule\": 42,\r\n \"dsname\": \"SII Connector\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"sii\"\r\n },\r\n {\r\n \"idmodule\": 5,\r\n \"dsname\": \"Billing\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"billing\"\r\n },\r\n {\r\n \"idmodule\": 7,\r\n \"dsname\": \"Cost checking & Reconciliation\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"ccr\"\r\n },\r\n {\r\n \"idmodule\": 8,\r\n \"dsname\": \"Compliance REMIT\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"remit\"\r\n },\r\n {\r\n \"idmodule\": 51,\r\n \"dsname\": \"CRM\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"crm\"\r\n },\r\n {\r\n \"idmodule\": 11,\r\n \"dsname\": \"Compliance ARERA\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"compliance\"\r\n },\r\n {\r\n \"idmodule\": 54,\r\n \"dsname\": \"Partner Portal\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"pp\"\r\n },\r\n {\r\n \"idmodule\": 35,\r\n \"dsname\": \"Scheduler\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"scheduler\"\r\n },\r\n {\r\n \"idmodule\": 34,\r\n \"dsname\": \"Jace Dashboard\",\r\n \"dscategory\": \"Infrastructure\",\r\n \"idmodulealt\": \"jace\"\r\n },\r\n {\r\n \"idmodule\": 1,\r\n \"dsname\": \"Market Data\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"marketdata\"\r\n },\r\n {\r\n \"idmodule\": 31,\r\n \"dsname\": \"Toolset\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"toolset\"\r\n },\r\n {\r\n \"idmodule\": 32,\r\n \"dsname\": \"Customer Portal Admin\",\r\n \"dscategory\": \"Administration\",\r\n \"idmodulealt\": \"customerportal\"\r\n },\r\n {\r\n \"idmodule\": 10,\r\n \"dsname\": \"Compliance Dogane\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"dogane\"\r\n },\r\n {\r\n \"idmodule\": 40,\r\n \"dsname\": \"Data Manager\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"dmg\"\r\n },\r\n {\r\n \"idmodule\": 12,\r\n \"dsname\": \"Credit Management\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"credit\"\r\n },\r\n {\r\n \"idmodule\": 52,\r\n \"dsname\": \"Business Process Manager\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"BPM\"\r\n },\r\n {\r\n \"idmodule\": 46,\r\n \"dsname\": \"Logistic\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"lgs\"\r\n }\r\n ],\r\n \"roles\": [\r\n {\r\n \"idrole\": 1,\r\n \"idrolealt\": \"Tenant Admin\",\r\n \"dsrole\": \"Tenant Admin\",\r\n \"dsnote\": \"Per generici permessi di amministrazione/configurazione di un modulo: Es. Billi\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-05-02T11:03:35+02:00\"),\r\n \"syuserins\": \"AUTH\"\r\n },\r\n {\r\n \"idrole\": 9,\r\n \"idrolealt\": \"Tenant Reader\",\r\n \"dsrole\": \"Tenant Reader\",\r\n \"dsnote\": \"Per generico permesso di lettura su tutti i moduli abilitati del Tenant\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:13:38+02:00\"),\r\n \"syuserins\": \"FRANCEM\",\r\n \"sydataupd\": new Date(\"2018-12-03T19:42:41+01:00\"),\r\n \"syuserupd\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 11,\r\n \"idrolealt\": \"Compl. ARERA Reader\",\r\n \"dsrole\": \"Compl. ARERA Reader\",\r\n \"dsnote\": \"Permesso di lettura al solo modulo Compl. ARERA\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:22:56+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 13,\r\n \"idrolealt\": \"Compl. ARERA Writer L1\",\r\n \"dsrole\": \"Compl. ARERA Writer L1\",\r\n \"dsnote\": \"Responsabile business del modulo Compl. ARERA: può chiudere indagini\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:23:15+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 15,\r\n \"idrolealt\": \"Compl. ARERA Writer L2\",\r\n \"dsrole\": \"Compl. ARERA Writer L2\",\r\n \"dsnote\": \"Operatore business del modulo Compl. ARERA: può elaborare, ma non chiudere indagini\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:23:27+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 28,\r\n \"idrolealt\": \"Jace Admin\",\r\n \"dsrole\": \"Jace Admin\",\r\n \"dsnote\": \"Amministratore generico per l'intera suite.\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-25T17:20:41+02:00\"),\r\n \"syuserins\": \"RIVOLAM\"\r\n },\r\n {\r\n \"idrole\": 88,\r\n \"idrolealt\": \"Metering: Reader\",\r\n \"dsrole\": \"Metering: Reader\",\r\n \"dsnote\": \"Sola lettura\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:12+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 89,\r\n \"idrolealt\": \"Metering: Writer L1\",\r\n \"dsrole\": \"Metering: Writer L1\",\r\n \"dsnote\": \"Gestione entità semplici\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:17+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 90,\r\n \"idrolealt\": \"Metering: Writer L2\",\r\n \"dsrole\": \"Metering: Writer L2\",\r\n \"dsnote\": \"Gestione entità complesse\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:21+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 91,\r\n \"idrolealt\": \"Metering: Admin\",\r\n \"dsrole\": \"Metering: Admin\",\r\n \"dsnote\": \"Customizzazione\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:29+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 269,\r\n \"idrolealt\": \"dgn_op\",\r\n \"dsrole\": \"Dogane Operator\",\r\n \"dsnote\": \"Consente di fare operazioni come ad esempio generare un pagamento massivo, una comunicazione massiva o modificare le posizioni / comunicaizoni\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-07-01T12:31:32+02:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 349,\r\n \"idrolealt\": \"cost_admin\",\r\n \"dsrole\": \"Costchecking Writer L2\",\r\n \"dsnote\": \"Ruolo di admin per il costchecking che consente di utilizzare qualunque funzionalità del modulo\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-11-17T09:44:48+01:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 370,\r\n \"idrolealt\": \"toolset_reader\",\r\n \"dsrole\": \"Toolset Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-11-24T10:48:33+01:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 489,\r\n \"idrolealt\": \"lgs_read\",\r\n \"dsrole\": \"Logistica Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:50:54+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 491,\r\n \"idrolealt\": \"lgs_md_write\",\r\n \"dsrole\": \"Logistica Writer Ana\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:51:09+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 492,\r\n \"idrolealt\": \"lgs_eap_write\",\r\n \"dsrole\": \"Logistica Writer Aggr\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:52:46+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 493,\r\n \"idrolealt\": \"lgs_pce\",\r\n \"dsrole\": \"Logistica Writer PCE\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:09+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 494,\r\n \"idrolealt\": \"lgs_ipex\",\r\n \"dsrole\": \"Logistica Writer IPEX\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:18+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 495,\r\n \"idrolealt\": \"lgs_invauth\",\r\n \"dsrole\": \"Logistica Writer Benestari GME\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:30+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 496,\r\n \"idrolealt\": \"lgs_terna\",\r\n \"dsrole\": \"Logistica Writer Settlement Terna\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:44+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 497,\r\n \"idrolealt\": \"lgs_writer_full\",\r\n \"dsrole\": \"Logistica Full Writer\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:56+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 688,\r\n \"idrolealt\": \"blg_business\",\r\n \"dsrole\": \"Billing Business\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2022-09-20T09:26:42+02:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 708,\r\n \"idrolealt\": \"cus_admin\",\r\n \"dsrole\": \"CustomerPortal Admin\",\r\n \"dsnote\": \"Amministrazione utenti CustomerPortal\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2022-11-16T10:17:01+01:00\"),\r\n \"syuserins\": \"TURCHII\"\r\n },\r\n {\r\n \"idrole\": 808,\r\n \"idrolealt\": \"crm_fo_rd\",\r\n \"dsrole\": \"CRM FrontOffice Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:34+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 809,\r\n \"idrolealt\": \"crm_bo_rd\",\r\n \"dsrole\": \"CRM BackOffice Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:45+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 810,\r\n \"idrolealt\": \"crm_bo_wr_l1\",\r\n \"dsrole\": \"CRM BackOffice Writer L1\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:52+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 811,\r\n \"idrolealt\": \"crm_bo_wr_l2\",\r\n \"dsrole\": \"CRM BackOffice Writer L2\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:59+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 812,\r\n \"idrolealt\": \"crm_fo_wr_l1\",\r\n \"dsrole\": \"CRM FrontOffice Writer L1\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:19:04+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 813,\r\n \"idrolealt\": \"crm_fo_wr_l2\",\r\n \"dsrole\": \"CRM FrontOffice Writer L2\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:19:09+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n }\r\n ],\r\n \"permissions\": [\r\n {\r\n \"idpermission\": 51,\r\n \"dspermission\": \"Operazioni massive forecasting su metering\",\r\n \"idpermissionalt\": \"mdm_mass_fct\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 134,\r\n \"dspermission\": \"Dogane apri / chiudi posizioni\",\r\n \"idpermissionalt\": \"dgn_pos_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 211,\r\n \"dspermission\": \"Scarico dati sistemi AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_dl\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 271,\r\n \"dspermission\": \"Dogane Elimina Importazione\",\r\n \"idpermissionalt\": \"dgn_flow_delete\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 131,\r\n \"dspermission\": \"Dogane Read\",\r\n \"idpermissionalt\": \"dgn_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 133,\r\n \"dspermission\": \"Dogane operazioni su rate e pagamenti \",\r\n \"idpermissionalt\": \"dgn_payments_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 291,\r\n \"dspermission\": \"Logistica - modifica dati anagrafica\",\r\n \"idpermissionalt\": \"lgs_md_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 292,\r\n \"dspermission\": \"Logistica - lettura dati PCE\",\r\n \"idpermissionalt\": \"lgs_pce_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 293,\r\n \"dspermission\": \"Logistica - scrittura dati PCE\",\r\n \"idpermissionalt\": \"lgs_pce_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 294,\r\n \"dspermission\": \"Logistica - lettura dati IPEX\",\r\n \"idpermissionalt\": \"lgs_ipex_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 296,\r\n \"dspermission\": \"Logistica - scrittura dati IPEX\",\r\n \"idpermissionalt\": \"lgs_ipex_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 297,\r\n \"dspermission\": \"Logistica - lettura dati benestari\",\r\n \"idpermissionalt\": \"lgs_invauth_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 298,\r\n \"dspermission\": \"Logistica - scrittura dati benestari\",\r\n \"idpermissionalt\": \"lgs_invauth_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 299,\r\n \"dspermission\": \"Logistica - lettura settlement terna\",\r\n \"idpermissionalt\": \"lgs_terna_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 300,\r\n \"dspermission\": \"Logistica - scrittura settlement terna\",\r\n \"idpermissionalt\": \"lgs_terna_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 301,\r\n \"dspermission\": \"Logistica - Gestione servizi\",\r\n \"idpermissionalt\": \"lgs_gme_services\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 302,\r\n \"dspermission\": \"Logistica - Lettura\",\r\n \"idpermissionalt\": \"lgs_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 303,\r\n \"dspermission\": \"Logistica - Gestione Programmi aggregati/chiusure\",\r\n \"idpermissionalt\": \"lgs_eap_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 304,\r\n \"dspermission\": \"Logistica - Gestione Programmi aggregati - riaperture\",\r\n \"idpermissionalt\": \"lgs_eap_reopen\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 411,\r\n \"dspermission\": \"Billing - Lettura dati 'Lotti di fatturazione'\",\r\n \"idpermissionalt\": \"blg_elblot_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 511,\r\n \"dspermission\": \"CRM Cap/Floor\",\r\n \"idpermissionalt\": \"crm_capfloor\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 611,\r\n \"dspermission\": \"Crm - Mandati SEDA lettura\",\r\n \"idpermissionalt\": \"crm_back_seda_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 613,\r\n \"dspermission\": \"Crm - Mandati SEDA scrittura\",\r\n \"idpermissionalt\": \"crm_back_seda_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 172,\r\n \"dspermission\": \"Costchecking Writer L1\",\r\n \"idpermissionalt\": \"ccc_writer_l1\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 173,\r\n \"dspermission\": \"Costchecking Writer L2\",\r\n \"idpermissionalt\": \"ccc_writer_l2\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 171,\r\n \"dspermission\": \"Costchecking Reader\",\r\n \"idpermissionalt\": \"ccc_reader\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 471,\r\n \"dspermission\": \"Crm - Lead lettura\",\r\n \"idpermissionalt\": \"crm_lead_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 472,\r\n \"dspermission\": \"Crm - Lead scrittura\",\r\n \"idpermissionalt\": \"crm_lead_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 473,\r\n \"dspermission\": \"Crm - Opportunity lettura\",\r\n \"idpermissionalt\": \"crm_opp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 474,\r\n \"dspermission\": \"Crm - Opportunity scrittura\",\r\n \"idpermissionalt\": \"crm_opp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 475,\r\n \"dspermission\": \"Crm - Controparti lettura\",\r\n \"idpermissionalt\": \"crm_prt_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 476,\r\n \"dspermission\": \"Crm - Controparti scrittura\",\r\n \"idpermissionalt\": \"crm_prt_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 477,\r\n \"dspermission\": \"Crm - Punti lettura\",\r\n \"idpermissionalt\": \"crm_sp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 478,\r\n \"dspermission\": \"Crm - Punti scrittura\",\r\n \"idpermissionalt\": \"crm_sp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 479,\r\n \"dspermission\": \"Crm - Contatti lettura\",\r\n \"idpermissionalt\": \"crm_cnt_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 480,\r\n \"dspermission\": \"Crm - Contatti scrittura\",\r\n \"idpermissionalt\": \"crm_cnt_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 481,\r\n \"dspermission\": \"Crm - Case lettura\",\r\n \"idpermissionalt\": \"crm_cas_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 482,\r\n \"dspermission\": \"Crm - Case scrittura\",\r\n \"idpermissionalt\": \"crm_cas_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 483,\r\n \"dspermission\": \"Crm - Richieste lettura\",\r\n \"idpermissionalt\": \"crm_bpm_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 484,\r\n \"dspermission\": \"Crm - Richieste scrittura\",\r\n \"idpermissionalt\": \"crm_bpm_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 485,\r\n \"dspermission\": \"Crm - Prodotti lettura\",\r\n \"idpermissionalt\": \"crm_prd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 486,\r\n \"dspermission\": \"Crm - Prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_prd_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 487,\r\n \"dspermission\": \"Crm - Tipi prodotti lettura\",\r\n \"idpermissionalt\": \"crm_tprd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 488,\r\n \"dspermission\": \"Crm - Tipi prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_tprd_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 489,\r\n \"dspermission\": \"Crm - Contratti lettura\",\r\n \"idpermissionalt\": \"crm_ctr_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 490,\r\n \"dspermission\": \"Crm - Contratti scrittura\",\r\n \"idpermissionalt\": \"crm_ctr_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 491,\r\n \"dspermission\": \"Crm - Campagne lettura\",\r\n \"idpermissionalt\": \"crm_cmp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 492,\r\n \"dspermission\": \"Crm - Campagne scrittura\",\r\n \"idpermissionalt\": \"crm_cmp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 493,\r\n \"dspermission\": \"Crm - Email services lettura\",\r\n \"idpermissionalt\": \"crm_email_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 494,\r\n \"dspermission\": \"Crm - Email services scrittura\",\r\n \"idpermissionalt\": \"crm_email_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 495,\r\n \"dspermission\": \"Crm - Backoffice lettura\",\r\n \"idpermissionalt\": \"crm_back_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 496,\r\n \"dspermission\": \"Crm - Backoffice scrittura\",\r\n \"idpermissionalt\": \"crm_back_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 497,\r\n \"dspermission\": \"Crm - Backoffice amministrazione lettura\",\r\n \"idpermissionalt\": \"crm_back_adm_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 499,\r\n \"dspermission\": \"Crm - Backoffice amministrazione scrittura\",\r\n \"idpermissionalt\": \"crm_back_adm_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 500,\r\n \"dspermission\": \"Crm - File import\",\r\n \"idpermissionalt\": \"crm_import\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 571,\r\n \"dspermission\": \"Crm - Backoffice Banche scrittura\",\r\n \"idpermissionalt\": \"crm_back_banks_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 572,\r\n \"dspermission\": \"Crm - Backoffice Banche lettura\",\r\n \"idpermissionalt\": \"crm_back_banks_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 573,\r\n \"dspermission\": \"Crm - Backoffice Termini di Pagamento scrittura\",\r\n \"idpermissionalt\": \"crm_back_paymentterms_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 574,\r\n \"dspermission\": \"Crm - Backoffice Termini di Pagamento lettura\",\r\n \"idpermissionalt\": \"crm_back_paymentterms_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 575,\r\n \"dspermission\": \"Crm - Backoffice Prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_back_products_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 576,\r\n \"dspermission\": \"Crm - Backoffice Prodotti lettura\",\r\n \"idpermissionalt\": \"crm_back_products_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 591,\r\n \"dspermission\": \"Crm - Backend Aggiungi/Modifica CAB\",\r\n \"idpermissionalt\": \"crm_back_cab_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 14,\r\n \"dspermission\": \"Operazioni base metering\",\r\n \"idpermissionalt\": \"mdm_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 15,\r\n \"dspermission\": \"Operazioni massive metering\",\r\n \"idpermissionalt\": \"mdm_mass_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 16,\r\n \"dspermission\": \"Operazioni avanzate metering\",\r\n \"idpermissionalt\": \"mdm_adv_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 17,\r\n \"dspermission\": \"Operazioni forecasting su metering\",\r\n \"idpermissionalt\": \"mdm_fct\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 18,\r\n \"dspermission\": \"Operazioni configurazione base metering\",\r\n \"idpermissionalt\": \"mdm_cfg_base\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 19,\r\n \"dspermission\": \"Operazioni configurazione avanzata metering\",\r\n \"idpermissionalt\": \"mdm_cfg_adv\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 21,\r\n \"dspermission\": \"Operazioni customizzazione metering\",\r\n \"idpermissionalt\": \"mdm_customize\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 22,\r\n \"dspermission\": \"Visualizzazione dati metering\",\r\n \"idpermissionalt\": \"mdm_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 151,\r\n \"dspermission\": \"Dogane Operazioni Comunicazioni\",\r\n \"idpermissionalt\": \"dgn_comm_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 153,\r\n \"dspermission\": \"Dogane Admin Comunicazioni\",\r\n \"idpermissionalt\": \"dgn_comm_adm\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 154,\r\n \"dspermission\": \"Dogane Operazioni Pagamenti Massivi\",\r\n \"idpermissionalt\": \"dgn_pag_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 155,\r\n \"dspermission\": \"Dogane Pagamenti Retro\",\r\n \"idpermissionalt\": \"dgn_pag_rt\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 156,\r\n \"dspermission\": \"Dogane Pagamenti Admin\",\r\n \"idpermissionalt\": \"dgn_pag_adm\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 157,\r\n \"dspermission\": \"Dogane Dichiarazioni di consumo Read\",\r\n \"idpermissionalt\": \"dgn_dich_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 158,\r\n \"dspermission\": \"Dogane Operazioni Dichiarazioni di consumo\",\r\n \"idpermissionalt\": \"dgn_dich_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 159,\r\n \"dspermission\": \"Dogane Cod. Ditta Read\",\r\n \"idpermissionalt\": \"dgn_codditta_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 161,\r\n \"dspermission\": \"Dogane modifica template\",\r\n \"idpermissionalt\": \"dgn_templ_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 162,\r\n \"dspermission\": \"Dogane gestione credito\",\r\n \"idpermissionalt\": \"dgn_pos_credit_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 231,\r\n \"dspermission\": \"Dogane Import Read\",\r\n \"idpermissionalt\": \"dgn_import_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 232,\r\n \"dspermission\": \"Dogane Import Writer\",\r\n \"idpermissionalt\": \"dgn_import_writer\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 305,\r\n \"dspermission\": \"Logistica - Scrittura generica (es: import file, ecc.)\",\r\n \"idpermissionalt\": \"lgs_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 306,\r\n \"dspermission\": \"Logistica - permessi admin\",\r\n \"idpermissionalt\": \"lgs_admin\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 431,\r\n \"dspermission\": \"Billing - Riesegui 'Lotti di fatturazione'\",\r\n \"idpermissionalt\": \"blg_elblot_exec\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 501,\r\n \"dspermission\": \"AutoConsumo Diffuso - lettura\",\r\n \"idpermissionalt\": \"acd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 1,\r\n \"dspermission\": \"Gestione utenti tenant\",\r\n \"idpermissionalt\": \"manage_user\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 2,\r\n \"dspermission\": \"View moduli tenant\",\r\n \"idpermissionalt\": \"manage_modules\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 192,\r\n \"dspermission\": \"Modifica configurazione sistemi AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_customize\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 132,\r\n \"dspermission\": \"Dogane esegui data checks\",\r\n \"idpermissionalt\": \"dgn_datachecks_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 191,\r\n \"dspermission\": \"Lettura info AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 31,\r\n \"dspermission\": \"Visualizzazione dati avanzati metering\",\r\n \"idpermissionalt\": \"mdm_adv_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 32,\r\n \"dspermission\": \"Visualizzazione configurazione metering\",\r\n \"idpermissionalt\": \"mdm_cfg_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 33,\r\n \"dspermission\": \"Operazioni massive eliminazione metering\",\r\n \"idpermissionalt\": \"mdm_mass_del\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 135,\r\n \"dspermission\": \"Dogane Operazioni su Forniture\",\r\n \"idpermissionalt\": \"dgn_for_op\",\r\n \"sydatains\": null\r\n }\r\n ]\r\n }\r\n return accountScope;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { KeyValue, SearchResultContainer } from \"@esfaenza/core/domain\";\r\n\r\n// Rxjs\r\nimport { Observable, of } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class GlobalSearchService {\r\n public Enabled: boolean = false;\r\n\r\n /**\r\n * Effettua una ricerca in base a un termine generico\r\n * \r\n * @param term Termine da cercare\r\n * @returns {SearchResultContainer} Contenitore della ricerca\r\n */\r\n public search(term: string): Observable<SearchResultContainer> {\r\n return of(null);\r\n }\r\n\r\n /**\r\n * Data la definizione semplice di una colonna restituisce un oggetto che indica se bisogna presentere un link su di essa\r\n * \r\n * @param column Colonna per cui verificare la presentazione di un link. Esempio: {id: \"IDPARTY\", description: \"Cod. Controparte\"}\r\n * @returns {{ routePath: string, routeProperties: string[] }} Oggetto che indica un link con i propri binding. Ad esempio: {routePath: \"['/pages/parties/parties_details', { 'idModel': '{0}' }]\", routeProperties: [\"IDPARTY\"]}\r\n */\r\n public generateColumnLink(column: KeyValue): { routePath: string, routeProperties: string[] } {\r\n return null;\r\n }\r\n}","// Angular\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions\r\n\r\n@Injectable()\r\nexport class APPErrorHandler implements ErrorHandler {\r\n private router;\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n handleError(error) {\r\n if (this.router == null)\r\n this.router = this.injector.get(Router);\r\n\r\n //Ignoro eventuali errori di javascript quando il redirect è attivo\r\n if (myconfig && myconfig.redirectInProgress) {\r\n console.log(\"Javascript error on redirect in progress, ignoring this event\");\r\n return;\r\n }\r\n\r\n //In caso io abbia impostato succesresultmandatory nell'httprequest e questa abbia dato errore tiro fuori un exception che dev'essere mostrata come si deve\r\n var newError = \"\";\r\n if (!error.message && !error.stack)\r\n newError = error\r\n else if (error instanceof HttpErrorResponse)\r\n newError = error.message;\r\n else\r\n newError = error.stack && error.stack.length > 1000 ? error.stack.substring(0, 999) + \"[...]\" : error.stack;\r\n\r\n var pars = { errorMessage: this.b64EncodeUnicode(newError), fromUrl: this.router.url };\r\n this.router.navigate([\"/anerr\", pars]);\r\n }\r\n\r\n b64EncodeUnicode(str) {\r\n // first we use encodeURIComponent to get percent-encoded UTF-8,\r\n // then we convert the percent encodings into raw bytes which\r\n // can be fed into btoa.\r\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(<any>(\"0x\" + p1))));\r\n }\r\n}","// Angular\r\nimport { Injectable, NgZone } from \"@angular/core\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OutZoneEventPlugin {\r\n\r\n constructor(private zone: NgZone) { }\r\n\r\n supports(eventName: string): boolean {\r\n return eventName.endsWith('out-zone');\r\n }\r\n\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n let eventOriginalName = eventName.split('.')[0];\r\n let standardHandler = (event: Event) => originalHandler(event)\r\n if (eventName.endsWith('out-zone'))\r\n this.zone.runOutsideAngular(() => { element.addEventListener(eventOriginalName, standardHandler); });\r\n else\r\n element.addEventListener(eventOriginalName, standardHandler)\r\n\r\n return () => element.removeEventListener(eventOriginalName, standardHandler);\r\n }\r\n}","import { Injectable, Injector } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n@Injectable()\r\nexport class HTTPServiceExtensionsLoc extends LocalizationService {\r\n constructor(injector: Injector) {\r\n super(injector);\r\n super.set(\"it->en\", \"Il Server sembra essere offline, prova a ricaricare la pagina\", [\"Server seems to be offline, try to reload this page\"]);\r\n }\r\n}","// Angular\r\nimport { ActivatedRouteSnapshot, Router } from \"@angular/router\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseMessageService, NotificationsService, JobProgressDto } from \"@esfaenza/signalr-notifications\";\r\nimport { InboundMessageTypes, InterComMessage, InterComService } from \"@esfaenza/extensions\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\n\r\n// Core\r\nimport { ActiveModuleView, ANONYMOUS_MODE, ApplicationJob, EnvOptions, JaceIdentity } from \"@esfaenza/core/domain\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Subject, filter } from \"rxjs\";\r\n\r\ndeclare var dayjs: any;\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppState {\r\n\r\n public sidebarWidth: number;\r\n public headerHeight: number;\r\n\r\n public redirectingToLogin: boolean = false;\r\n public handlingError: boolean = false;\r\n public christmasTime: boolean = false;\r\n public halloweenTime: boolean = false;\r\n\r\n private SessionIdentity: string;\r\n private JaceIdentity: JaceIdentity;\r\n\r\n public jobsInProgress: number = 0;\r\n public allJobs: ApplicationJob[] = [];\r\n private jobWithIdsCache: { [index: string]: ApplicationJob } = {};\r\n public notifyOnCompletedJobs: boolean = true;\r\n\r\n private _data = new Subject<Object>();\r\n private _subscriptions: Map<string, Array<Function>> = new Map<string, Array<Function>>();\r\n\r\n public ModulesLocalizations: { [id: string]: LocalizationService } = {};\r\n\r\n private _modules: ActiveModuleView[];\r\n public set Modules(modules: ActiveModuleView[]) {\r\n this._modules = modules;\r\n this.notifyDataChanged(\"modules.Retrieved\", this._modules);\r\n }\r\n public get Modules(): ActiveModuleView[] { return this._modules; }\r\n\r\n constructor(private router: Router, private lc: LocalizationService, private bts: TokenService, private notifications: NotificationsService, private MessageDef: BaseMessageService, private intercom: InterComService, private emb: AppEmbeddingExtensions, @Inject(ANONYMOUS_MODE) private anonymousMode : boolean) {\r\n\r\n this.hookEmbedding();\r\n\r\n this.setupSignalRJobListening();\r\n\r\n this.JaceIdentity = null;\r\n this._data.subscribe((data) => this._onEvent(data));\r\n\r\n //Decide se siamo attorno a natale\r\n var today = dayjs();\r\n var thisYear = today.year();\r\n var lowerBound = dayjs(\"18/12/\" + thisYear, \"DD/MM/YYYY\");\r\n var upperBound = dayjs(\"07/01/\" + (thisYear + 1), \"DD/MM/YYYY\");\r\n this.christmasTime = today > lowerBound && today < upperBound;\r\n\r\n //Decide se siamo attorno ad halloween\r\n var lowerBound = dayjs(\"28/10/\" + thisYear, \"DD/MM/YYYY\");\r\n var upperBound = dayjs(\"05/11/\" + thisYear, \"DD/MM/YYYY\");\r\n this.halloweenTime = today > lowerBound && today < upperBound;\r\n\r\n this.intercom.inbounds.subscribe((t: InterComMessage) => { this.handleInboundMessage(t); });\r\n }\r\n\r\n // Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione\r\n hookEmbedding() {\r\n this.emb.MessageObserver.pipe(filter(ev => ev.event == \"navigation\")).subscribe(event => {\r\n var navigationOp = event?.data?.internalNavigation ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\";\r\n this.notifyDataChanged(navigationOp, event?.data?.title);\r\n });\r\n\r\n this.emb.MessageObserver.pipe(filter(ev => ev.event == \"window-message\")).subscribe(event => {\r\n this.notifyDataChanged(\"window-message\", event?.data);\r\n });\r\n\r\n this._data.pipe(filter(e => (e as any).event == \"menu.isCollapsed\")).subscribe(_ => {\r\n this.emb.refreshBoundariesOnMenuCollapse()\r\n });\r\n }\r\n\r\n /** Tenant§Account§User§APPNAME */\r\n getSessionIdentity(): string {\r\n if (this.SessionIdentity)\r\n return this.SessionIdentity;\r\n\r\n // Se non ho un id mi manca il login, quindi via di qua\r\n var id = this.getJaceIDentity();\r\n if (!id) {\r\n if(this.anonymousMode)\r\n return \"\";\r\n\r\n this.router.navigate([\"login\"]);\r\n return \"\";\r\n }\r\n\r\n this.SessionIdentity = \"\" + id.Idtenant + \"§\" + id.IdAccount + \"§\" + id.IdUser + \"§\" + myconfig.AppData.ModuleId;\r\n return this.SessionIdentity;\r\n }\r\n\r\n registerNavigationIfMeaningful(route?: ActivatedRouteSnapshot) {\r\n let title = route.data[\"title\"];\r\n let internal = route.data[\"internalNavigation\"]\r\n\r\n // Permette di chiamare sto registerNavigation a prescindere e fare opt out se non è una route navigabile\r\n if(!title) return;\r\n\r\n /*\r\n * Parent ({url: [{path: \"{module}\"}]})\r\n * Parent ({url: [{path: \"\"}]}) (Root del modulo lazy)\r\n * -> Navigazione attuale <-\r\n */\r\n let module = route.parent?.parent?.url[0]?.path;\r\n let loc = module ? this.ModulesLocalizations[module] : null;\r\n\r\n if (!module)\r\n console.error(\"Impossibile estrapolare il modulo dalla navigazione (Atteso Modulo al secondo livello di parentela partendo dal componente attuale): \" + route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'));\r\n\r\n this.notifyDataChanged(internal ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\", loc ? loc.loc(title) : title);\r\n }\r\n\r\n handleInboundMessage(t: InterComMessage) {\r\n switch (t.type) {\r\n case InboundMessageTypes.Navigation:\r\n this.notifyDataChanged(t.message.sub ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\", t.message.routeTitle);\r\n // export const MK_ADM = \"EsAdminModule\";\r\n // AdmMessageTypes.Message = 0;\r\n\r\n // definita in admin-module.\r\n // admin-module usa core quindi referenze circolari no-no-no\r\n this.intercom.send(0, \"Navigation Message Received\", \"EsAdminModule\");\r\n break;\r\n }\r\n }\r\n\r\n setupSignalRJobListening() {\r\n this.notifications.observe(this.MessageDef.IN_JobProgressNotification).subscribe((ev: JobProgressDto) => {\r\n\r\n var identity = this.getJaceIDentity();\r\n if (!identity)\r\n return;\r\n var desc = (ev.description || ev.actionid) + \" (\" + (ev.user || identity.DsUser) + \")\";\r\n let job: ApplicationJob = {\r\n id: ev.instance,\r\n description: desc,\r\n smalldescription: desc.length > 35 ? desc.substring(0, 30) + \"...\" : desc,\r\n percentage: this.roundToTwo(ev.progress),\r\n completed: ev.type == 'Completed',\r\n fileid: ev.resultfile,\r\n reportid: ev.resultreport,\r\n reportpars: ev.resultreportparams,\r\n complexreportid: ev.resultcomplexreport\r\n };\r\n\r\n switch (ev.type) {\r\n case \"Started\":\r\n if (this.jobWithIdsCache[ev.instance]) {\r\n console.warn(\"Job already registered on the 'Started' callback\");\r\n return;\r\n }\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n this.notifyDataChanged(\"app.startedJob\", job.description);\r\n break;\r\n case \"Progress\":\r\n // Se mi arriva un progress di un job che non ho significa che mi sono loggato ora con dei Job in corso\r\n // quindi per prima cosa devo metterlo in lista\r\n if (!this.jobWithIdsCache[ev.instance]) {\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n }\r\n this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);\r\n this.notifyDataChanged(\"app.progressJob\", { description: job.description, progress: this.jobWithIdsCache[ev.instance].percentage });\r\n break;\r\n case \"Completed\":\r\n if (!this.jobWithIdsCache[ev.instance]) {\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n }\r\n var jobToUpdate = this.jobWithIdsCache[ev.instance];\r\n jobToUpdate.percentage = 100;\r\n jobToUpdate.fileid = ev.resultfile;\r\n jobToUpdate.reportid = ev.resultreport;\r\n jobToUpdate.reportpars = ev.resultreportparams;\r\n jobToUpdate.completed = true;\r\n\r\n if (this.notifyOnCompletedJobs)\r\n this.notifyDataChanged(\"app.completedJob\", jobToUpdate.description);\r\n\r\n break;\r\n }\r\n\r\n this.jobsInProgress = this.allJobs.filter(t => !t.completed).length;\r\n });\r\n }\r\n\r\n roundToTwo(num) {\r\n return Math.round(num * 100) / 100;\r\n }\r\n\r\n getJaceIDentity(): JaceIdentity {\r\n if (this.JaceIdentity)\r\n return this.JaceIdentity;\r\n this.JaceIdentity = this.bts.getJaceIdentity();\r\n return this.JaceIdentity;\r\n }\r\n\r\n notifyDataChanged(event, value) {\r\n this._data[event] = value;\r\n this._data.next({\r\n event: event,\r\n data: this._data[event]\r\n });\r\n }\r\n\r\n subscribe(event: string, callback: Function) {\r\n var subscribers = this._subscriptions.get(event) || [];\r\n subscribers.push(callback);\r\n\r\n this._subscriptions.set(event, subscribers);\r\n }\r\n\r\n _onEvent(data: any) {\r\n var subscribers = this._subscriptions.get(data[\"event\"]) || [];\r\n\r\n subscribers.forEach((callback) => {\r\n callback.call(null, data[\"data\"]);\r\n });\r\n }\r\n\r\n public setSidebarWidth(width: number) {\r\n this.sidebarWidth = width;\r\n }\r\n\r\n public setHeaderHeight(height: number) {\r\n this.headerHeight = height;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { HttpServiceExtensions } from \"@esfaenza/httpservice\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { HTTPServiceExtensionsLoc } from \"./app.httpextensions.loc\";\r\nimport { AppState } from \"./app.state\";\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Injectable()\r\nexport class HTTPServiceExtensions implements HttpServiceExtensions {\r\n\r\n constructor(private lc: LocalizationService, private tks: TokenService, private as: AppState, private router: Router, private ac: AccessControlService, private msgs: MessageService) {\r\n this.lc = this.lc.generateFromType(HTTPServiceExtensionsLoc)\r\n }\r\n\r\n //Gestione Auth\r\n retrieveAccessToken(): string {\r\n return this.tks.getAccessToken().toString();\r\n }\r\n\r\n retrieveIdentity(): { IdUser: string; Idtenant: string; } {\r\n return <any>this.tks.getJaceIdentity();\r\n }\r\n\r\n //Gestione ridirezione al login / altre pagine\r\n readRedirectingToLogin(): boolean {\r\n return this.as.redirectingToLogin;\r\n }\r\n\r\n writeRedirectingToLogin(status: boolean) {\r\n this.as.redirectingToLogin = status;\r\n }\r\n\r\n redirectToLogin(): void {\r\n console.log(\"HTTPServiceExtensions - redirecting to login\");\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n\r\n readRedirectionStatus(): boolean {\r\n return myconfig?.redirectInProgress;\r\n }\r\n\r\n writeRedirectionStatus(status: boolean): void {\r\n myconfig.redirectInProgress = status;\r\n }\r\n\r\n //Gestione error handling flag\r\n readHandlingErrorStatus(): boolean {\r\n return this.as.handlingError;\r\n }\r\n\r\n writeHandlingErrorStatus(status: boolean) {\r\n this.as.handlingError = status;\r\n }\r\n\r\n // 444, se false passa a handleBlockingException\r\n handleNotConfiguredException(): boolean {\r\n if (this.ac.has(\"P:mdm_customize\")) {\r\n myconfig.redirectInProgress = true;\r\n this.as.handlingError = false;\r\n this.router.navigate([\"pages/adm/tenantconfig\"]);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // 400, 403, 404, 444\r\n handleBlockingException(status: number, text: string) {\r\n if (status == 403) {\r\n this.msgs.simpleError(\"Non si dispone dei permessi necessari ad effettuare questa operazione.\")\r\n this.as.handlingError = false;\r\n }\r\n else {\r\n this.msgs.simpleError(status + \": \" + text)\r\n this.as.handlingError = false;\r\n }\r\n }\r\n\r\n // Tutto quello che non è gestito da handleBlockingException\r\n handleException(status: number, text: string) {\r\n if (status == 503) {\r\n this.msgs.simpleError(this.lc.loc(\"Il Server sembra essere offline, prova a ricaricare la pagina\"));\r\n this.as.handlingError = false;\r\n }\r\n else if (status == 542) {\r\n this.msgs.simpleError(text);\r\n this.as.handlingError = false;\r\n }\r\n else {\r\n var st = btoa(encodeURIComponent(text).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(<any>(\"0x\" + p1))));\r\n var pars = { statusCode: status, statusText: st, fromUrl: this.router.url };\r\n this.router.navigate([\"iserr\", pars]);\r\n }\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { ApplicationMenu } from \"@esfaenza/core/domain\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class MenuFilteringService {\r\n /**\r\n * Applica un filtro agli elementi di menù in modo da poterli filtrare in base a condizioni arbitrarie (inclusi check lato BE)\r\n * \r\n * @param rawMenus Menù originali, non filtrati\r\n * @returns {Observable<ApplicationMenu[]>} Menù filtrati\r\n */\r\n public filter(rawMenus: ApplicationMenu[]): Observable<ApplicationMenu[]> {\r\n return of(rawMenus);\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { ApplicationJob } from \"@esfaenza/core/domain\";\r\n\r\n@Injectable()\r\nexport class CompletedJobRedirectionService {\r\n /**\r\n * Effettua un'operazione di redirect basata sul Job Completato\r\n * \r\n * @param completedJob Job appena completato per cui effettuare un redirect\r\n */\r\n public redirect(completedJob: ApplicationJob): void {\r\n\r\n }\r\n}","// Angular\r\nimport { Injectable, Inject } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever } from \"@esfaenza/preferences\";\r\n\r\n// Applicazione\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\n// Core\r\nimport { ANONYMOUS_MODE, EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SessionRetriever implements BaseSessionRetriever {\r\n\r\n private SessionIdentity: string;\r\n\r\n constructor(private bts: TokenService, private router: Router, @Inject(ANONYMOUS_MODE) private anonymousMode: boolean) { }\r\n\r\n /** Tenant§Account§User§ModuleId */\r\n getSessionKey(): string {\r\n if (this.SessionIdentity)\r\n return this.SessionIdentity;\r\n\r\n // Se non ho un id mi manca il login, quindi via di qua\r\n var id = this.bts.getJaceIdentity();\r\n if (!id) {\r\n if (this.anonymousMode)\r\n return \"\";\r\n\r\n console.log(\"SessionRetriever - no identity, redirecting to login\")\r\n this.router.navigate([\"login\"]);\r\n return \"\";\r\n }\r\n\r\n this.SessionIdentity = \"\" + id.Idtenant + \"§\" + id.IdAccount + \"§\" + id.IdUser + \"§\" + myconfig?.AppData?.ModuleId;\r\n return this.SessionIdentity;\r\n }\r\n}","// Angular\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever, CachePersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"../app.accesstoken\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Observable, of } from \"rxjs\";\r\nimport { catchError, map } from \"rxjs/operators\";\r\n\r\n// Chiamate ai Repository\r\nconst BASE_Cache_Sessions: string = \"/api/Cache/sessions\";\r\n\r\n@Injectable()\r\nexport class ApplicationCachePersistor extends CachePersistor {\r\n\r\n // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che \r\n // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...\r\n constructor(private lc: LocalizationService, private http: HttpClient, private tks: TokenService, session: BaseSessionRetriever) { super(session); }\r\n\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.post<boolean>(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public recover<T>(key?: string): Observable<T> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<string>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n var resProp = null;\r\n try { resProp = <T>JSON.parse(res); }\r\n catch { }\r\n return resProp;\r\n }));\r\n }\r\n\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<{ [index: string]: any; }>(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n for (var prop in res) {\r\n var resProp = null;\r\n try { resProp = JSON.parse(res[prop]); }\r\n catch { }\r\n res[prop] = resProp;\r\n }\r\n return res\r\n }));\r\n }\r\n\r\n public remove(key?: string): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public clear(): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n private getHeaders(contentType: string = 'application/json'): HttpHeaders {\r\n return new HttpHeaders()\r\n .append(\"Content-Type\", contentType)\r\n .append(\"Accept\", \"application/json\")\r\n .append(\"Authorization\", \"Bearer \" + this.tks.getAccessToken())\r\n .append(\"Accept-Language\", this.lc.Locale);\r\n }\r\n\r\n private getSessionUrl(sessionKey: string): string {\r\n return `${BASE_Cache_Sessions}/${sessionKey}`;\r\n }\r\n\r\n private getItemsUrl(sessionKey: string): string {\r\n return `${this.getSessionUrl(sessionKey)}/items`;\r\n }\r\n\r\n private getItemUrl(sessionKey: string, itemKey: string): string {\r\n return `${this.getItemsUrl(sessionKey)}/${itemKey}`;\r\n }\r\n}","// Angular\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever, PreferencesPersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"../app.accesstoken\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Observable, of } from \"rxjs\";\r\nimport { catchError, map } from \"rxjs/operators\";\r\n\r\n// Chiamate ai Repository\r\nconst BASE_Preferences_Sessions: string = \"/api/Preferences/sessions\";\r\n\r\n@Injectable()\r\nexport class ApplicationPreferencesPersistor extends PreferencesPersistor {\r\n\r\n // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che \r\n // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...\r\n constructor(private lc: LocalizationService, private http: HttpClient, private tks: TokenService, session: BaseSessionRetriever) { super(session); }\r\n\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.post<boolean>(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public recover<T>(key?: string): Observable<T> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<string>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {\r\n var resProp = null;\r\n try { resProp = <T>JSON.parse(res); }\r\n catch { }\r\n return resProp;\r\n }));\r\n }\r\n\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<{ [index: string]: any; }>(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n for (var prop in res) {\r\n var resProp = null;\r\n try { resProp = JSON.parse(res[prop]); }\r\n catch { }\r\n res[prop] = resProp;\r\n }\r\n return res\r\n }));\r\n }\r\n\r\n public remove(key?: string): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public clear(): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n private getHeaders(contentType: string = 'application/json'): HttpHeaders {\r\n return new HttpHeaders()\r\n .append(\"Content-Type\", contentType)\r\n .append(\"Accept\", \"application/json\")\r\n .append(\"Authorization\", \"Bearer \" + this.tks.getAccessToken())\r\n .append(\"Accept-Language\", this.lc.Locale);\r\n }\r\n\r\n private getSessionUrl(sessionKey: string): string {\r\n return `${BASE_Preferences_Sessions}/${sessionKey}`;\r\n }\r\n\r\n private getItemsUrl(sessionKey: string): string {\r\n return `${this.getSessionUrl(sessionKey)}/items`;\r\n }\r\n\r\n private getItemUrl(sessionKey: string, itemKey: string): string {\r\n return `${this.getItemsUrl(sessionKey)}/${itemKey}`;\r\n }\r\n}","// Angular\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n// ES\r\nimport { CallResult, MessageService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Configurazioni\r\nimport { TokenService } from \"../../app.accesstoken\";\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport { UpdatePasswordDto, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto, UserAccount, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\";\r\n\r\n// Chiamate ai Repository\r\nconst GET_UserProfile_GetAccountPicture: string = \"/api/UserProfile/GetAccountPicture\";\r\nconst POST_UserProfile_UpdateAccountPicture: string = \"/api/UserProfile/UpdateAccountPicture\";\r\nconst POST_UserProfile_UpdateAccountRecoveryInfos: string = \"/api/UserProfile/UpdateAccountRecoveryInfos\";\r\nconst POST_UserProfile_UpdateAccountPassword: string = \"/api/UserProfile/UpdateAccountPassword\";\r\nconst GET_UserProfile_DeleteAccountPicture: string = \"/api/UserProfile/DeleteAccountPicture\";\r\nconst GET_UserProfile_GetEntityAccount: string = \"/api/UserProfile/GetEntityAccount\";\r\n\r\n@Injectable()\r\nexport class UserPreferencesService {\r\n private AccountId: string;\r\n public ProfilePicture: SafeResourceUrl;\r\n\r\n public fakeToken: boolean;\r\n public sanitizer: DomSanitizer;\r\n public http: HTTPService;\r\n public msgExts: MessageService;\r\n\r\n constructor(private injector: Injector) {\r\n let tks = this.injector.get(TokenService);\r\n this.sanitizer = this.injector.get(DomSanitizer);\r\n this.http = this.injector.get(HTTPService);\r\n this.msgExts = this.injector.get(MessageService);\r\n this.fakeToken = this.injector.get(USE_FAKE_ACCESS_TOKEN) || false;\r\n\r\n var identity = tks.getJaceIdentity();\r\n if (identity) {\r\n this.AccountId = identity.IdAccount.toString();\r\n this.doReloadProfilePicture();\r\n }\r\n }\r\n\r\n public async getAccountProfile(): Promise<UserAccount> {\r\n let pars = new HttpParams().set(\"idAccount\", this.AccountId);\r\n let ret = await firstValueFrom(this.http.get<UserAccount>(GET_UserProfile_GetEntityAccount, pars));\r\n return ret;\r\n }\r\n\r\n public async doReloadProfilePicture() {\r\n this.ProfilePicture = null;\r\n let tmpPict = await this.getCurrentProfilePicture();\r\n this.ProfilePicture = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64,${tmpPict}`);\r\n }\r\n\r\n public async getCurrentProfilePicture(): Promise<string> {\r\n\r\n // Se fake token restituisco la stock image dell'utente\r\n if (this.fakeToken)\r\n return \"/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCaRXhpZgAASUkqAAgAAAADAA4BAgBQAAAAMgAAABoBBQABAAAAggAAABsBBQABAAAAigAAAAAAAABEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbiwBAAABAAAALAEAAAEAAAD/4QXHaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjEzMzcxNDQxNDYiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+TWFyaWEgU2hhcGlsb3ZhPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48ZGM6ZGVzY3JpcHRpb24+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5EZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbjwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5pc3RvY2twaG90by5jb20vcGhvdG8vbGljZW5zZS1nbTEzMzcxNDQxNDYtP3V0bV9tZWRpdW09b3JnYW5pYyZhbXA7dXRtX3NvdXJjZT1nb29nbGUmYW1wO3V0bV9jYW1wYWlnbj1pcHRjdXJsPC9wbHVzOkxpY2Vuc29yVVJMPjwvcmRmOmxpPjwvcmRmOlNlcT48L3BsdXM6TGljZW5zb3I+CgkJPC9yZGY6RGVzY3JpcHRpb24+Cgk8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+Cv/tAJZQaG90b3Nob3AgMy4wADhCSU0EBAAAAAAAehwCUAAPTWFyaWEgU2hhcGlsb3ZhHAJ4AFBEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbhwCbgAMR2V0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\";\r\n\r\n let pictureb64 = await firstValueFrom(this.http.get<string>(GET_UserProfile_GetAccountPicture, new HttpParams().set('idAccount', this.AccountId)));\r\n return pictureb64;\r\n }\r\n\r\n public async doUpdateProfilePicture(image: any): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dtoPic = new UpdateProfilePictureDto(this.AccountId);\r\n let cr = await firstValueFrom(this.http.postwithFiles<CallResult>(POST_UserProfile_UpdateAccountPicture, dtoPic, image ?? []));\r\n if (cr.success) this.doReloadProfilePicture();\r\n return cr;\r\n }\r\n\r\n public async doUpdateRecoverySettings(email: string): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dto = new UpdateAccountRecoverySettingsDto(this.AccountId, email);\r\n let cr = await firstValueFrom(this.http.post<CallResult>(POST_UserProfile_UpdateAccountRecoveryInfos, dto));\r\n return cr;\r\n }\r\n\r\n public async doUpdatePassword(oldPassword: string, newPassword: string, newPasswordConfirm: string): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dto = new UpdatePasswordDto(this.AccountId, oldPassword, newPassword, newPasswordConfirm);\r\n let cr = await firstValueFrom(this.http.post<CallResult>(POST_UserProfile_UpdateAccountPassword, dto));\r\n return cr;\r\n }\r\n\r\n public async doDeleteProfilePicture(): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let pars = new HttpParams().set('idAccount', this.AccountId);\r\n let cr = await firstValueFrom(this.http.get<CallResult>(GET_UserProfile_DeleteAccountPicture, pars));\r\n if (cr.success) this.ProfilePicture = null;\r\n return cr;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AccessControlRouteGuard, AccessControlService } from \"@esfaenza/access-control\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\n\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\n@Injectable()\r\nexport class BaseRouterGuard extends AccessControlRouteGuard {\r\n constructor(ms: MessageService, acc: AccessControlService, router: Router, ts: TokenService) {\r\n super(ms, acc, router);\r\n\r\n let identity = ts.getJaceIdentity();\r\n if (!acc.Initialized)\r\n acc.initializeIdentity(identity);\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TokenService","i3.AppState","i4","i5","i6","i3.TokenService","i2","i3","i4.TokenService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"esfaenza-core-services.mjs","sources":["../../../projects/core/services/src/classes/app.accesstoken.ts","../../../projects/core/services/src/classes/app.globalsearch.ts","../../../projects/core/services/src/classes/app.errorhandler.ts","../../../projects/core/services/src/classes/app.event.ts","../../../projects/core/services/src/classes/app.httpextensions.loc.ts","../../../projects/core/services/src/classes/app.state.ts","../../../projects/core/services/src/classes/app.httpextensions.ts","../../../projects/core/services/src/classes/app.menufilter.ts","../../../projects/core/services/src/classes/app.completedjobredirection.ts","../../../projects/core/services/src/classes/app.session.ts","../../../projects/core/services/src/classes/preferences/app.cache.persistor.ts","../../../projects/core/services/src/classes/preferences/app.preference.persistor.ts","../../../projects/core/services/src/classes/preferences/user/app.userpreferences.base.ts","../../../projects/core/services/src/classes/app.routeguard.ts","../../../projects/core/services/src/esfaenza-core-services.ts"],"sourcesContent":["// Angular\r\nimport { Inject, Injectable, Optional } from \"@angular/core\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { CookieService } from \"ngx-cookie-service\";\r\n\r\n// Applicazione\r\nimport { AccountScope, ANONYMOUS_MODE, JaceIdentity, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TokenService {\r\n\r\n public accountScope: AccountScope;\r\n\r\n constructor(public cs: CookieService, @Optional() @Inject(USE_FAKE_ACCESS_TOKEN) public USE_FAKE_ACCESS_TOKEN: boolean, @Optional() @Inject(ANONYMOUS_MODE) public ANONYMOUS_MODE: boolean) {\r\n if (this.USE_FAKE_ACCESS_TOKEN)\r\n this.accountScope = this.getFakeAccountScope();\r\n }\r\n\r\n clearTokens(): void {\r\n this.cs.delete(\"access_token\");\r\n }\r\n\r\n getAccessToken(): String {\r\n if(this.ANONYMOUS_MODE)\r\n return \"\";\r\n\r\n return this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get(\"accessToken\");\r\n }\r\n\r\n getJaceIdentity(): JaceIdentity {\r\n if(this.ANONYMOUS_MODE)\r\n return null;\r\n\r\n let token = this.USE_FAKE_ACCESS_TOKEN ? this.getFakeToken() : this.cs.get(\"accessToken\");\r\n if (!token)\r\n return null;\r\n\r\n let base64Url = token.split(\".\")[1];\r\n let base64 = base64Url.replace(\"-\", \"+\").replace(\"_\", \"/\");\r\n let tokenData = JSON.parse(decodeURIComponent(window.atob(base64).split(\"\").map(c => \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2)).join(\"\")));\r\n\r\n let identity: JaceIdentity = new JaceIdentity(this.accountScope);\r\n identity.IdActor = tokenData.ACTORID;\r\n identity.IdActorRole = tokenData.ACTORROLEID;\r\n identity.IdAccount = tokenData.ACCOUNTID;\r\n identity.IdUser = tokenData.USERID;\r\n identity.DsUser = tokenData.USERNAME;\r\n identity.FullName = tokenData.USERDESCRIPTION;\r\n identity.Idtenant = tokenData.TENANT;\r\n identity.TenantName = tokenData.TENANTNAME;\r\n identity.ExpirationTime = new Date(tokenData.exp * 1000);//unix-epoch in secondi -> millisecondi\r\n\r\n return identity;\r\n }\r\n\r\n //Accesstoken fittizio ma valido, per simulare la connession corretta col backend\r\n private getFakeToken(): string {\r\n\r\n /* Il Token generato è il seguente:\r\n\r\n {\r\n \"nbf\": 1590415846,\r\n \"exp\": 1990420065,\r\n \"iss\": \"http://authapi.jace.energysoftware.priv\",\r\n \"aud\": [ \"http://authapi.jace.energysoftware.priv/resources\", \"authentication\" ],\r\n \"client_id\": \"application\",\r\n \"sub\": \"1003\",\r\n \"auth_time\": 1590415846,\r\n \"idp\": \"local\",\r\n \"ACCOUNTID\": \"1003\",\r\n \"USERID\": \"259\",\r\n \"USERDESCRIPTION\": \"Test User\",\r\n \"USERNAME\": \"TEST\",\r\n \"TENANT\": \"FX\",\r\n \"TENANTNAME\": \"Fenix Srl\",\r\n \"jti\": \"0e5307561606e444e2885b11a3144421\",\r\n \"scope\": [ \"auth\", \"offline_access\" ],\r\n \"amr\": [\"password\" ],\r\n \"iat\": 1590416465\r\n }\r\n */\r\n return \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYmYiOjE1OTA0MTU4NDYsImV4cCI6MTk5MDQyMDA2NSwiaXNzIjoiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYiLCJhdWQiOlsiaHR0cDovL2F1dGhhcGlzdGFnaW5nYS5qYWNlLmVuZXJneXNvZnR3YXJlLnByaXYvcmVzb3VyY2VzIiwiYXV0aGVudGljYXRpbyJdLCJjbGllbnRfaWQiOiJtZXRlcmluZ3N0YWdpbmciLCJzdWIiOiIxMDAzIiwiYXV0aF90aW1lIjoxNTkwNDE1ODQ2LCJpZHAiOiJsb2NhbCIsIkFDQ09VTlRJRCI6IjEwMDMiLCJVU0VSSUQiOiIyNTkiLCJVU0VSREVTQ1JJUFRJT04iOiJUZXN0IFVzZXIiLCJVU0VSTkFNRSI6IlRFU1QiLCJURU5BTlQiOiJGWCIsIlRFTkFOVE5BTUUiOiJGZW5peCBTcmwiLCJqdGkiOiIwZTUzMDc1NjE2MDZlNDQ0ZTI4ODViMTFhMzE0NDQyMSIsInNjb3BlIjpbImF1dGgiLCJvZmZsaW5lX2FjY2VzcyJdLCJhbXIiOlsicGFzc3dvcmQiXSwiaWF0IjoxNTkwNDE2NDY1fQ.aev_Txa9tIaEZvZ_KWDqb2Ob95Nf-3rqsNyJX4BPKXE\";\r\n }\r\n\r\n private getFakeAccountScope(): AccountScope {\r\n let accountScope = {\r\n \"modules\": [\r\n {\r\n \"idmodule\": 36,\r\n \"dsname\": \"Auth\",\r\n \"dscategory\": \"Infrastructure\",\r\n \"idmodulealt\": \"auth\"\r\n },\r\n {\r\n \"idmodule\": 14,\r\n \"dsname\": \"Compliance Dati Catastali\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"complianceade\"\r\n },\r\n {\r\n \"idmodule\": 2,\r\n \"dsname\": \"Forecasting & Metering\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"mdm\"\r\n },\r\n {\r\n \"idmodule\": 48,\r\n \"dsname\": \"Sales Management\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"sales\"\r\n },\r\n {\r\n \"idmodule\": 42,\r\n \"dsname\": \"SII Connector\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"sii\"\r\n },\r\n {\r\n \"idmodule\": 5,\r\n \"dsname\": \"Billing\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"billing\"\r\n },\r\n {\r\n \"idmodule\": 7,\r\n \"dsname\": \"Cost checking & Reconciliation\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"ccr\"\r\n },\r\n {\r\n \"idmodule\": 8,\r\n \"dsname\": \"Compliance REMIT\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"remit\"\r\n },\r\n {\r\n \"idmodule\": 51,\r\n \"dsname\": \"CRM\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"crm\"\r\n },\r\n {\r\n \"idmodule\": 11,\r\n \"dsname\": \"Compliance ARERA\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"compliance\"\r\n },\r\n {\r\n \"idmodule\": 54,\r\n \"dsname\": \"Partner Portal\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"pp\"\r\n },\r\n {\r\n \"idmodule\": 35,\r\n \"dsname\": \"Scheduler\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"scheduler\"\r\n },\r\n {\r\n \"idmodule\": 34,\r\n \"dsname\": \"Jace Dashboard\",\r\n \"dscategory\": \"Infrastructure\",\r\n \"idmodulealt\": \"jace\"\r\n },\r\n {\r\n \"idmodule\": 1,\r\n \"dsname\": \"Market Data\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"marketdata\"\r\n },\r\n {\r\n \"idmodule\": 31,\r\n \"dsname\": \"Toolset\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"toolset\"\r\n },\r\n {\r\n \"idmodule\": 32,\r\n \"dsname\": \"Customer Portal Admin\",\r\n \"dscategory\": \"Administration\",\r\n \"idmodulealt\": \"customerportal\"\r\n },\r\n {\r\n \"idmodule\": 10,\r\n \"dsname\": \"Compliance Dogane\",\r\n \"dscategory\": \"Compliance\",\r\n \"idmodulealt\": \"dogane\"\r\n },\r\n {\r\n \"idmodule\": 40,\r\n \"dsname\": \"Data Manager\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"dmg\"\r\n },\r\n {\r\n \"idmodule\": 12,\r\n \"dsname\": \"Credit Management\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"credit\"\r\n },\r\n {\r\n \"idmodule\": 52,\r\n \"dsname\": \"Business Process Manager\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"BPM\"\r\n },\r\n {\r\n \"idmodule\": 46,\r\n \"dsname\": \"Logistic\",\r\n \"dscategory\": \"Data Treatment\",\r\n \"idmodulealt\": \"lgs\"\r\n }\r\n ],\r\n \"roles\": [\r\n {\r\n \"idrole\": 1,\r\n \"idrolealt\": \"Tenant Admin\",\r\n \"dsrole\": \"Tenant Admin\",\r\n \"dsnote\": \"Per generici permessi di amministrazione/configurazione di un modulo: Es. Billi\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-05-02T11:03:35+02:00\"),\r\n \"syuserins\": \"AUTH\"\r\n },\r\n {\r\n \"idrole\": 9,\r\n \"idrolealt\": \"Tenant Reader\",\r\n \"dsrole\": \"Tenant Reader\",\r\n \"dsnote\": \"Per generico permesso di lettura su tutti i moduli abilitati del Tenant\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:13:38+02:00\"),\r\n \"syuserins\": \"FRANCEM\",\r\n \"sydataupd\": new Date(\"2018-12-03T19:42:41+01:00\"),\r\n \"syuserupd\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 11,\r\n \"idrolealt\": \"Compl. ARERA Reader\",\r\n \"dsrole\": \"Compl. ARERA Reader\",\r\n \"dsnote\": \"Permesso di lettura al solo modulo Compl. ARERA\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:22:56+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 13,\r\n \"idrolealt\": \"Compl. ARERA Writer L1\",\r\n \"dsrole\": \"Compl. ARERA Writer L1\",\r\n \"dsnote\": \"Responsabile business del modulo Compl. ARERA: può chiudere indagini\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:23:15+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 15,\r\n \"idrolealt\": \"Compl. ARERA Writer L2\",\r\n \"dsrole\": \"Compl. ARERA Writer L2\",\r\n \"dsnote\": \"Operatore business del modulo Compl. ARERA: può elaborare, ma non chiudere indagini\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-23T16:23:27+02:00\"),\r\n \"syuserins\": \"FRANCEM\"\r\n },\r\n {\r\n \"idrole\": 28,\r\n \"idrolealt\": \"Jace Admin\",\r\n \"dsrole\": \"Jace Admin\",\r\n \"dsnote\": \"Amministratore generico per l'intera suite.\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2018-07-25T17:20:41+02:00\"),\r\n \"syuserins\": \"RIVOLAM\"\r\n },\r\n {\r\n \"idrole\": 88,\r\n \"idrolealt\": \"Metering: Reader\",\r\n \"dsrole\": \"Metering: Reader\",\r\n \"dsnote\": \"Sola lettura\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:12+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 89,\r\n \"idrolealt\": \"Metering: Writer L1\",\r\n \"dsrole\": \"Metering: Writer L1\",\r\n \"dsnote\": \"Gestione entità semplici\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:17+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 90,\r\n \"idrolealt\": \"Metering: Writer L2\",\r\n \"dsrole\": \"Metering: Writer L2\",\r\n \"dsnote\": \"Gestione entità complesse\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:21+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 91,\r\n \"idrolealt\": \"Metering: Admin\",\r\n \"dsrole\": \"Metering: Admin\",\r\n \"dsnote\": \"Customizzazione\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2019-04-30T12:29:29+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 269,\r\n \"idrolealt\": \"dgn_op\",\r\n \"dsrole\": \"Dogane Operator\",\r\n \"dsnote\": \"Consente di fare operazioni come ad esempio generare un pagamento massivo, una comunicazione massiva o modificare le posizioni / comunicaizoni\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-07-01T12:31:32+02:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 349,\r\n \"idrolealt\": \"cost_admin\",\r\n \"dsrole\": \"Costchecking Writer L2\",\r\n \"dsnote\": \"Ruolo di admin per il costchecking che consente di utilizzare qualunque funzionalità del modulo\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-11-17T09:44:48+01:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 370,\r\n \"idrolealt\": \"toolset_reader\",\r\n \"dsrole\": \"Toolset Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2020-11-24T10:48:33+01:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 489,\r\n \"idrolealt\": \"lgs_read\",\r\n \"dsrole\": \"Logistica Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:50:54+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 491,\r\n \"idrolealt\": \"lgs_md_write\",\r\n \"dsrole\": \"Logistica Writer Ana\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:51:09+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 492,\r\n \"idrolealt\": \"lgs_eap_write\",\r\n \"dsrole\": \"Logistica Writer Aggr\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:52:46+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 493,\r\n \"idrolealt\": \"lgs_pce\",\r\n \"dsrole\": \"Logistica Writer PCE\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:09+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 494,\r\n \"idrolealt\": \"lgs_ipex\",\r\n \"dsrole\": \"Logistica Writer IPEX\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:18+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 495,\r\n \"idrolealt\": \"lgs_invauth\",\r\n \"dsrole\": \"Logistica Writer Benestari GME\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:30+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 496,\r\n \"idrolealt\": \"lgs_terna\",\r\n \"dsrole\": \"Logistica Writer Settlement Terna\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:44+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 497,\r\n \"idrolealt\": \"lgs_writer_full\",\r\n \"dsrole\": \"Logistica Full Writer\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2021-03-30T16:53:56+02:00\"),\r\n \"syuserins\": \"FERNIAA\"\r\n },\r\n {\r\n \"idrole\": 688,\r\n \"idrolealt\": \"blg_business\",\r\n \"dsrole\": \"Billing Business\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2022-09-20T09:26:42+02:00\"),\r\n \"syuserins\": \"RONDINC\"\r\n },\r\n {\r\n \"idrole\": 708,\r\n \"idrolealt\": \"cus_admin\",\r\n \"dsrole\": \"CustomerPortal Admin\",\r\n \"dsnote\": \"Amministrazione utenti CustomerPortal\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2022-11-16T10:17:01+01:00\"),\r\n \"syuserins\": \"TURCHII\"\r\n },\r\n {\r\n \"idrole\": 808,\r\n \"idrolealt\": \"crm_fo_rd\",\r\n \"dsrole\": \"CRM FrontOffice Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:34+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 809,\r\n \"idrolealt\": \"crm_bo_rd\",\r\n \"dsrole\": \"CRM BackOffice Reader\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:45+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 810,\r\n \"idrolealt\": \"crm_bo_wr_l1\",\r\n \"dsrole\": \"CRM BackOffice Writer L1\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:52+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 811,\r\n \"idrolealt\": \"crm_bo_wr_l2\",\r\n \"dsrole\": \"CRM BackOffice Writer L2\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:18:59+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 812,\r\n \"idrolealt\": \"crm_fo_wr_l1\",\r\n \"dsrole\": \"CRM FrontOffice Writer L1\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:19:04+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n },\r\n {\r\n \"idrole\": 813,\r\n \"idrolealt\": \"crm_fo_wr_l2\",\r\n \"dsrole\": \"CRM FrontOffice Writer L2\",\r\n \"idparent\": 0,\r\n \"sydatains\": new Date(\"2023-07-19T13:19:09+02:00\"),\r\n \"syuserins\": \"GHETTIE\"\r\n }\r\n ],\r\n \"permissions\": [\r\n {\r\n \"idpermission\": 51,\r\n \"dspermission\": \"Operazioni massive forecasting su metering\",\r\n \"idpermissionalt\": \"mdm_mass_fct\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 134,\r\n \"dspermission\": \"Dogane apri / chiudi posizioni\",\r\n \"idpermissionalt\": \"dgn_pos_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 211,\r\n \"dspermission\": \"Scarico dati sistemi AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_dl\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 271,\r\n \"dspermission\": \"Dogane Elimina Importazione\",\r\n \"idpermissionalt\": \"dgn_flow_delete\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 131,\r\n \"dspermission\": \"Dogane Read\",\r\n \"idpermissionalt\": \"dgn_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 133,\r\n \"dspermission\": \"Dogane operazioni su rate e pagamenti \",\r\n \"idpermissionalt\": \"dgn_payments_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 291,\r\n \"dspermission\": \"Logistica - modifica dati anagrafica\",\r\n \"idpermissionalt\": \"lgs_md_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 292,\r\n \"dspermission\": \"Logistica - lettura dati PCE\",\r\n \"idpermissionalt\": \"lgs_pce_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 293,\r\n \"dspermission\": \"Logistica - scrittura dati PCE\",\r\n \"idpermissionalt\": \"lgs_pce_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 294,\r\n \"dspermission\": \"Logistica - lettura dati IPEX\",\r\n \"idpermissionalt\": \"lgs_ipex_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 296,\r\n \"dspermission\": \"Logistica - scrittura dati IPEX\",\r\n \"idpermissionalt\": \"lgs_ipex_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 297,\r\n \"dspermission\": \"Logistica - lettura dati benestari\",\r\n \"idpermissionalt\": \"lgs_invauth_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 298,\r\n \"dspermission\": \"Logistica - scrittura dati benestari\",\r\n \"idpermissionalt\": \"lgs_invauth_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 299,\r\n \"dspermission\": \"Logistica - lettura settlement terna\",\r\n \"idpermissionalt\": \"lgs_terna_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 300,\r\n \"dspermission\": \"Logistica - scrittura settlement terna\",\r\n \"idpermissionalt\": \"lgs_terna_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 301,\r\n \"dspermission\": \"Logistica - Gestione servizi\",\r\n \"idpermissionalt\": \"lgs_gme_services\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 302,\r\n \"dspermission\": \"Logistica - Lettura\",\r\n \"idpermissionalt\": \"lgs_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 303,\r\n \"dspermission\": \"Logistica - Gestione Programmi aggregati/chiusure\",\r\n \"idpermissionalt\": \"lgs_eap_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 304,\r\n \"dspermission\": \"Logistica - Gestione Programmi aggregati - riaperture\",\r\n \"idpermissionalt\": \"lgs_eap_reopen\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 411,\r\n \"dspermission\": \"Billing - Lettura dati 'Lotti di fatturazione'\",\r\n \"idpermissionalt\": \"blg_elblot_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 511,\r\n \"dspermission\": \"CRM Cap/Floor\",\r\n \"idpermissionalt\": \"crm_capfloor\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 611,\r\n \"dspermission\": \"Crm - Mandati SEDA lettura\",\r\n \"idpermissionalt\": \"crm_back_seda_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 613,\r\n \"dspermission\": \"Crm - Mandati SEDA scrittura\",\r\n \"idpermissionalt\": \"crm_back_seda_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 172,\r\n \"dspermission\": \"Costchecking Writer L1\",\r\n \"idpermissionalt\": \"ccc_writer_l1\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 173,\r\n \"dspermission\": \"Costchecking Writer L2\",\r\n \"idpermissionalt\": \"ccc_writer_l2\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 171,\r\n \"dspermission\": \"Costchecking Reader\",\r\n \"idpermissionalt\": \"ccc_reader\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 471,\r\n \"dspermission\": \"Crm - Lead lettura\",\r\n \"idpermissionalt\": \"crm_lead_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 472,\r\n \"dspermission\": \"Crm - Lead scrittura\",\r\n \"idpermissionalt\": \"crm_lead_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 473,\r\n \"dspermission\": \"Crm - Opportunity lettura\",\r\n \"idpermissionalt\": \"crm_opp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 474,\r\n \"dspermission\": \"Crm - Opportunity scrittura\",\r\n \"idpermissionalt\": \"crm_opp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 475,\r\n \"dspermission\": \"Crm - Controparti lettura\",\r\n \"idpermissionalt\": \"crm_prt_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 476,\r\n \"dspermission\": \"Crm - Controparti scrittura\",\r\n \"idpermissionalt\": \"crm_prt_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 477,\r\n \"dspermission\": \"Crm - Punti lettura\",\r\n \"idpermissionalt\": \"crm_sp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 478,\r\n \"dspermission\": \"Crm - Punti scrittura\",\r\n \"idpermissionalt\": \"crm_sp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 479,\r\n \"dspermission\": \"Crm - Contatti lettura\",\r\n \"idpermissionalt\": \"crm_cnt_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 480,\r\n \"dspermission\": \"Crm - Contatti scrittura\",\r\n \"idpermissionalt\": \"crm_cnt_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 481,\r\n \"dspermission\": \"Crm - Case lettura\",\r\n \"idpermissionalt\": \"crm_cas_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 482,\r\n \"dspermission\": \"Crm - Case scrittura\",\r\n \"idpermissionalt\": \"crm_cas_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 483,\r\n \"dspermission\": \"Crm - Richieste lettura\",\r\n \"idpermissionalt\": \"crm_bpm_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 484,\r\n \"dspermission\": \"Crm - Richieste scrittura\",\r\n \"idpermissionalt\": \"crm_bpm_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 485,\r\n \"dspermission\": \"Crm - Prodotti lettura\",\r\n \"idpermissionalt\": \"crm_prd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 486,\r\n \"dspermission\": \"Crm - Prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_prd_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 487,\r\n \"dspermission\": \"Crm - Tipi prodotti lettura\",\r\n \"idpermissionalt\": \"crm_tprd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 488,\r\n \"dspermission\": \"Crm - Tipi prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_tprd_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 489,\r\n \"dspermission\": \"Crm - Contratti lettura\",\r\n \"idpermissionalt\": \"crm_ctr_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 490,\r\n \"dspermission\": \"Crm - Contratti scrittura\",\r\n \"idpermissionalt\": \"crm_ctr_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 491,\r\n \"dspermission\": \"Crm - Campagne lettura\",\r\n \"idpermissionalt\": \"crm_cmp_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 492,\r\n \"dspermission\": \"Crm - Campagne scrittura\",\r\n \"idpermissionalt\": \"crm_cmp_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 493,\r\n \"dspermission\": \"Crm - Email services lettura\",\r\n \"idpermissionalt\": \"crm_email_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 494,\r\n \"dspermission\": \"Crm - Email services scrittura\",\r\n \"idpermissionalt\": \"crm_email_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 495,\r\n \"dspermission\": \"Crm - Backoffice lettura\",\r\n \"idpermissionalt\": \"crm_back_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 496,\r\n \"dspermission\": \"Crm - Backoffice scrittura\",\r\n \"idpermissionalt\": \"crm_back_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 497,\r\n \"dspermission\": \"Crm - Backoffice amministrazione lettura\",\r\n \"idpermissionalt\": \"crm_back_adm_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 499,\r\n \"dspermission\": \"Crm - Backoffice amministrazione scrittura\",\r\n \"idpermissionalt\": \"crm_back_adm_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 500,\r\n \"dspermission\": \"Crm - File import\",\r\n \"idpermissionalt\": \"crm_import\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 571,\r\n \"dspermission\": \"Crm - Backoffice Banche scrittura\",\r\n \"idpermissionalt\": \"crm_back_banks_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 572,\r\n \"dspermission\": \"Crm - Backoffice Banche lettura\",\r\n \"idpermissionalt\": \"crm_back_banks_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 573,\r\n \"dspermission\": \"Crm - Backoffice Termini di Pagamento scrittura\",\r\n \"idpermissionalt\": \"crm_back_paymentterms_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 574,\r\n \"dspermission\": \"Crm - Backoffice Termini di Pagamento lettura\",\r\n \"idpermissionalt\": \"crm_back_paymentterms_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 575,\r\n \"dspermission\": \"Crm - Backoffice Prodotti scrittura\",\r\n \"idpermissionalt\": \"crm_back_products_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 576,\r\n \"dspermission\": \"Crm - Backoffice Prodotti lettura\",\r\n \"idpermissionalt\": \"crm_back_products_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 591,\r\n \"dspermission\": \"Crm - Backend Aggiungi/Modifica CAB\",\r\n \"idpermissionalt\": \"crm_back_cab_wr\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 14,\r\n \"dspermission\": \"Operazioni base metering\",\r\n \"idpermissionalt\": \"mdm_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 15,\r\n \"dspermission\": \"Operazioni massive metering\",\r\n \"idpermissionalt\": \"mdm_mass_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 16,\r\n \"dspermission\": \"Operazioni avanzate metering\",\r\n \"idpermissionalt\": \"mdm_adv_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 17,\r\n \"dspermission\": \"Operazioni forecasting su metering\",\r\n \"idpermissionalt\": \"mdm_fct\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 18,\r\n \"dspermission\": \"Operazioni configurazione base metering\",\r\n \"idpermissionalt\": \"mdm_cfg_base\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 19,\r\n \"dspermission\": \"Operazioni configurazione avanzata metering\",\r\n \"idpermissionalt\": \"mdm_cfg_adv\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 21,\r\n \"dspermission\": \"Operazioni customizzazione metering\",\r\n \"idpermissionalt\": \"mdm_customize\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 22,\r\n \"dspermission\": \"Visualizzazione dati metering\",\r\n \"idpermissionalt\": \"mdm_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 151,\r\n \"dspermission\": \"Dogane Operazioni Comunicazioni\",\r\n \"idpermissionalt\": \"dgn_comm_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 153,\r\n \"dspermission\": \"Dogane Admin Comunicazioni\",\r\n \"idpermissionalt\": \"dgn_comm_adm\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 154,\r\n \"dspermission\": \"Dogane Operazioni Pagamenti Massivi\",\r\n \"idpermissionalt\": \"dgn_pag_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 155,\r\n \"dspermission\": \"Dogane Pagamenti Retro\",\r\n \"idpermissionalt\": \"dgn_pag_rt\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 156,\r\n \"dspermission\": \"Dogane Pagamenti Admin\",\r\n \"idpermissionalt\": \"dgn_pag_adm\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 157,\r\n \"dspermission\": \"Dogane Dichiarazioni di consumo Read\",\r\n \"idpermissionalt\": \"dgn_dich_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 158,\r\n \"dspermission\": \"Dogane Operazioni Dichiarazioni di consumo\",\r\n \"idpermissionalt\": \"dgn_dich_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 159,\r\n \"dspermission\": \"Dogane Cod. Ditta Read\",\r\n \"idpermissionalt\": \"dgn_codditta_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 161,\r\n \"dspermission\": \"Dogane modifica template\",\r\n \"idpermissionalt\": \"dgn_templ_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 162,\r\n \"dspermission\": \"Dogane gestione credito\",\r\n \"idpermissionalt\": \"dgn_pos_credit_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 231,\r\n \"dspermission\": \"Dogane Import Read\",\r\n \"idpermissionalt\": \"dgn_import_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 232,\r\n \"dspermission\": \"Dogane Import Writer\",\r\n \"idpermissionalt\": \"dgn_import_writer\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 305,\r\n \"dspermission\": \"Logistica - Scrittura generica (es: import file, ecc.)\",\r\n \"idpermissionalt\": \"lgs_write\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 306,\r\n \"dspermission\": \"Logistica - permessi admin\",\r\n \"idpermissionalt\": \"lgs_admin\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 431,\r\n \"dspermission\": \"Billing - Riesegui 'Lotti di fatturazione'\",\r\n \"idpermissionalt\": \"blg_elblot_exec\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 501,\r\n \"dspermission\": \"AutoConsumo Diffuso - lettura\",\r\n \"idpermissionalt\": \"acd_rd\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 1,\r\n \"dspermission\": \"Gestione utenti tenant\",\r\n \"idpermissionalt\": \"manage_user\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 2,\r\n \"dspermission\": \"View moduli tenant\",\r\n \"idpermissionalt\": \"manage_modules\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 192,\r\n \"dspermission\": \"Modifica configurazione sistemi AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_customize\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 132,\r\n \"dspermission\": \"Dogane esegui data checks\",\r\n \"idpermissionalt\": \"dgn_datachecks_op\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 191,\r\n \"dspermission\": \"Lettura info AMI metering\",\r\n \"idpermissionalt\": \"mdm_ami_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 31,\r\n \"dspermission\": \"Visualizzazione dati avanzati metering\",\r\n \"idpermissionalt\": \"mdm_adv_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 32,\r\n \"dspermission\": \"Visualizzazione configurazione metering\",\r\n \"idpermissionalt\": \"mdm_cfg_read\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 33,\r\n \"dspermission\": \"Operazioni massive eliminazione metering\",\r\n \"idpermissionalt\": \"mdm_mass_del\",\r\n \"sydatains\": null\r\n },\r\n {\r\n \"idpermission\": 135,\r\n \"dspermission\": \"Dogane Operazioni su Forniture\",\r\n \"idpermissionalt\": \"dgn_for_op\",\r\n \"sydatains\": null\r\n }\r\n ]\r\n }\r\n return accountScope;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { KeyValue, SearchResultContainer } from \"@esfaenza/core/domain\";\r\n\r\n// Rxjs\r\nimport { Observable, of } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class GlobalSearchService {\r\n public Enabled: boolean = false;\r\n\r\n /**\r\n * Effettua una ricerca in base a un termine generico\r\n * \r\n * @param term Termine da cercare\r\n * @returns {SearchResultContainer} Contenitore della ricerca\r\n */\r\n public search(term: string): Observable<SearchResultContainer> {\r\n return of(null);\r\n }\r\n\r\n /**\r\n * Data la definizione semplice di una colonna restituisce un oggetto che indica se bisogna presentere un link su di essa\r\n * \r\n * @param column Colonna per cui verificare la presentazione di un link. Esempio: {id: \"IDPARTY\", description: \"Cod. Controparte\"}\r\n * @returns {{ routePath: string, routeProperties: string[] }} Oggetto che indica un link con i propri binding. Ad esempio: {routePath: \"['/pages/parties/parties_details', { 'idModel': '{0}' }]\", routeProperties: [\"IDPARTY\"]}\r\n */\r\n public generateColumnLink(column: KeyValue): { routePath: string, routeProperties: string[] } {\r\n return null;\r\n }\r\n}","// Angular\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Router } from \"@angular/router\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions\r\n\r\n@Injectable()\r\nexport class APPErrorHandler implements ErrorHandler {\r\n private router;\r\n\r\n constructor(private injector: Injector) { }\r\n\r\n handleError(error) {\r\n if (this.router == null)\r\n this.router = this.injector.get(Router);\r\n\r\n //Ignoro eventuali errori di javascript quando il redirect è attivo\r\n if (myconfig && myconfig.redirectInProgress) {\r\n console.log(\"Javascript error on redirect in progress, ignoring this event\");\r\n return;\r\n }\r\n\r\n //In caso io abbia impostato succesresultmandatory nell'httprequest e questa abbia dato errore tiro fuori un exception che dev'essere mostrata come si deve\r\n var newError = \"\";\r\n if (!error.message && !error.stack)\r\n newError = error\r\n else if (error instanceof HttpErrorResponse)\r\n newError = error.message;\r\n else\r\n newError = error.stack && error.stack.length > 1000 ? error.stack.substring(0, 999) + \"[...]\" : error.stack;\r\n\r\n var pars = { errorMessage: this.b64EncodeUnicode(newError), fromUrl: this.router.url };\r\n this.router.navigate([\"/anerr\", pars]);\r\n }\r\n\r\n b64EncodeUnicode(str) {\r\n // first we use encodeURIComponent to get percent-encoded UTF-8,\r\n // then we convert the percent encodings into raw bytes which\r\n // can be fed into btoa.\r\n return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(<any>(\"0x\" + p1))));\r\n }\r\n}","// Angular\r\nimport { Injectable, NgZone } from \"@angular/core\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OutZoneEventPlugin {\r\n\r\n constructor(private zone: NgZone) { }\r\n\r\n supports(eventName: string): boolean {\r\n return eventName.endsWith('out-zone');\r\n }\r\n\r\n addEventListener(element: HTMLElement, eventName: string, originalHandler: Function): Function {\r\n let eventOriginalName = eventName.split('.')[0];\r\n let standardHandler = (event: Event) => originalHandler(event)\r\n if (eventName.endsWith('out-zone'))\r\n this.zone.runOutsideAngular(() => { element.addEventListener(eventOriginalName, standardHandler); });\r\n else\r\n element.addEventListener(eventOriginalName, standardHandler)\r\n\r\n return () => element.removeEventListener(eventOriginalName, standardHandler);\r\n }\r\n}","import { Injectable, Injector } from \"@angular/core\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\n\r\n@Injectable()\r\nexport class HTTPServiceExtensionsLoc extends LocalizationService {\r\n constructor(injector: Injector) {\r\n super(injector);\r\n super.set(\"it->en\", \"Il Server sembra essere offline, prova a ricaricare la pagina\", [\"Server seems to be offline, try to reload this page\"]);\r\n }\r\n}","// Angular\r\nimport { ActivatedRouteSnapshot, Router } from \"@angular/router\";\r\nimport { Inject, Injectable, Injector } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseMessageService, NotificationsService, JobProgressDto } from \"@esfaenza/signalr-notifications\";\r\nimport { InboundMessageTypes, InterComMessage, InterComService } from \"@esfaenza/extensions\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\nimport { AppEmbeddingExtensions } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Core\r\nimport { ActiveModuleView, ANONYMOUS_MODE, ApplicationJob, EnvOptions, JaceIdentity, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Subject, filter } from \"rxjs\";\r\n\r\ndeclare var dayjs: any;\r\ndeclare var myconfig: EnvOptions;\r\n\r\n// Chiamate ai Repository\r\nconst GET_Jace_GetActiveJaceModules: string = \"/api/Jace/GetActiveJaceModules\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class AppState {\r\n\r\n public sidebarWidth: number;\r\n public headerHeight: number;\r\n\r\n public redirectingToLogin: boolean = false;\r\n public handlingError: boolean = false;\r\n public christmasTime: boolean = false;\r\n public halloweenTime: boolean = false;\r\n\r\n private SessionIdentity: string;\r\n private JaceIdentity: JaceIdentity;\r\n\r\n public jobsInProgress: number = 0;\r\n public allJobs: ApplicationJob[] = [];\r\n private jobWithIdsCache: { [index: string]: ApplicationJob } = {};\r\n public notifyOnCompletedJobs: boolean = true;\r\n\r\n private _data = new Subject<Object>();\r\n private _subscriptions: Map<string, Array<Function>> = new Map<string, Array<Function>>();\r\n\r\n public ModulesLocalizations: { [id: string]: LocalizationService } = {};\r\n\r\n private _modules: ActiveModuleView[];\r\n public set Modules(modules: ActiveModuleView[]) {\r\n this._modules = modules;\r\n this.notifyDataChanged(\"modules.Retrieved\", this._modules);\r\n }\r\n public get Modules(): ActiveModuleView[] { return this._modules; }\r\n\r\n constructor(\r\n private router: Router, private lc: LocalizationService, private inj: Injector, private bts: TokenService, private notifications: NotificationsService, private MessageDef: BaseMessageService, \r\n private intercom: InterComService, private emb: AppEmbeddingExtensions, @Inject(USE_FAKE_ACCESS_TOKEN) private fakeToken: boolean, @Inject(ANONYMOUS_MODE) private anonymousMode : boolean) {\r\n\r\n this.hookEmbedding();\r\n\r\n this.setupSignalRJobListening();\r\n this.getActiveJaceModules();\r\n\r\n this.JaceIdentity = null;\r\n this._data.subscribe((data) => this._onEvent(data));\r\n\r\n //Decide se siamo attorno a natale\r\n var today = dayjs();\r\n var thisYear = today.year();\r\n var lowerBound = dayjs(\"18/12/\" + thisYear, \"DD/MM/YYYY\");\r\n var upperBound = dayjs(\"07/01/\" + (thisYear + 1), \"DD/MM/YYYY\");\r\n this.christmasTime = today > lowerBound && today < upperBound;\r\n\r\n //Decide se siamo attorno ad halloween\r\n var lowerBound = dayjs(\"28/10/\" + thisYear, \"DD/MM/YYYY\");\r\n var upperBound = dayjs(\"05/11/\" + thisYear, \"DD/MM/YYYY\");\r\n this.halloweenTime = today > lowerBound && today < upperBound;\r\n\r\n this.intercom.inbounds.subscribe((t: InterComMessage) => { this.handleInboundMessage(t); });\r\n }\r\n\r\n getActiveJaceModules() {\r\n // Recupero i moduli dopo un frame. mi assicuro che l'injection tree sia stabile. \r\n // Altrimenti l'httpservice che prende l'httpserviceextensions providato da core quando anche l'appstate è providedin root\r\n // si incasina e va in loop\r\n requestAnimationFrame(() => {\r\n let http = this.inj.get(HTTPService)\r\n if (this.fakeToken) {\r\n this.Modules = [new ActiveModuleView(\"Modulo Esempio 1\"), new ActiveModuleView(\"Modulo Esempio 2\"), new ActiveModuleView(\"Modulo Esempio 3\")];\r\n this.Modules = this.Modules;\r\n return;\r\n }\r\n\r\n http.get<ActiveModuleView[]>(GET_Jace_GetActiveJaceModules).subscribe(res => {\r\n this.Modules = res;\r\n this.Modules = this.Modules;\r\n });\r\n })\r\n }\r\n\r\n // Collego le informazioni dell'embedding che devono appoggiarsi all'app state in modo che possano comunicare col resto dell'applicazione\r\n hookEmbedding() {\r\n this.emb.MessageObserver.pipe(filter(ev => ev.event == \"navigation\")).subscribe(event => {\r\n var navigationOp = event?.data?.internalNavigation ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\";\r\n this.notifyDataChanged(navigationOp, event?.data?.title);\r\n });\r\n\r\n this.emb.MessageObserver.pipe(filter(ev => ev.event == \"window-message\")).subscribe(event => {\r\n this.notifyDataChanged(\"window-message\", event?.data);\r\n });\r\n\r\n this._data.pipe(filter(e => (e as any).event == \"menu.isCollapsed\")).subscribe(_ => {\r\n this.emb.refreshBoundariesOnMenuCollapse()\r\n });\r\n }\r\n\r\n /** Tenant§Account§User§APPNAME */\r\n getSessionIdentity(): string {\r\n if (this.SessionIdentity)\r\n return this.SessionIdentity;\r\n\r\n // Se non ho un id mi manca il login, quindi via di qua\r\n var id = this.getJaceIDentity();\r\n if (!id) {\r\n if(this.anonymousMode)\r\n return \"\";\r\n\r\n this.router.navigate([\"login\"]);\r\n return \"\";\r\n }\r\n\r\n this.SessionIdentity = \"\" + id.Idtenant + \"§\" + id.IdAccount + \"§\" + id.IdUser + \"§\" + myconfig.AppData.ModuleId;\r\n return this.SessionIdentity;\r\n }\r\n\r\n registerNavigationIfMeaningful(route?: ActivatedRouteSnapshot) {\r\n let title = route.data[\"title\"];\r\n let internal = route.data[\"internalNavigation\"]\r\n\r\n // Permette di chiamare sto registerNavigation a prescindere e fare opt out se non è una route navigabile\r\n if(!title) return;\r\n\r\n /*\r\n * Parent ({url: [{path: \"{module}\"}]})\r\n * Parent ({url: [{path: \"\"}]}) (Root del modulo lazy)\r\n * -> Navigazione attuale <-\r\n */\r\n let module = route.parent?.parent?.url[0]?.path;\r\n let loc = module ? this.ModulesLocalizations[module] : null;\r\n\r\n if (!module)\r\n console.error(\"Impossibile estrapolare il modulo dalla navigazione (Atteso Modulo al secondo livello di parentela partendo dal componente attuale): \" + route.pathFromRoot.map(v => v.url.map(segment => segment.toString()).join('/')).join('/'));\r\n\r\n this.notifyDataChanged(internal ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\", loc ? loc.loc(title) : title);\r\n }\r\n\r\n handleInboundMessage(t: InterComMessage) {\r\n switch (t.type) {\r\n case InboundMessageTypes.Navigation:\r\n this.notifyDataChanged(t.message.sub ? \"menu.adjustSubNavigationTo\" : \"menu.adjustNavigationTo\", t.message.routeTitle);\r\n // export const MK_ADM = \"EsAdminModule\";\r\n // AdmMessageTypes.Message = 0;\r\n\r\n // definita in admin-module.\r\n // admin-module usa core quindi referenze circolari no-no-no\r\n this.intercom.send(0, \"Navigation Message Received\", \"EsAdminModule\");\r\n break;\r\n }\r\n }\r\n\r\n setupSignalRJobListening() {\r\n this.notifications.observe(this.MessageDef.IN_JobProgressNotification).subscribe((ev: JobProgressDto) => {\r\n\r\n var identity = this.getJaceIDentity();\r\n if (!identity)\r\n return;\r\n var desc = (ev.description || ev.actionid) + \" (\" + (ev.user || identity.DsUser) + \")\";\r\n let job: ApplicationJob = {\r\n id: ev.instance,\r\n description: desc,\r\n smalldescription: desc.length > 35 ? desc.substring(0, 30) + \"...\" : desc,\r\n percentage: this.roundToTwo(ev.progress),\r\n completed: ev.type == 'Completed',\r\n fileid: ev.resultfile,\r\n reportid: ev.resultreport,\r\n reportpars: ev.resultreportparams,\r\n complexreportid: ev.resultcomplexreport\r\n };\r\n\r\n switch (ev.type) {\r\n case \"Started\":\r\n if (this.jobWithIdsCache[ev.instance]) {\r\n console.warn(\"Job already registered on the 'Started' callback\");\r\n return;\r\n }\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n this.notifyDataChanged(\"app.startedJob\", job.description);\r\n break;\r\n case \"Progress\":\r\n // Se mi arriva un progress di un job che non ho significa che mi sono loggato ora con dei Job in corso\r\n // quindi per prima cosa devo metterlo in lista\r\n if (!this.jobWithIdsCache[ev.instance]) {\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n }\r\n this.jobWithIdsCache[ev.instance].percentage = this.roundToTwo(ev.progress);\r\n this.notifyDataChanged(\"app.progressJob\", { description: job.description, progress: this.jobWithIdsCache[ev.instance].percentage });\r\n break;\r\n case \"Completed\":\r\n if (!this.jobWithIdsCache[ev.instance]) {\r\n this.jobWithIdsCache[ev.instance] = job;\r\n this.allJobs.splice(0, 0, job);\r\n }\r\n var jobToUpdate = this.jobWithIdsCache[ev.instance];\r\n jobToUpdate.percentage = 100;\r\n jobToUpdate.fileid = ev.resultfile;\r\n jobToUpdate.reportid = ev.resultreport;\r\n jobToUpdate.reportpars = ev.resultreportparams;\r\n jobToUpdate.completed = true;\r\n\r\n if (this.notifyOnCompletedJobs)\r\n this.notifyDataChanged(\"app.completedJob\", jobToUpdate.description);\r\n\r\n break;\r\n }\r\n\r\n this.jobsInProgress = this.allJobs.filter(t => !t.completed).length;\r\n });\r\n }\r\n\r\n roundToTwo(num) {\r\n return Math.round(num * 100) / 100;\r\n }\r\n\r\n getJaceIDentity(): JaceIdentity {\r\n if (this.JaceIdentity)\r\n return this.JaceIdentity;\r\n this.JaceIdentity = this.bts.getJaceIdentity();\r\n return this.JaceIdentity;\r\n }\r\n\r\n notifyDataChanged(event, value) {\r\n this._data[event] = value;\r\n this._data.next({\r\n event: event,\r\n data: this._data[event]\r\n });\r\n }\r\n\r\n subscribe(event: string, callback: Function) {\r\n var subscribers = this._subscriptions.get(event) || [];\r\n subscribers.push(callback);\r\n\r\n this._subscriptions.set(event, subscribers);\r\n }\r\n\r\n _onEvent(data: any) {\r\n var subscribers = this._subscriptions.get(data[\"event\"]) || [];\r\n\r\n subscribers.forEach((callback) => {\r\n callback.call(null, data[\"data\"]);\r\n });\r\n }\r\n\r\n public setSidebarWidth(width: number) {\r\n this.sidebarWidth = width;\r\n }\r\n\r\n public setHeaderHeight(height: number) {\r\n this.headerHeight = height;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AccessControlService } from \"@esfaenza/access-control\";\r\nimport { HttpServiceExtensions } from \"@esfaenza/httpservice\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\n\r\n// Applicazione\r\nimport { HTTPServiceExtensionsLoc } from \"./app.httpextensions.loc\";\r\nimport { AppState } from \"./app.state\";\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\nimport { EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Injectable()\r\nexport class HTTPServiceExtensions implements HttpServiceExtensions {\r\n\r\n constructor(private lc: LocalizationService, private tks: TokenService, private as: AppState, private router: Router, private ac: AccessControlService, private msgs: MessageService) {\r\n this.lc = this.lc.generateFromType(HTTPServiceExtensionsLoc)\r\n }\r\n\r\n //Gestione Auth\r\n retrieveAccessToken(): string {\r\n return this.tks.getAccessToken().toString();\r\n }\r\n\r\n retrieveIdentity(): { IdUser: string; Idtenant: string; } {\r\n return <any>this.tks.getJaceIdentity();\r\n }\r\n\r\n //Gestione ridirezione al login / altre pagine\r\n readRedirectingToLogin(): boolean {\r\n return this.as.redirectingToLogin;\r\n }\r\n\r\n writeRedirectingToLogin(status: boolean) {\r\n this.as.redirectingToLogin = status;\r\n }\r\n\r\n redirectToLogin(): void {\r\n console.log(\"HTTPServiceExtensions - redirecting to login\");\r\n this.router.navigate([\"login\", { fromUrl: this.router.url }]);\r\n }\r\n\r\n readRedirectionStatus(): boolean {\r\n return myconfig?.redirectInProgress;\r\n }\r\n\r\n writeRedirectionStatus(status: boolean): void {\r\n myconfig.redirectInProgress = status;\r\n }\r\n\r\n //Gestione error handling flag\r\n readHandlingErrorStatus(): boolean {\r\n return this.as.handlingError;\r\n }\r\n\r\n writeHandlingErrorStatus(status: boolean) {\r\n this.as.handlingError = status;\r\n }\r\n\r\n // 444, se false passa a handleBlockingException\r\n handleNotConfiguredException(): boolean {\r\n if (this.ac.has(\"P:mdm_customize\")) {\r\n myconfig.redirectInProgress = true;\r\n this.as.handlingError = false;\r\n this.router.navigate([\"pages/adm/tenantconfig\"]);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // 400, 403, 404, 444\r\n handleBlockingException(status: number, text: string) {\r\n if (status == 403) {\r\n this.msgs.simpleError(\"Non si dispone dei permessi necessari ad effettuare questa operazione.\")\r\n this.as.handlingError = false;\r\n }\r\n else {\r\n this.msgs.simpleError(status + \": \" + text)\r\n this.as.handlingError = false;\r\n }\r\n }\r\n\r\n // Tutto quello che non è gestito da handleBlockingException\r\n handleException(status: number, text: string) {\r\n if (status == 503) {\r\n this.msgs.simpleError(this.lc.loc(\"Il Server sembra essere offline, prova a ricaricare la pagina\"));\r\n this.as.handlingError = false;\r\n }\r\n else if (status == 542) {\r\n this.msgs.simpleError(text);\r\n this.as.handlingError = false;\r\n }\r\n else {\r\n var st = btoa(encodeURIComponent(text).replace(/%([0-9A-F]{2})/g, (match, p1) => String.fromCharCode(<any>(\"0x\" + p1))));\r\n var pars = { statusCode: status, statusText: st, fromUrl: this.router.url };\r\n this.router.navigate([\"iserr\", pars]);\r\n }\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { ApplicationMenu } from \"@esfaenza/core/domain\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class MenuFilteringService {\r\n /**\r\n * Applica un filtro agli elementi di menù in modo da poterli filtrare in base a condizioni arbitrarie (inclusi check lato BE)\r\n * \r\n * @param rawMenus Menù originali, non filtrati\r\n * @returns {Observable<ApplicationMenu[]>} Menù filtrati\r\n */\r\n public filter(rawMenus: ApplicationMenu[]): Observable<ApplicationMenu[]> {\r\n return of(rawMenus);\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Core\r\nimport { ApplicationJob } from \"@esfaenza/core/domain\";\r\n\r\n@Injectable()\r\nexport class CompletedJobRedirectionService {\r\n /**\r\n * Effettua un'operazione di redirect basata sul Job Completato\r\n * \r\n * @param completedJob Job appena completato per cui effettuare un redirect\r\n */\r\n public redirect(completedJob: ApplicationJob): void {\r\n\r\n }\r\n}","// Angular\r\nimport { Injectable, Inject } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever } from \"@esfaenza/preferences\";\r\n\r\n// Applicazione\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\n// Core\r\nimport { ANONYMOUS_MODE, EnvOptions } from \"@esfaenza/core/domain\";\r\n\r\ndeclare var myconfig: EnvOptions;\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SessionRetriever implements BaseSessionRetriever {\r\n\r\n private SessionIdentity: string;\r\n\r\n constructor(private bts: TokenService, private router: Router, @Inject(ANONYMOUS_MODE) private anonymousMode: boolean) { }\r\n\r\n /** Tenant§Account§User§ModuleId */\r\n getSessionKey(): string {\r\n if (this.SessionIdentity)\r\n return this.SessionIdentity;\r\n\r\n // Se non ho un id mi manca il login, quindi via di qua\r\n var id = this.bts.getJaceIdentity();\r\n if (!id) {\r\n if (this.anonymousMode)\r\n return \"\";\r\n\r\n console.log(\"SessionRetriever - no identity, redirecting to login\")\r\n this.router.navigate([\"login\"]);\r\n return \"\";\r\n }\r\n\r\n this.SessionIdentity = \"\" + id.Idtenant + \"§\" + id.IdAccount + \"§\" + id.IdUser + \"§\" + myconfig?.AppData?.ModuleId;\r\n return this.SessionIdentity;\r\n }\r\n}","// Angular\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever, CachePersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"../app.accesstoken\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Observable, of } from \"rxjs\";\r\nimport { catchError, map } from \"rxjs/operators\";\r\n\r\n// Chiamate ai Repository\r\nconst BASE_Cache_Sessions: string = \"/api/Cache/sessions\";\r\n\r\n@Injectable()\r\nexport class ApplicationCachePersistor extends CachePersistor {\r\n\r\n // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che \r\n // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...\r\n constructor(private lc: LocalizationService, private http: HttpClient, private tks: TokenService, session: BaseSessionRetriever) { super(session); }\r\n\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.post<boolean>(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public recover<T>(key?: string): Observable<T> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<string>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n var resProp = null;\r\n try { resProp = <T>JSON.parse(res); }\r\n catch { }\r\n return resProp;\r\n }));\r\n }\r\n\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<{ [index: string]: any; }>(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n for (var prop in res) {\r\n var resProp = null;\r\n try { resProp = JSON.parse(res[prop]); }\r\n catch { }\r\n res[prop] = resProp;\r\n }\r\n return res\r\n }));\r\n }\r\n\r\n public remove(key?: string): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public clear(): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n private getHeaders(contentType: string = 'application/json'): HttpHeaders {\r\n return new HttpHeaders()\r\n .append(\"Content-Type\", contentType)\r\n .append(\"Accept\", \"application/json\")\r\n .append(\"Authorization\", \"Bearer \" + this.tks.getAccessToken())\r\n .append(\"Accept-Language\", this.lc.Locale);\r\n }\r\n\r\n private getSessionUrl(sessionKey: string): string {\r\n return `${BASE_Cache_Sessions}/${sessionKey}`;\r\n }\r\n\r\n private getItemsUrl(sessionKey: string): string {\r\n return `${this.getSessionUrl(sessionKey)}/items`;\r\n }\r\n\r\n private getItemUrl(sessionKey: string, itemKey: string): string {\r\n return `${this.getItemsUrl(sessionKey)}/${itemKey}`;\r\n }\r\n}","// Angular\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Configurazioni\r\nimport { BaseSessionRetriever, PreferencesPersistor } from \"@esfaenza/preferences\";\r\nimport { LocalizationService } from \"@esfaenza/localizations\";\r\nimport { TokenService } from \"../app.accesstoken\";\r\n\r\n// Direttive, Componenti, Librerie\r\nimport { Observable, of } from \"rxjs\";\r\nimport { catchError, map } from \"rxjs/operators\";\r\n\r\n// Chiamate ai Repository\r\nconst BASE_Preferences_Sessions: string = \"/api/Preferences/sessions\";\r\n\r\n@Injectable()\r\nexport class ApplicationPreferencesPersistor extends PreferencesPersistor {\r\n\r\n // Passo direttamente dall'HttpClient nativo in quanto non posso passare dall'HttpService dato che \r\n // lui richiede il PreferencesService che richiede questa classe che richiede l'HttpService ecc ecc...\r\n constructor(private lc: LocalizationService, private http: HttpClient, private tks: TokenService, session: BaseSessionRetriever) { super(session); }\r\n\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.post<boolean>(this.getItemUrl(sk, key), JSON.stringify(item), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public recover<T>(key?: string): Observable<T> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<string>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(map((res) => {\r\n var resProp = null;\r\n try { resProp = <T>JSON.parse(res); }\r\n catch { }\r\n return resProp;\r\n }));\r\n }\r\n\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(null);\r\n\r\n return this.http.get<{ [index: string]: any; }>(this.getSessionUrl(sk), { headers: this.getHeaders() }).pipe(\r\n catchError(e => of(null)),\r\n map((res) => {\r\n for (var prop in res) {\r\n var resProp = null;\r\n try { resProp = JSON.parse(res[prop]); }\r\n catch { }\r\n res[prop] = resProp;\r\n }\r\n return res\r\n }));\r\n }\r\n\r\n public remove(key?: string): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemUrl(sk, key), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n public clear(): Observable<boolean> {\r\n let sk = this.session.getSessionKey();\r\n if (!sk) return of(false);\r\n\r\n return this.http.delete<boolean>(this.getItemsUrl(sk), { headers: this.getHeaders() }).pipe(catchError(e => of(false)));\r\n }\r\n\r\n private getHeaders(contentType: string = 'application/json'): HttpHeaders {\r\n return new HttpHeaders()\r\n .append(\"Content-Type\", contentType)\r\n .append(\"Accept\", \"application/json\")\r\n .append(\"Authorization\", \"Bearer \" + this.tks.getAccessToken())\r\n .append(\"Accept-Language\", this.lc.Locale);\r\n }\r\n\r\n private getSessionUrl(sessionKey: string): string {\r\n return `${BASE_Preferences_Sessions}/${sessionKey}`;\r\n }\r\n\r\n private getItemsUrl(sessionKey: string): string {\r\n return `${this.getSessionUrl(sessionKey)}/items`;\r\n }\r\n\r\n private getItemUrl(sessionKey: string, itemKey: string): string {\r\n return `${this.getItemsUrl(sessionKey)}/${itemKey}`;\r\n }\r\n}","// Angular\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { Injectable, Injector } from \"@angular/core\";\r\nimport { HttpParams } from \"@angular/common/http\";\r\n\r\n// ES\r\nimport { CallResult, MessageService } from \"@esfaenza/extensions\";\r\nimport { HTTPService } from \"@esfaenza/httpservice\";\r\n\r\n// Configurazioni\r\nimport { TokenService } from \"../../app.accesstoken\";\r\nimport { firstValueFrom } from \"rxjs\";\r\nimport { UpdatePasswordDto, UpdateProfilePictureDto, UpdateAccountRecoverySettingsDto, UserAccount, USE_FAKE_ACCESS_TOKEN } from \"@esfaenza/core/domain\";\r\n\r\n// Chiamate ai Repository\r\nconst GET_UserProfile_GetAccountPicture: string = \"/api/UserProfile/GetAccountPicture\";\r\nconst POST_UserProfile_UpdateAccountPicture: string = \"/api/UserProfile/UpdateAccountPicture\";\r\nconst POST_UserProfile_UpdateAccountRecoveryInfos: string = \"/api/UserProfile/UpdateAccountRecoveryInfos\";\r\nconst POST_UserProfile_UpdateAccountPassword: string = \"/api/UserProfile/UpdateAccountPassword\";\r\nconst GET_UserProfile_DeleteAccountPicture: string = \"/api/UserProfile/DeleteAccountPicture\";\r\nconst GET_UserProfile_GetEntityAccount: string = \"/api/UserProfile/GetEntityAccount\";\r\n\r\n@Injectable()\r\nexport class UserPreferencesService {\r\n private AccountId: string;\r\n public ProfilePicture: SafeResourceUrl;\r\n\r\n public fakeToken: boolean;\r\n public sanitizer: DomSanitizer;\r\n public http: HTTPService;\r\n public msgExts: MessageService;\r\n\r\n constructor(private injector: Injector) {\r\n let tks = this.injector.get(TokenService);\r\n this.sanitizer = this.injector.get(DomSanitizer);\r\n this.http = this.injector.get(HTTPService);\r\n this.msgExts = this.injector.get(MessageService);\r\n this.fakeToken = this.injector.get(USE_FAKE_ACCESS_TOKEN) || false;\r\n\r\n var identity = tks.getJaceIdentity();\r\n if (identity) {\r\n this.AccountId = identity.IdAccount.toString();\r\n this.doReloadProfilePicture();\r\n }\r\n }\r\n\r\n public async getAccountProfile(): Promise<UserAccount> {\r\n let pars = new HttpParams().set(\"idAccount\", this.AccountId);\r\n let ret = await firstValueFrom(this.http.get<UserAccount>(GET_UserProfile_GetEntityAccount, pars));\r\n return ret;\r\n }\r\n\r\n public async doReloadProfilePicture() {\r\n this.ProfilePicture = null;\r\n let tmpPict = await this.getCurrentProfilePicture();\r\n this.ProfilePicture = this.sanitizer.bypassSecurityTrustResourceUrl(`data:image/png;base64,${tmpPict}`);\r\n }\r\n\r\n public async getCurrentProfilePicture(): Promise<string> {\r\n\r\n // Se fake token restituisco la stock image dell'utente\r\n if (this.fakeToken)\r\n return \"/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCaRXhpZgAASUkqAAgAAAADAA4BAgBQAAAAMgAAABoBBQABAAAAggAAABsBBQABAAAAigAAAAAAAABEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbiwBAAABAAAALAEAAAEAAAD/4QXHaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjEzMzcxNDQxNDYiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+TWFyaWEgU2hhcGlsb3ZhPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48ZGM6ZGVzY3JpcHRpb24+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5EZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbjwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5pc3RvY2twaG90by5jb20vcGhvdG8vbGljZW5zZS1nbTEzMzcxNDQxNDYtP3V0bV9tZWRpdW09b3JnYW5pYyZhbXA7dXRtX3NvdXJjZT1nb29nbGUmYW1wO3V0bV9jYW1wYWlnbj1pcHRjdXJsPC9wbHVzOkxpY2Vuc29yVVJMPjwvcmRmOmxpPjwvcmRmOlNlcT48L3BsdXM6TGljZW5zb3I+CgkJPC9yZGY6RGVzY3JpcHRpb24+Cgk8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+Cv/tAJZQaG90b3Nob3AgMy4wADhCSU0EBAAAAAAAehwCUAAPTWFyaWEgU2hhcGlsb3ZhHAJ4AFBEZWZhdWx0IEF2YXRhciBQcm9maWxlIEljb24gVmVjdG9yLiBTb2NpYWwgTWVkaWEgVXNlciBJbWFnZS4gVmVjdG9yIElsbHVzdHJhdGlvbhwCbgAMR2V0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\";\r\n\r\n let pictureb64 = await firstValueFrom(this.http.get<string>(GET_UserProfile_GetAccountPicture, new HttpParams().set('idAccount', this.AccountId)));\r\n return pictureb64;\r\n }\r\n\r\n public async doUpdateProfilePicture(image: any): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dtoPic = new UpdateProfilePictureDto(this.AccountId);\r\n let cr = await firstValueFrom(this.http.postwithFiles<CallResult>(POST_UserProfile_UpdateAccountPicture, dtoPic, image ?? []));\r\n if (cr.success) this.doReloadProfilePicture();\r\n return cr;\r\n }\r\n\r\n public async doUpdateRecoverySettings(email: string): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dto = new UpdateAccountRecoverySettingsDto(this.AccountId, email);\r\n let cr = await firstValueFrom(this.http.post<CallResult>(POST_UserProfile_UpdateAccountRecoveryInfos, dto));\r\n return cr;\r\n }\r\n\r\n public async doUpdatePassword(oldPassword: string, newPassword: string, newPasswordConfirm: string): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let dto = new UpdatePasswordDto(this.AccountId, oldPassword, newPassword, newPasswordConfirm);\r\n let cr = await firstValueFrom(this.http.post<CallResult>(POST_UserProfile_UpdateAccountPassword, dto));\r\n return cr;\r\n }\r\n\r\n public async doDeleteProfilePicture(): Promise<CallResult> {\r\n if (this.fakeToken) {\r\n var ret = new CallResult();\r\n ret.success = true;\r\n return ret;\r\n }\r\n\r\n let pars = new HttpParams().set('idAccount', this.AccountId);\r\n let cr = await firstValueFrom(this.http.get<CallResult>(GET_UserProfile_DeleteAccountPicture, pars));\r\n if (cr.success) this.ProfilePicture = null;\r\n return cr;\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n// Configurazioni\r\nimport { AccessControlRouteGuard, AccessControlService } from \"@esfaenza/access-control\";\r\nimport { MessageService } from \"@esfaenza/extensions\";\r\n\r\nimport { TokenService } from \"./app.accesstoken\";\r\n\r\n@Injectable()\r\nexport class BaseRouterGuard extends AccessControlRouteGuard {\r\n constructor(ms: MessageService, acc: AccessControlService, router: Router, ts: TokenService) {\r\n super(ms, acc, router);\r\n\r\n let identity = ts.getJaceIdentity();\r\n if (!acc.Initialized)\r\n acc.initializeIdentity(identity);\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.TokenService","i2.TokenService","i3.AppState","i4","i5","i6","i3","i4.TokenService"],"mappings":"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"}
|