emilsoftware-utilities 2.0.0-dev.26 → 2.0.0-dev.28

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.
Files changed (27) hide show
  1. package/dist/accessi-module/AccessiModule.js +3 -0
  2. package/dist/accessi-module/AccessiModule.js.map +1 -1
  3. package/dist/accessi-module/Console/generated/accessiApi.d.ts +20 -0
  4. package/dist/accessi-module/Console/generated/accessiApi.js +18 -2
  5. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -1
  6. package/dist/accessi-module/Controllers/UserController.d.ts +2 -0
  7. package/dist/accessi-module/Controllers/UserController.js +61 -0
  8. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  9. package/dist/accessi-module/Services/EmailService/EmailService.js +4 -0
  10. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  11. package/dist/accessi-module/Services/UserService/UserService.d.ts +14 -1
  12. package/dist/accessi-module/Services/UserService/UserService.js +44 -1
  13. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  14. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  15. package/dist/accessi-module/accessiRuntime.js +39 -0
  16. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  17. package/dist/accessi-module/index.d.ts +3 -0
  18. package/dist/accessi-module/index.js +17 -4
  19. package/dist/accessi-module/index.js.map +1 -1
  20. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  21. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  22. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  23. package/dist/emilsoftware-utilities-2.0.0-dev.28.tgz +0 -0
  24. package/dist/initEmilsoftwareModule.js +4 -3
  25. package/dist/initEmilsoftwareModule.js.map +1 -1
  26. package/package.json +3 -3
  27. package/dist/emilsoftware-utilities-2.0.0-dev.26.tgz +0 -0
@@ -31,6 +31,7 @@ const AccessiConsoleController_1 = require("./Controllers/AccessiConsoleControll
31
31
  const ServiceTokenController_1 = require("./Controllers/ServiceTokenController");
32
32
  const ServiceTokenService_1 = require("./Services/ServiceTokenService/ServiceTokenService");
33
33
  const serviceTokenGuard_1 = require("./security/serviceTokenGuard");
34
+ const emailConfiguration_1 = require("./security/emailConfiguration");
34
35
  let AccessiModule = AccessiModule_1 = class AccessiModule {
35
36
  /**
36
37
  * Registra Accessi nel contenitore Nest del backend ospitante.
@@ -40,6 +41,8 @@ let AccessiModule = AccessiModule_1 = class AccessiModule {
40
41
  * La configurazione viene registrata con il token DI `ACCESSI_OPTIONS` ed e condivisa dai servizi.
41
42
  */
42
43
  static forRoot(options) {
44
+ // Il servizio email e obbligatorio: reset password, 2FA e creazione utente ne dipendono.
45
+ (0, emailConfiguration_1.assertEmailConfigured)(options);
43
46
  return {
44
47
  module: AccessiModule_1,
45
48
  providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"AccessiModule.js","sourceRoot":"","sources":["../../src/accessi-module/AccessiModule.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,mFAAgF;AAQhF,2CAA+D;AAC/D,oEAAiE;AACjE,uEAAoE;AACpE,sFAAmF;AACnF,oEAAiE;AACjE,mEAAgE;AAChE,iEAA8D;AAC9D,6EAA0E;AAC1E,iEAA8D;AAC9D,0EAAuE;AACvE,qEAAkE;AAClE,iFAA8E;AAC9E,4FAAyF;AACzF,qDAAoD;AACpD,kEAAsE;AACtE,sFAAmF;AACnF,gFAA6E;AAC7E,sFAAmF;AACnF,qFAAkF;AAClF,iFAA8E;AAC9E,4FAAyF;AACzF,oEAAiE;AAsJ1D,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,OAAO;iBAClB;gBACD,yBAAW;gBACX,mCAAgB;gBAChB,yBAAW;gBACX,2BAAY;gBACZ,qCAAiB;gBACjB,6BAAa;gBACb,yCAAmB;gBACnB,6BAAc;gBACd,wCAAsB;gBACtB,+CAAsB;gBACtB,2CAAoB;gBACpB,yCAAmB;gBACnB,qCAAiB;aAClB;YACD,OAAO,EAAE;gBACP,iBAAiB;gBACjB,yBAAW;gBACX,yBAAW;gBACX,2BAAY;gBACZ,qCAAiB;gBACjB,6BAAa;gBACb,yCAAmB;gBACnB,6BAAc;gBACd,wCAAsB;gBACtB,2CAAoB;gBACpB,yCAAmB;gBACnB,qCAAiB;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA9CY,sCAAa;wBAAb,aAAa;IAhBzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,WAAW,EAAE;YACX,iCAAe;YACf,+BAAc;YACd,2CAAoB;YACpB,+BAAc;YACd,mCAAgB;YAChB,+CAAsB;YACtB,iDAAuB;YACvB,mDAAwB;YACxB,+CAAsB;SACvB;QACD,SAAS,EAAE,CAAC,yBAAW,EAAE,mCAAgB,EAAE,yBAAW,EAAE,2BAAY,EAAE,qCAAiB,EAAE,6BAAa,EAAE,yCAAmB,EAAE,6BAAc,EAAE,wCAAsB,EAAE,+CAAsB,EAAE,2CAAoB,EAAE,yCAAmB,EAAE,qCAAiB,CAAC;QAC1P,OAAO,EAAE,CAAC,yBAAW,EAAE,yBAAW,EAAE,2BAAY,EAAE,qCAAiB,EAAE,6BAAa,EAAE,yCAAmB,EAAE,6BAAc,EAAE,wCAAsB,EAAE,2CAAoB,EAAE,yCAAmB,EAAE,qCAAiB,CAAC;KAC/M,CAAC;GACW,aAAa,CA8CzB","sourcesContent":["import { TwoFactorService } from './Services/TwoFactorService/TwoFactorService';\n/**\n * Modulo che gestisce le operazioni di accesso degli utenti, incluse le rotte, il controller e il modello.\n *\n * @module AccessiModule\n * @author mttdev382\n */\nimport { Options } from 'node-firebird';\nimport { DynamicModule, Global, Module } from '@nestjs/common';\nimport { AuthService } from './Services/AuthService/AuthService';\nimport { EmailService } from './Services/EmailService/EmailService';\nimport { PermissionService } from './Services/PermissionService/PermissionService';\nimport { UserService } from './Services/UserService/UserService';\nimport { EmailController } from './Controllers/EmailController';\nimport { AuthController } from './Controllers/AuthController';\nimport { PermissionController } from './Controllers/PermissionController';\nimport { UserController } from './Controllers/UserController';\nimport { FiltriService } from './Services/FiltriService/FiltriService';\nimport { FiltriController } from './Controllers/FiltriController';\nimport { ConfiguratorController } from './Controllers/ConfiguratorController';\nimport { ConfiguratorService } from './Services/ConfiguratorService/ConfiguratorService';\nimport { JwtSimpleGuard } from './jwt/jwt.strategy';\nimport { AuthenticateGenService } from './middleware/authenticateGen';\nimport { AccessiDatabaseUpdater } from './database-updates/AccessiDatabaseUpdater';\nimport { FederatedAuthService } from './federated-auth/FederatedAuthService';\nimport { FederatedAuthController } from './federated-auth/FederatedAuthController';\nimport { AccessiConsoleController } from './Controllers/AccessiConsoleController';\nimport { ServiceTokenController } from './Controllers/ServiceTokenController';\nimport { ServiceTokenService } from './Services/ServiceTokenService/ServiceTokenService';\nimport { ServiceTokenGuard } from './security/serviceTokenGuard';\n\n/** JWT emesso da Accessi dopo un login locale o SSO. Non riutilizzare il segreto del provider SSO. */\nexport interface JwtOptions {\n /** Segreto simmetrico per firmare e verificare i JWT Accessi; deve essere unico per ambiente. */\n secret: string;\n /** Durata compatibile con `jsonwebtoken`, per esempio `24h` o `3600s`. */\n expiresIn: string;\n}\n\n/** Parametri SMTP usati esclusivamente per impostazione e reset della password. */\nexport interface EmailOptions {\n host: string;\n port: number;\n secure: boolean;\n requireTLS : boolean;\n tls: {\n rejectUnauthorized: boolean,\n }\n from: string;\n auth: {\n user: string;\n pass: string;\n };\n}\n\n/** Configura campi applicativi aggiuntivi restituiti insieme al profilo Accessi. */\nexport interface ExtensionFieldsOptions {\n /** Connessione al database contenente la tabella estesa. */\n databaseOptions: Options;\n /** Chiave con cui i dati saranno esposti nella risposta. */\n objectKey: string;\n /** Tabella applicativa contenente i dati estesi. */\n tableName: string;\n /** Colonne consentite; non valorizzarle mai con input HTTP. */\n tableFields: string[];\n /** Colonna correlata a `UTENTI.CODUTE`. */\n tableJoinFieldName: string;\n}\n\n/** Limite per una singola categoria di endpoint pubblici. */\nexport interface PublicAuthRateLimitRuleOptions {\n windowMs: number;\n maxAttempts: number;\n}\n\n/** Protezione in-memory degli endpoint pubblici. In cluster aggiungere un limite anche al gateway. */\nexport interface PublicAuthRateLimitOptions {\n enabled?: boolean;\n login?: PublicAuthRateLimitRuleOptions;\n register?: PublicAuthRateLimitRuleOptions;\n passwordResetEmail?: PublicAuthRateLimitRuleOptions;\n passwordResetConfirm?: PublicAuthRateLimitRuleOptions;\n getUserByToken?: PublicAuthRateLimitRuleOptions;\n twoFactorVerify?: PublicAuthRateLimitRuleOptions;\n twoFactorResend?: PublicAuthRateLimitRuleOptions;\n}\n\n/** Controls the legacy public username/password registration endpoint. Disabled by default. */\nexport interface PublicRegistrationOptions {\n /** Enables POST /accessi/user/register. Applications that used it before must opt in explicitly. */\n enabled?: boolean;\n}\n\n/** Configurazione dei token di servizio (macchina-a-macchina, senza utente). */\nexport interface ServiceTokenOptions {\n /** Abilita gli endpoint amministrativi dei service token. Default `true`. */\n enabled?: boolean;\n /** Durata predefinita in giorni quando non e indicata una scadenza esplicita. Default: nessuna scadenza. */\n defaultTtlDays?: number;\n}\n\n/**\n * Enables Accessi's provider-agnostic federated identity capability.\n *\n * Accessi never validates Azure, Google, Apple, SAML, or other provider tokens.\n * The hosting backend must validate its own SSO flow and pass only a verified\n * `{ provider, subject }` identity to FederatedAuthService.\n */\nexport interface FederatedAuthenticationOptions {\n /** Attiva le API SSO generiche; con `false` il comportamento password storico rimane invariato. */\n enabled?: boolean;\n /** @deprecated Schema management is centralized in autoUpdateDatabase. This legacy flag no longer starts separate SSO migrations. */\n autoUpdateSchema?: boolean;\n /** Allows a backend to create a user from a verified external identity without a master user. Default false. */\n allowSelfRegistration?: boolean;\n}\n\n/**\n * Configurazione completa del modulo Accessi, fornita esclusivamente dal backend ospitante.\n * Segreti JWT, SMTP, database e le configurazioni tecniche dei provider SSO non devono mai raggiungere il browser.\n */\nexport interface AccessiOptions {\n /** Connessione Firebird alla base dati Accessi. */\n databaseOptions: Options;\n /**\n * Basepath del sito es: 'http://www.il-mio-sito.it/nome-progetto(se c'è)'\n */\n confirmationEmailUrl: string;\n /**\n * Percorso della pagina di reset personalizzata es. http://localhost:4200/#/admin/reset-password\n * N.B si sostituisce al confirmationMailURl\n */\n customResetPage?: string;\n /** URL di ritorno della pagina standard di reset dopo il completamento. */\n confirmationEmailReturnUrl: string;\n /** Prefisso applicativo facoltativo trasmesso alla pagina standard di reset. */\n confirmationEmailPrefix?: string;\n /** Chiave riservata alla compatibilita e alla migrazione delle password legacy cifrate. */\n encryptionKey: string;\n /** Abilita gli utenti fittizi `admin` e `demo` solo fuori produzione. */\n mockDemoUser: boolean;\n /** Attiva il controllo della scadenza password durante il login locale. */\n passwordExpiration?: boolean;\n /** Giorni di validita della password; quando assente Accessi usa 90 giorni. */\n passwordExpirationDays?: number;\n /** Esegue al bootstrap la conversione non distruttiva delle password legacy. Default `true`. */\n legacyPasswordMigrationOnStartup?: boolean;\n /** Riconcilia lo schema al bootstrap (default `true`). Con `false` verifica comunque la compatibilita in sola lettura e blocca avvii incompatibili. */\n autoUpdateDatabase?: boolean;\n /** Parametri JWT dei token emessi da Accessi. */\n jwtOptions: JwtOptions;\n /** Parametri SMTP per reset e attivazione password. */\n emailOptions: EmailOptions;\n publicAuthRateLimit?: PublicAuthRateLimitOptions;\n /** Public local registration is deliberately opt-in. Existing applications must set enabled: true to retain it. */\n publicRegistration?: PublicRegistrationOptions;\n /** Optional provider-agnostic SSO support. Provider-specific configuration remains in the hosting backend. */\n federatedAuthentication?: FederatedAuthenticationOptions;\n extensionFieldsOptions?: ExtensionFieldsOptions[];\n /** Token di servizio per chiamate tecniche macchina-a-macchina. Abilitati di default. */\n serviceTokens?: ServiceTokenOptions;\n}\n\n@Global()\n@Module({\n controllers: [\n EmailController,\n AuthController,\n PermissionController,\n UserController,\n FiltriController,\n ConfiguratorController,\n FederatedAuthController,\n AccessiConsoleController,\n ServiceTokenController,\n ],\n providers: [AuthService, TwoFactorService, UserService, EmailService, PermissionService, FiltriService, ConfiguratorService, JwtSimpleGuard, AuthenticateGenService, AccessiDatabaseUpdater, FederatedAuthService, ServiceTokenService, ServiceTokenGuard],\n exports: [AuthService, UserService, EmailService, PermissionService, FiltriService, ConfiguratorService, JwtSimpleGuard, AuthenticateGenService, FederatedAuthService, ServiceTokenService, ServiceTokenGuard],\n})\nexport class AccessiModule {\n /**\n * Registra Accessi nel contenitore Nest del backend ospitante.\n *\n * Usare questo metodo una sola volta nella composizione dell'applicazione. Per un backend\n * Express esistente usare invece `initializeAccessiModule`, che crea e monta l'host Nest interno.\n * La configurazione viene registrata con il token DI `ACCESSI_OPTIONS` ed e condivisa dai servizi.\n */\n static forRoot(options: AccessiOptions): DynamicModule {\n return {\n module: AccessiModule,\n providers: [\n {\n provide: 'ACCESSI_OPTIONS',\n useValue: options,\n },\n AuthService,\n TwoFactorService,\n UserService,\n EmailService,\n PermissionService,\n FiltriService,\n ConfiguratorService,\n JwtSimpleGuard,\n AuthenticateGenService,\n AccessiDatabaseUpdater,\n FederatedAuthService,\n ServiceTokenService,\n ServiceTokenGuard\n ],\n exports: [\n 'ACCESSI_OPTIONS',\n AuthService,\n UserService,\n EmailService,\n PermissionService,\n FiltriService,\n ConfiguratorService,\n JwtSimpleGuard,\n AuthenticateGenService,\n FederatedAuthService,\n ServiceTokenService,\n ServiceTokenGuard\n ],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"AccessiModule.js","sourceRoot":"","sources":["../../src/accessi-module/AccessiModule.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,mFAAgF;AAQhF,2CAA+D;AAC/D,oEAAiE;AACjE,uEAAoE;AACpE,sFAAmF;AACnF,oEAAiE;AACjE,mEAAgE;AAChE,iEAA8D;AAC9D,6EAA0E;AAC1E,iEAA8D;AAC9D,0EAAuE;AACvE,qEAAkE;AAClE,iFAA8E;AAC9E,4FAAyF;AACzF,qDAAoD;AACpD,kEAAsE;AACtE,sFAAmF;AACnF,gFAA6E;AAC7E,sFAAmF;AACnF,qFAAkF;AAClF,iFAA8E;AAC9E,4FAAyF;AACzF,oEAAiE;AACjE,sEAAsE;AAsJ/D,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,yFAAyF;QACzF,IAAA,0CAAqB,EAAC,OAAO,CAAC,CAAC;QAC/B,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,QAAQ,EAAE,OAAO;iBAClB;gBACD,yBAAW;gBACX,mCAAgB;gBAChB,yBAAW;gBACX,2BAAY;gBACZ,qCAAiB;gBACjB,6BAAa;gBACb,yCAAmB;gBACnB,6BAAc;gBACd,wCAAsB;gBACtB,+CAAsB;gBACtB,2CAAoB;gBACpB,yCAAmB;gBACnB,qCAAiB;aAClB;YACD,OAAO,EAAE;gBACP,iBAAiB;gBACjB,yBAAW;gBACX,yBAAW;gBACX,2BAAY;gBACZ,qCAAiB;gBACjB,6BAAa;gBACb,yCAAmB;gBACnB,6BAAc;gBACd,wCAAsB;gBACtB,2CAAoB;gBACpB,yCAAmB;gBACnB,qCAAiB;aAClB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,sCAAa;wBAAb,aAAa;IAhBzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,WAAW,EAAE;YACX,iCAAe;YACf,+BAAc;YACd,2CAAoB;YACpB,+BAAc;YACd,mCAAgB;YAChB,+CAAsB;YACtB,iDAAuB;YACvB,mDAAwB;YACxB,+CAAsB;SACvB;QACD,SAAS,EAAE,CAAC,yBAAW,EAAE,mCAAgB,EAAE,yBAAW,EAAE,2BAAY,EAAE,qCAAiB,EAAE,6BAAa,EAAE,yCAAmB,EAAE,6BAAc,EAAE,wCAAsB,EAAE,+CAAsB,EAAE,2CAAoB,EAAE,yCAAmB,EAAE,qCAAiB,CAAC;QAC1P,OAAO,EAAE,CAAC,yBAAW,EAAE,yBAAW,EAAE,2BAAY,EAAE,qCAAiB,EAAE,6BAAa,EAAE,yCAAmB,EAAE,6BAAc,EAAE,wCAAsB,EAAE,2CAAoB,EAAE,yCAAmB,EAAE,qCAAiB,CAAC;KAC/M,CAAC;GACW,aAAa,CAgDzB","sourcesContent":["import { TwoFactorService } from './Services/TwoFactorService/TwoFactorService';\n/**\n * Modulo che gestisce le operazioni di accesso degli utenti, incluse le rotte, il controller e il modello.\n *\n * @module AccessiModule\n * @author mttdev382\n */\nimport { Options } from 'node-firebird';\nimport { DynamicModule, Global, Module } from '@nestjs/common';\nimport { AuthService } from './Services/AuthService/AuthService';\nimport { EmailService } from './Services/EmailService/EmailService';\nimport { PermissionService } from './Services/PermissionService/PermissionService';\nimport { UserService } from './Services/UserService/UserService';\nimport { EmailController } from './Controllers/EmailController';\nimport { AuthController } from './Controllers/AuthController';\nimport { PermissionController } from './Controllers/PermissionController';\nimport { UserController } from './Controllers/UserController';\nimport { FiltriService } from './Services/FiltriService/FiltriService';\nimport { FiltriController } from './Controllers/FiltriController';\nimport { ConfiguratorController } from './Controllers/ConfiguratorController';\nimport { ConfiguratorService } from './Services/ConfiguratorService/ConfiguratorService';\nimport { JwtSimpleGuard } from './jwt/jwt.strategy';\nimport { AuthenticateGenService } from './middleware/authenticateGen';\nimport { AccessiDatabaseUpdater } from './database-updates/AccessiDatabaseUpdater';\nimport { FederatedAuthService } from './federated-auth/FederatedAuthService';\nimport { FederatedAuthController } from './federated-auth/FederatedAuthController';\nimport { AccessiConsoleController } from './Controllers/AccessiConsoleController';\nimport { ServiceTokenController } from './Controllers/ServiceTokenController';\nimport { ServiceTokenService } from './Services/ServiceTokenService/ServiceTokenService';\nimport { ServiceTokenGuard } from './security/serviceTokenGuard';\nimport { assertEmailConfigured } from './security/emailConfiguration';\n\n/** JWT emesso da Accessi dopo un login locale o SSO. Non riutilizzare il segreto del provider SSO. */\nexport interface JwtOptions {\n /** Segreto simmetrico per firmare e verificare i JWT Accessi; deve essere unico per ambiente. */\n secret: string;\n /** Durata compatibile con `jsonwebtoken`, per esempio `24h` o `3600s`. */\n expiresIn: string;\n}\n\n/** Parametri SMTP usati esclusivamente per impostazione e reset della password. */\nexport interface EmailOptions {\n host: string;\n port: number;\n secure: boolean;\n requireTLS : boolean;\n tls: {\n rejectUnauthorized: boolean,\n }\n from: string;\n auth: {\n user: string;\n pass: string;\n };\n}\n\n/** Configura campi applicativi aggiuntivi restituiti insieme al profilo Accessi. */\nexport interface ExtensionFieldsOptions {\n /** Connessione al database contenente la tabella estesa. */\n databaseOptions: Options;\n /** Chiave con cui i dati saranno esposti nella risposta. */\n objectKey: string;\n /** Tabella applicativa contenente i dati estesi. */\n tableName: string;\n /** Colonne consentite; non valorizzarle mai con input HTTP. */\n tableFields: string[];\n /** Colonna correlata a `UTENTI.CODUTE`. */\n tableJoinFieldName: string;\n}\n\n/** Limite per una singola categoria di endpoint pubblici. */\nexport interface PublicAuthRateLimitRuleOptions {\n windowMs: number;\n maxAttempts: number;\n}\n\n/** Protezione in-memory degli endpoint pubblici. In cluster aggiungere un limite anche al gateway. */\nexport interface PublicAuthRateLimitOptions {\n enabled?: boolean;\n login?: PublicAuthRateLimitRuleOptions;\n register?: PublicAuthRateLimitRuleOptions;\n passwordResetEmail?: PublicAuthRateLimitRuleOptions;\n passwordResetConfirm?: PublicAuthRateLimitRuleOptions;\n getUserByToken?: PublicAuthRateLimitRuleOptions;\n twoFactorVerify?: PublicAuthRateLimitRuleOptions;\n twoFactorResend?: PublicAuthRateLimitRuleOptions;\n}\n\n/** Controls the legacy public username/password registration endpoint. Disabled by default. */\nexport interface PublicRegistrationOptions {\n /** Enables POST /accessi/user/register. Applications that used it before must opt in explicitly. */\n enabled?: boolean;\n}\n\n/** Configurazione dei token di servizio (macchina-a-macchina, senza utente). */\nexport interface ServiceTokenOptions {\n /** Abilita gli endpoint amministrativi dei service token. Default `true`. */\n enabled?: boolean;\n /** Durata predefinita in giorni quando non e indicata una scadenza esplicita. Default: nessuna scadenza. */\n defaultTtlDays?: number;\n}\n\n/**\n * Enables Accessi's provider-agnostic federated identity capability.\n *\n * Accessi never validates Azure, Google, Apple, SAML, or other provider tokens.\n * The hosting backend must validate its own SSO flow and pass only a verified\n * `{ provider, subject }` identity to FederatedAuthService.\n */\nexport interface FederatedAuthenticationOptions {\n /** Attiva le API SSO generiche; con `false` il comportamento password storico rimane invariato. */\n enabled?: boolean;\n /** @deprecated Schema management is centralized in autoUpdateDatabase. This legacy flag no longer starts separate SSO migrations. */\n autoUpdateSchema?: boolean;\n /** Allows a backend to create a user from a verified external identity without a master user. Default false. */\n allowSelfRegistration?: boolean;\n}\n\n/**\n * Configurazione completa del modulo Accessi, fornita esclusivamente dal backend ospitante.\n * Segreti JWT, SMTP, database e le configurazioni tecniche dei provider SSO non devono mai raggiungere il browser.\n */\nexport interface AccessiOptions {\n /** Connessione Firebird alla base dati Accessi. */\n databaseOptions: Options;\n /**\n * Basepath del sito es: 'http://www.il-mio-sito.it/nome-progetto(se c'è)'\n */\n confirmationEmailUrl: string;\n /**\n * Percorso della pagina di reset personalizzata es. http://localhost:4200/#/admin/reset-password\n * N.B si sostituisce al confirmationMailURl\n */\n customResetPage?: string;\n /** URL di ritorno della pagina standard di reset dopo il completamento. */\n confirmationEmailReturnUrl: string;\n /** Prefisso applicativo facoltativo trasmesso alla pagina standard di reset. */\n confirmationEmailPrefix?: string;\n /** Chiave riservata alla compatibilita e alla migrazione delle password legacy cifrate. */\n encryptionKey: string;\n /** Abilita gli utenti fittizi `admin` e `demo` solo fuori produzione. */\n mockDemoUser: boolean;\n /** Attiva il controllo della scadenza password durante il login locale. */\n passwordExpiration?: boolean;\n /** Giorni di validita della password; quando assente Accessi usa 90 giorni. */\n passwordExpirationDays?: number;\n /** Esegue al bootstrap la conversione non distruttiva delle password legacy. Default `true`. */\n legacyPasswordMigrationOnStartup?: boolean;\n /** Riconcilia lo schema al bootstrap (default `true`). Con `false` verifica comunque la compatibilita in sola lettura e blocca avvii incompatibili. */\n autoUpdateDatabase?: boolean;\n /** Parametri JWT dei token emessi da Accessi. */\n jwtOptions: JwtOptions;\n /** Parametri SMTP per reset e attivazione password. */\n emailOptions: EmailOptions;\n publicAuthRateLimit?: PublicAuthRateLimitOptions;\n /** Public local registration is deliberately opt-in. Existing applications must set enabled: true to retain it. */\n publicRegistration?: PublicRegistrationOptions;\n /** Optional provider-agnostic SSO support. Provider-specific configuration remains in the hosting backend. */\n federatedAuthentication?: FederatedAuthenticationOptions;\n extensionFieldsOptions?: ExtensionFieldsOptions[];\n /** Token di servizio per chiamate tecniche macchina-a-macchina. Abilitati di default. */\n serviceTokens?: ServiceTokenOptions;\n}\n\n@Global()\n@Module({\n controllers: [\n EmailController,\n AuthController,\n PermissionController,\n UserController,\n FiltriController,\n ConfiguratorController,\n FederatedAuthController,\n AccessiConsoleController,\n ServiceTokenController,\n ],\n providers: [AuthService, TwoFactorService, UserService, EmailService, PermissionService, FiltriService, ConfiguratorService, JwtSimpleGuard, AuthenticateGenService, AccessiDatabaseUpdater, FederatedAuthService, ServiceTokenService, ServiceTokenGuard],\n exports: [AuthService, UserService, EmailService, PermissionService, FiltriService, ConfiguratorService, JwtSimpleGuard, AuthenticateGenService, FederatedAuthService, ServiceTokenService, ServiceTokenGuard],\n})\nexport class AccessiModule {\n /**\n * Registra Accessi nel contenitore Nest del backend ospitante.\n *\n * Usare questo metodo una sola volta nella composizione dell'applicazione. Per un backend\n * Express esistente usare invece `initializeAccessiModule`, che crea e monta l'host Nest interno.\n * La configurazione viene registrata con il token DI `ACCESSI_OPTIONS` ed e condivisa dai servizi.\n */\n static forRoot(options: AccessiOptions): DynamicModule {\n // Il servizio email e obbligatorio: reset password, 2FA e creazione utente ne dipendono.\n assertEmailConfigured(options);\n return {\n module: AccessiModule,\n providers: [\n {\n provide: 'ACCESSI_OPTIONS',\n useValue: options,\n },\n AuthService,\n TwoFactorService,\n UserService,\n EmailService,\n PermissionService,\n FiltriService,\n ConfiguratorService,\n JwtSimpleGuard,\n AuthenticateGenService,\n AccessiDatabaseUpdater,\n FederatedAuthService,\n ServiceTokenService,\n ServiceTokenGuard\n ],\n exports: [\n 'ACCESSI_OPTIONS',\n AuthService,\n UserService,\n EmailService,\n PermissionService,\n FiltriService,\n ConfiguratorService,\n JwtSimpleGuard,\n AuthenticateGenService,\n FederatedAuthService,\n ServiceTokenService,\n ServiceTokenGuard\n ],\n };\n }\n}\n"]}
@@ -269,6 +269,26 @@ export type deleteUserResponse = {
269
269
  };
270
270
  export declare const getDeleteUserUrl: (codiceUtente: number) => string;
271
271
  export declare const deleteUser: (codiceUtente: number, options?: RequestInit) => Promise<deleteUserResponse>;
272
+ /**
273
+ * Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.
274
+ * @summary Forza l invio dell email di reset password a un utente
275
+ */
276
+ export type forcePasswordResetResponse = {
277
+ data: ActionResponse;
278
+ status: number;
279
+ };
280
+ export declare const getForcePasswordResetUrl: (codiceUtente: number) => string;
281
+ export declare const forcePasswordReset: (codiceUtente: number, options?: RequestInit) => Promise<forcePasswordResetResponse>;
282
+ /**
283
+ * Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.
284
+ * @summary Forza il reset password per tutti gli utenti con password legacy
285
+ */
286
+ export type forcePasswordResetLegacyResponse = {
287
+ data: ActionResponse;
288
+ status: number;
289
+ };
290
+ export declare const getForcePasswordResetLegacyUrl: () => string;
291
+ export declare const forcePasswordResetLegacy: (options?: RequestInit) => Promise<forcePasswordResetLegacyResponse>;
272
292
  /**
273
293
  * @summary Imposta lo stato di registrazione di un utente
274
294
  */
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.deleteMenuType = exports.getDeleteMenuTypeUrl = exports.updateMenuType = exports.getUpdateMenuTypeUrl = exports.deleteMenuGroup = exports.getDeleteMenuGroupUrl = exports.updateMenuGroup = exports.getUpdateMenuGroupUrl = exports.createMenuGroup = exports.getCreateMenuGroupUrl = exports.deleteMenu = exports.getDeleteMenuUrl = exports.updateMenu = exports.getUpdateMenuUrl = exports.createMenuType = exports.getCreateMenuTypeUrl = exports.getMenuTypes = exports.getGetMenuTypesUrl = exports.getGroupsWithMenus = exports.getGetGroupsWithMenusUrl = exports.createMenu = exports.getCreateMenuUrl = exports.getMenus = exports.getGetMenusUrl = exports.deleteRole = exports.getDeleteRoleUrl = exports.assignPermissionsToUser = exports.getAssignPermissionsToUserUrl = exports.assignRolesToUser = exports.getAssignRolesToUserUrl = exports.createRole = exports.getCreateRoleUrl = exports.updateRole = exports.getUpdateRoleUrl = exports.getRoles = exports.getGetRolesUrl = exports.resendTwoFactor = exports.getResendTwoFactorUrl = exports.verifyTwoFactor = exports.getVerifyTwoFactorUrl = exports.login = exports.getLoginUrl = exports.getUserByToken = exports.getGetUserByTokenUrl = exports.resetPassword = exports.getResetPasswordUrl = exports.sendPasswordResetEmail = exports.getSendPasswordResetEmailUrl = exports.serveResetPasswordPage = exports.getServeResetPasswordPageUrl = void 0;
13
- exports.setPasswordLoginPolicy = exports.getSetPasswordLoginPolicyUrl = exports.createFederatedUser = exports.getCreateFederatedUserUrl = exports.linkFederatedIdentity = exports.getLinkFederatedIdentityUrl = exports.getFederatedIdentities = exports.getGetFederatedIdentitiesUrl = exports.deleteFederatedProvider = exports.getDeleteFederatedProviderUrl = exports.updateFederatedProvider = exports.getUpdateFederatedProviderUrl = exports.createFederatedProvider = exports.getCreateFederatedProviderUrl = exports.getFederatedProviders = exports.getGetFederatedProvidersUrl = exports.setGroupEnabled = exports.getSetGroupEnabledUrl = exports.setMenuEnabled = exports.getSetMenuEnabledUrl = exports.saveFiltriUtente = exports.getSaveFiltriUtenteUrl = exports.getFiltriUtente = exports.getGetFiltriUtenteUrl = exports.deleteTipoFiltro = exports.getDeleteTipoFiltroUrl = exports.updateTipoFiltro = exports.getUpdateTipoFiltroUrl = exports.createTipoFiltro = exports.getCreateTipoFiltroUrl = exports.getTipiFiltro = exports.getGetTipiFiltroUrl = exports.setGdpr = exports.getSetGdprUrl = exports.updateUtente = exports.getUpdateUtenteUrl = exports.createManagedUser = exports.getCreateManagedUserUrl = exports.register = exports.getRegisterUrl = exports.setStatoRegistrazione = exports.getSetStatoRegistrazioneUrl = exports.deleteUser = exports.getDeleteUserUrl = exports.getUsers = exports.getGetUsersUrl = exports.serveResetPasswordPageUser = exports.getServeResetPasswordPageUserUrl = exports.getUserRolesAndGrants = exports.getGetUserRolesAndGrantsUrl = void 0;
14
- exports.rotateServiceToken = exports.getRotateServiceTokenUrl = exports.revokeServiceToken = exports.getRevokeServiceTokenUrl = exports.getServiceTokens = exports.getGetServiceTokensUrl = exports.createServiceToken = exports.getCreateServiceTokenUrl = exports.deleteFederatedIdentityPermanently = exports.getDeleteFederatedIdentityPermanentlyUrl = exports.updateFederatedIdentity = exports.getUpdateFederatedIdentityUrl = exports.disableFederatedIdentity = exports.getDisableFederatedIdentityUrl = void 0;
13
+ exports.linkFederatedIdentity = exports.getLinkFederatedIdentityUrl = exports.getFederatedIdentities = exports.getGetFederatedIdentitiesUrl = exports.deleteFederatedProvider = exports.getDeleteFederatedProviderUrl = exports.updateFederatedProvider = exports.getUpdateFederatedProviderUrl = exports.createFederatedProvider = exports.getCreateFederatedProviderUrl = exports.getFederatedProviders = exports.getGetFederatedProvidersUrl = exports.setGroupEnabled = exports.getSetGroupEnabledUrl = exports.setMenuEnabled = exports.getSetMenuEnabledUrl = exports.saveFiltriUtente = exports.getSaveFiltriUtenteUrl = exports.getFiltriUtente = exports.getGetFiltriUtenteUrl = exports.deleteTipoFiltro = exports.getDeleteTipoFiltroUrl = exports.updateTipoFiltro = exports.getUpdateTipoFiltroUrl = exports.createTipoFiltro = exports.getCreateTipoFiltroUrl = exports.getTipiFiltro = exports.getGetTipiFiltroUrl = exports.setGdpr = exports.getSetGdprUrl = exports.updateUtente = exports.getUpdateUtenteUrl = exports.createManagedUser = exports.getCreateManagedUserUrl = exports.register = exports.getRegisterUrl = exports.setStatoRegistrazione = exports.getSetStatoRegistrazioneUrl = exports.forcePasswordResetLegacy = exports.getForcePasswordResetLegacyUrl = exports.forcePasswordReset = exports.getForcePasswordResetUrl = exports.deleteUser = exports.getDeleteUserUrl = exports.getUsers = exports.getGetUsersUrl = exports.serveResetPasswordPageUser = exports.getServeResetPasswordPageUserUrl = exports.getUserRolesAndGrants = exports.getGetUserRolesAndGrantsUrl = void 0;
14
+ exports.rotateServiceToken = exports.getRotateServiceTokenUrl = exports.revokeServiceToken = exports.getRevokeServiceTokenUrl = exports.getServiceTokens = exports.getGetServiceTokensUrl = exports.createServiceToken = exports.getCreateServiceTokenUrl = exports.deleteFederatedIdentityPermanently = exports.getDeleteFederatedIdentityPermanentlyUrl = exports.updateFederatedIdentity = exports.getUpdateFederatedIdentityUrl = exports.disableFederatedIdentity = exports.getDisableFederatedIdentityUrl = exports.setPasswordLoginPolicy = exports.getSetPasswordLoginPolicyUrl = exports.createFederatedUser = exports.getCreateFederatedUserUrl = void 0;
15
15
  const accessiFetch_1 = require("../accessiFetch");
16
16
  const getServeResetPasswordPageUrl = (token, params) => {
17
17
  const normalizedParams = new URLSearchParams();
@@ -272,6 +272,22 @@ const deleteUser = (codiceUtente, options) => __awaiter(void 0, void 0, void 0,
272
272
  return (0, accessiFetch_1.accessiFetch)((0, exports.getDeleteUserUrl)(codiceUtente), Object.assign(Object.assign({}, options), { method: 'DELETE' }));
273
273
  });
274
274
  exports.deleteUser = deleteUser;
275
+ const getForcePasswordResetUrl = (codiceUtente) => {
276
+ return `/api/accessi/user/force-password-reset/${codiceUtente}`;
277
+ };
278
+ exports.getForcePasswordResetUrl = getForcePasswordResetUrl;
279
+ const forcePasswordReset = (codiceUtente, options) => __awaiter(void 0, void 0, void 0, function* () {
280
+ return (0, accessiFetch_1.accessiFetch)((0, exports.getForcePasswordResetUrl)(codiceUtente), Object.assign(Object.assign({}, options), { method: 'POST' }));
281
+ });
282
+ exports.forcePasswordReset = forcePasswordReset;
283
+ const getForcePasswordResetLegacyUrl = () => {
284
+ return `/api/accessi/user/force-password-reset-legacy`;
285
+ };
286
+ exports.getForcePasswordResetLegacyUrl = getForcePasswordResetLegacyUrl;
287
+ const forcePasswordResetLegacy = (options) => __awaiter(void 0, void 0, void 0, function* () {
288
+ return (0, accessiFetch_1.accessiFetch)((0, exports.getForcePasswordResetLegacyUrl)(), Object.assign(Object.assign({}, options), { method: 'POST' }));
289
+ });
290
+ exports.forcePasswordResetLegacy = forcePasswordResetLegacy;
275
291
  const getSetStatoRegistrazioneUrl = () => {
276
292
  return `/api/accessi/user/set-stato`;
277
293
  };
@@ -1 +1 @@
1
- {"version":3,"file":"accessiApi.js","sourceRoot":"","sources":["../../../../src/accessi-module/Console/generated/accessiApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\nimport type {\n ActionResponse,\n AssignPermissionsToUserRequest,\n AssignRolesToUserRequest,\n ConfirmResetPasswordRequest,\n CreateFederatedIdentityRequest,\n CreateFederatedProviderRequest,\n CreateFederatedUserRequest,\n CreateFilterTypeRequest,\n CreateMenuGroupRequest,\n CreateMenuRequest,\n CreateMenuTypeRequest,\n CreateServiceTokenRequest,\n CreateServiceTokenResponse,\n ErrorResponse,\n FederatedIdentityListResponse,\n FederatedIdentityResponse,\n FederatedProviderListResponse,\n FederatedProviderResponse,\n FiltriUtente,\n GetFiltriResponse,\n GetFiltriUtenteParams,\n GetFiltriUtenteResponse,\n GetGroupsWithMenusParams,\n GetGroupsWithMenusResponse,\n GetMenuTypesResponse,\n GetMenusResponse,\n GetRolesResponse,\n GetServiceTokensParams,\n GetServiceTokensResponse,\n GetUserByTokenRequest,\n GetUserByTokenResponse,\n GetUsersParams,\n GetUsersResponse,\n LoginRequest,\n LoginResponse,\n PublicRegisterRequest,\n RegisterRequest,\n RegisterResponse,\n ResendTwoFactorRequest,\n Role,\n SendResetPasswordEmailRequest,\n ServeResetPasswordPageParams,\n SetPasswordLoginPolicyRequest,\n SetStatoRegistrazioneDto,\n UpdateEnabledStatusRequest,\n UpdateFederatedIdentityRequest,\n UpdateFederatedProviderRequest,\n UpdateFilterTypeRequest,\n UpdateMenuGroupRequest,\n UpdateMenuRequest,\n UpdateMenuTypeRequest,\n UserDto,\n UserGrantsResponse,\n VerifyTwoFactorRequest\n} from './model'\nimport { accessiFetch } from '../accessiFetch';\n\n\n/**\n * @summary Serve una pagina per il reset della password\n */\nexport type serveResetPasswordPageResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUrl = (token: string,\n params?: ServeResetPasswordPageParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/email/reset-password-page/${token}?${normalizedParams.toString()}`\n}\n\nexport const serveResetPasswordPage = async (token: string,\n params?: ServeResetPasswordPageParams, options?: RequestInit): Promise<serveResetPasswordPageResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageResponse>>(getServeResetPasswordPageUrl(token,params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Invia una e-mail per il reset della password\n */\nexport type sendPasswordResetEmailResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSendPasswordResetEmailUrl = () => {\n\n\n return `/api/accessi/email/send-reset-password-email`\n}\n\nexport const sendPasswordResetEmail = async (sendResetPasswordEmailRequest: SendResetPasswordEmailRequest, options?: RequestInit): Promise<sendPasswordResetEmailResponse> => {\nreturn accessiFetch<Promise<sendPasswordResetEmailResponse>>(getSendPasswordResetEmailUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n sendResetPasswordEmailRequest,)\n }\n);}\n\n\n/**\n * @summary Conferma il reset della password\n */\nexport type resetPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getResetPasswordUrl = (token: string,) => {\n\n\n return `/api/accessi/auth/confirm-reset-password/${token}`\n}\n\nexport const resetPassword = async (token: string,\n confirmResetPasswordRequest: ConfirmResetPasswordRequest, options?: RequestInit): Promise<resetPasswordResponse> => {\nreturn accessiFetch<Promise<resetPasswordResponse>>(getResetPasswordUrl(token),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n confirmResetPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera le informazioni utente dal token JWT\n */\nexport type getUserByTokenResponse = {\n data: GetUserByTokenResponse;\n status: number;\n}\n\nexport const getGetUserByTokenUrl = () => {\n\n\n return `/api/accessi/auth/get-user-by-token`\n}\n\nexport const getUserByToken = async (getUserByTokenRequest: GetUserByTokenRequest, options?: RequestInit): Promise<getUserByTokenResponse> => {\nreturn accessiFetch<Promise<getUserByTokenResponse>>(getGetUserByTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n getUserByTokenRequest,)\n }\n);}\n\n\n/**\n * Con sola email restituisce passwordRequired oppure avvia il codice per utenti passwordless. Con password valida restituisce il login completo o challenge se la 2FA e attiva. Nessun JWT viene emesso prima della verifica del codice.\n * @summary Effettua il login utente\n */\nexport type loginResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getLoginUrl = () => {\n\n\n return `/api/accessi/auth/login`\n}\n\nexport const login = async (loginRequest: LoginRequest, options?: RequestInit): Promise<loginResponse> => {\nreturn accessiFetch<Promise<loginResponse>>(getLoginUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginRequest,)\n }\n);}\n\n\n/**\n * @summary Verifica il codice e completa il login\n */\nexport type verifyTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getVerifyTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/verify`\n}\n\nexport const verifyTwoFactor = async (verifyTwoFactorRequest: VerifyTwoFactorRequest, options?: RequestInit): Promise<verifyTwoFactorResponse> => {\nreturn accessiFetch<Promise<verifyTwoFactorResponse>>(getVerifyTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n verifyTwoFactorRequest,)\n }\n);}\n\n\n/**\n * @summary Reinvia il codice, invalidando il precedente\n */\nexport type resendTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getResendTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/resend`\n}\n\nexport const resendTwoFactor = async (resendTwoFactorRequest: ResendTwoFactorRequest, options?: RequestInit): Promise<resendTwoFactorResponse> => {\nreturn accessiFetch<Promise<resendTwoFactorResponse>>(getResendTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n resendTwoFactorRequest,)\n }\n);}\n\n\n/**\n * Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.\n * @summary Ritorna i ruoli disponibili con i relativi menu\n */\nexport type getRolesResponse = {\n data: GetRolesResponse;\n status: number;\n}\n\nexport const getGetRolesUrl = () => {\n\n\n return `/api/accessi/permission/roles`\n}\n\nexport const getRoles = async ( options?: RequestInit): Promise<getRolesResponse> => {\nreturn accessiFetch<Promise<getRolesResponse>>(getGetRolesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un ruolo esistente\n */\nexport type updateRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/update-role/${codiceRuolo}`\n}\n\nexport const updateRole = async (codiceRuolo: number,\n role: Role, options?: RequestInit): Promise<updateRoleResponse> => {\nreturn accessiFetch<Promise<updateRoleResponse>>(getUpdateRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Crea un nuovo ruolo\n */\nexport type createRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateRoleUrl = () => {\n\n\n return `/api/accessi/permission/create-role`\n}\n\nexport const createRole = async (role: Role, options?: RequestInit): Promise<createRoleResponse> => {\nreturn accessiFetch<Promise<createRoleResponse>>(getCreateRoleUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Assegna piu ruoli a un utente\n */\nexport type assignRolesToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignRolesToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-roles/${codiceUtente}`\n}\n\nexport const assignRolesToUser = async (codiceUtente: number,\n assignRolesToUserRequest: AssignRolesToUserRequest, options?: RequestInit): Promise<assignRolesToUserResponse> => {\nreturn accessiFetch<Promise<assignRolesToUserResponse>>(getAssignRolesToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignRolesToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Assegna abilitazioni dirette a un utente\n */\nexport type assignPermissionsToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignPermissionsToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-permissions/${codiceUtente}`\n}\n\nexport const assignPermissionsToUser = async (codiceUtente: number,\n assignPermissionsToUserRequest: AssignPermissionsToUserRequest, options?: RequestInit): Promise<assignPermissionsToUserResponse> => {\nreturn accessiFetch<Promise<assignPermissionsToUserResponse>>(getAssignPermissionsToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignPermissionsToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un ruolo esistente\n */\nexport type deleteRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/delete-role/${codiceRuolo}`\n}\n\nexport const deleteRole = async (codiceRuolo: number, options?: RequestInit): Promise<deleteRoleResponse> => {\nreturn accessiFetch<Promise<deleteRoleResponse>>(getDeleteRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera tutti i menu disponibili\n */\nexport type getMenusResponse = {\n data: GetMenusResponse;\n status: number;\n}\n\nexport const getGetMenusUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const getMenus = async ( options?: RequestInit): Promise<getMenusResponse> => {\nreturn accessiFetch<Promise<getMenusResponse>>(getGetMenusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo menu\n */\nexport type createMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const createMenu = async (createMenuRequest: CreateMenuRequest, options?: RequestInit): Promise<createMenuResponse> => {\nreturn accessiFetch<Promise<createMenuResponse>>(getCreateMenuUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera tutti i gruppi disponibili con i relativi menu\n */\nexport type getGroupsWithMenusResponse = {\n data: GetGroupsWithMenusResponse;\n status: number;\n}\n\nexport const getGetGroupsWithMenusUrl = (params?: GetGroupsWithMenusParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/permission/groups-with-menus?${normalizedParams.toString()}`\n}\n\nexport const getGroupsWithMenus = async (params?: GetGroupsWithMenusParams, options?: RequestInit): Promise<getGroupsWithMenusResponse> => {\nreturn accessiFetch<Promise<getGroupsWithMenusResponse>>(getGetGroupsWithMenusUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera il catalogo dei tipi menu\n */\nexport type getMenuTypesResponse = {\n data: GetMenuTypesResponse;\n status: number;\n}\n\nexport const getGetMenuTypesUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const getMenuTypes = async ( options?: RequestInit): Promise<getMenuTypesResponse> => {\nreturn accessiFetch<Promise<getMenuTypesResponse>>(getGetMenuTypesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo tipo menu\n */\nexport type createMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuTypeUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const createMenuType = async (createMenuTypeRequest: CreateMenuTypeRequest, options?: RequestInit): Promise<createMenuTypeResponse> => {\nreturn accessiFetch<Promise<createMenuTypeResponse>>(getCreateMenuTypeUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un menu esistente\n */\nexport type updateMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const updateMenu = async (codiceMenu: string,\n updateMenuRequest: UpdateMenuRequest, options?: RequestInit): Promise<updateMenuResponse> => {\nreturn accessiFetch<Promise<updateMenuResponse>>(getUpdateMenuUrl(codiceMenu),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un menu\n */\nexport type deleteMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const deleteMenu = async (codiceMenu: string, options?: RequestInit): Promise<deleteMenuResponse> => {\nreturn accessiFetch<Promise<deleteMenuResponse>>(getDeleteMenuUrl(codiceMenu),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo gruppo menu\n */\nexport type createMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuGroupUrl = () => {\n\n\n return `/api/accessi/permission/menu-groups`\n}\n\nexport const createMenuGroup = async (createMenuGroupRequest: CreateMenuGroupRequest, options?: RequestInit): Promise<createMenuGroupResponse> => {\nreturn accessiFetch<Promise<createMenuGroupResponse>>(getCreateMenuGroupUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un gruppo menu\n */\nexport type updateMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const updateMenuGroup = async (codiceGruppo: string,\n updateMenuGroupRequest: UpdateMenuGroupRequest, options?: RequestInit): Promise<updateMenuGroupResponse> => {\nreturn accessiFetch<Promise<updateMenuGroupResponse>>(getUpdateMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un gruppo menu\n */\nexport type deleteMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const deleteMenuGroup = async (codiceGruppo: string, options?: RequestInit): Promise<deleteMenuGroupResponse> => {\nreturn accessiFetch<Promise<deleteMenuGroupResponse>>(getDeleteMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un tipo menu\n */\nexport type updateMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const updateMenuType = async (codiceTipo: string,\n updateMenuTypeRequest: UpdateMenuTypeRequest, options?: RequestInit): Promise<updateMenuTypeResponse> => {\nreturn accessiFetch<Promise<updateMenuTypeResponse>>(getUpdateMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un tipo menu\n */\nexport type deleteMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const deleteMenuType = async (codiceTipo: string, options?: RequestInit): Promise<deleteMenuTypeResponse> => {\nreturn accessiFetch<Promise<deleteMenuTypeResponse>>(getDeleteMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera i ruoli e i menu di un utente\n */\nexport type getUserRolesAndGrantsResponse = {\n data: UserGrantsResponse;\n status: number;\n}\n\nexport const getGetUserRolesAndGrantsUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/grants/${codiceUtente}`\n}\n\nexport const getUserRolesAndGrants = async (codiceUtente: number, options?: RequestInit): Promise<getUserRolesAndGrantsResponse> => {\nreturn accessiFetch<Promise<getUserRolesAndGrantsResponse>>(getGetUserRolesAndGrantsUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Serve la pagina di reset password\n */\nexport type serveResetPasswordPageUserResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUserUrl = (token: string,) => {\n\n\n return `/api/accessi/user/reset-password/${token}`\n}\n\nexport const serveResetPasswordPageUser = async (token: string, options?: RequestInit): Promise<serveResetPasswordPageUserResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageUserResponse>>(getServeResetPasswordPageUserUrl(token),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera la lista degli utenti\n */\nexport type getUsersResponse = {\n data: GetUsersResponse;\n status: number;\n}\n\nexport const getGetUsersUrl = (params?: GetUsersParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/user/get-users?${normalizedParams.toString()}`\n}\n\nexport const getUsers = async (params?: GetUsersParams, options?: RequestInit): Promise<getUsersResponse> => {\nreturn accessiFetch<Promise<getUsersResponse>>(getGetUsersUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Imposta lo stato di un utente a eliminato senza rimuovere i record.\n * @summary Elimina un utente\n */\nexport type deleteUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user/${codiceUtente}`\n}\n\nexport const deleteUser = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserResponse> => {\nreturn accessiFetch<Promise<deleteUserResponse>>(getDeleteUserUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Imposta lo stato di registrazione di un utente\n */\nexport type setStatoRegistrazioneResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetStatoRegistrazioneUrl = () => {\n\n\n return `/api/accessi/user/set-stato`\n}\n\nexport const setStatoRegistrazione = async (setStatoRegistrazioneDto: SetStatoRegistrazioneDto, options?: RequestInit): Promise<setStatoRegistrazioneResponse> => {\nreturn accessiFetch<Promise<setStatoRegistrazioneResponse>>(getSetStatoRegistrazioneUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setStatoRegistrazioneDto,)\n }\n);}\n\n\n/**\n * Disponibile soltanto quando publicRegistration.enabled e true. Per utenti SSO usare il provisioning master nel tag Federated authentication.\n * @summary Registra un nuovo utente\n */\nexport type registerResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getRegisterUrl = () => {\n\n\n return `/api/accessi/user/register`\n}\n\nexport const register = async (publicRegisterRequest: PublicRegisterRequest, options?: RequestInit): Promise<registerResponse> => {\nreturn accessiFetch<Promise<registerResponse>>(getRegisterUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n publicRegisterRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Crea un utente in attesa di impostazione password e invia la mail di reset.\n * @summary Crea un utente locale da amministrazione\n */\nexport type createManagedUserResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getCreateManagedUserUrl = () => {\n\n\n return `/api/accessi/user/create-managed-user`\n}\n\nexport const createManagedUser = async (registerRequest: RegisterRequest, options?: RequestInit): Promise<createManagedUserResponse> => {\nreturn accessiFetch<Promise<createManagedUserResponse>>(getCreateManagedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n registerRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un utente esistente\n */\nexport type updateUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateUtenteUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/update-user/${codiceUtente}`\n}\n\nexport const updateUtente = async (codiceUtente: number,\n userDto: UserDto, options?: RequestInit): Promise<updateUtenteResponse> => {\nreturn accessiFetch<Promise<updateUtenteResponse>>(getUpdateUtenteUrl(codiceUtente),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n userDto,)\n }\n);}\n\n\n/**\n * @summary Imposta il consenso GDPR per un utente\n */\nexport type setGdprResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGdprUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-gdpr/${codiceUtente}`\n}\n\nexport const setGdpr = async (codiceUtente: number, options?: RequestInit): Promise<setGdprResponse> => {\nreturn accessiFetch<Promise<setGdprResponse>>(getSetGdprUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i tipi di filtri disponibili nel sistema\n * @summary Recupera la lista dei tipi di filtri\n */\nexport type getTipiFiltroResponse = {\n data: GetFiltriResponse;\n status: number;\n}\n\nexport const getGetTipiFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const getTipiFiltro = async ( options?: RequestInit): Promise<getTipiFiltroResponse> => {\nreturn accessiFetch<Promise<getTipiFiltroResponse>>(getGetTipiFiltroUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Inserisce una nuova voce nel catalogo dei tipi di filtro. Operazione riservata al superutente.\n * @summary Crea un tipo di filtro\n */\nexport type createTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateTipoFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const createTipoFiltro = async (createFilterTypeRequest: CreateFilterTypeRequest, options?: RequestInit): Promise<createTipoFiltroResponse> => {\nreturn accessiFetch<Promise<createTipoFiltroResponse>>(getCreateTipoFiltroUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Aggiorna descrizione, campo o stato di un tipo di filtro esistente.\n * @summary Aggiorna un tipo di filtro\n */\nexport type updateTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const updateTipoFiltro = async (tipFil: number,\n updateFilterTypeRequest: UpdateFilterTypeRequest, options?: RequestInit): Promise<updateTipoFiltroResponse> => {\nreturn accessiFetch<Promise<updateTipoFiltroResponse>>(getUpdateTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Elimina un tipo di filtro solo se nessun filtro utente lo utilizza.\n * @summary Elimina un tipo di filtro\n */\nexport type deleteTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const deleteTipoFiltro = async (tipFil: number, options?: RequestInit): Promise<deleteTipoFiltroResponse> => {\nreturn accessiFetch<Promise<deleteTipoFiltroResponse>>(getDeleteTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i filtri associati ad un utente specifico\n * @summary Recupera i filtri di un utente\n */\nexport type getFiltriUtenteResponse = {\n data: GetFiltriUtenteResponse;\n status: number;\n}\n\nexport const getGetFiltriUtenteUrl = (params?: GetFiltriUtenteParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/filtri/utente?${normalizedParams.toString()}`\n}\n\nexport const getFiltriUtente = async (params?: GetFiltriUtenteParams, options?: RequestInit): Promise<getFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<getFiltriUtenteResponse>>(getGetFiltriUtenteUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Permette di salvare i filtri associati ad un utente specifico\n * @summary Inserisce o aggiorna i filtri di un utente\n */\nexport type saveFiltriUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSaveFiltriUtenteUrl = () => {\n\n\n return `/api/accessi/filtri/utente`\n}\n\nexport const saveFiltriUtente = async (filtriUtente: FiltriUtente, options?: RequestInit): Promise<saveFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<saveFiltriUtenteResponse>>(getSaveFiltriUtenteUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n filtriUtente,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un menu\n */\nexport type setMenuEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetMenuEnabledUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/configurator/menus/${codiceMenu}/enabled`\n}\n\nexport const setMenuEnabled = async (codiceMenu: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setMenuEnabledResponse> => {\nreturn accessiFetch<Promise<setMenuEnabledResponse>>(getSetMenuEnabledUrl(codiceMenu),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un gruppo menu\n */\nexport type setGroupEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGroupEnabledUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/configurator/groups/${codiceGruppo}/enabled`\n}\n\nexport const setGroupEnabled = async (codiceGruppo: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setGroupEnabledResponse> => {\nreturn accessiFetch<Promise<setGroupEnabledResponse>>(getSetGroupEnabledUrl(codiceGruppo),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Restituisce solo catalogo e stato Accessi; issuer, secret e configurazioni SSO restano nel backend.\n * @summary Elenca i provider SSO censiti\n */\nexport type getFederatedProvidersResponse = {\n data: FederatedProviderListResponse;\n status: number;\n}\n\nexport const getGetFederatedProvidersUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const getFederatedProviders = async ( options?: RequestInit): Promise<getFederatedProvidersResponse> => {\nreturn accessiFetch<Promise<getFederatedProvidersResponse>>(getGetFederatedProvidersUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider deve corrispondere alla configurazione stabile del backend; non salvare segreti, issuer o token.\n * @summary Censisce un provider SSO\n */\nexport type createFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getCreateFederatedProviderUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const createFederatedProvider = async (createFederatedProviderRequest: CreateFederatedProviderRequest, options?: RequestInit): Promise<createFederatedProviderResponse> => {\nreturn accessiFetch<Promise<createFederatedProviderResponse>>(getCreateFederatedProviderUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider è immutabile: disabilitarla blocca nuovi login SSO ma conserva i collegamenti storici.\n * @summary Aggiorna o disabilita un provider SSO\n */\nexport type updateFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getUpdateFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const updateFederatedProvider = async (provider: string,\n updateFederatedProviderRequest: UpdateFederatedProviderRequest, options?: RequestInit): Promise<updateFederatedProviderResponse> => {\nreturn accessiFetch<Promise<updateFederatedProviderResponse>>(getUpdateFederatedProviderUrl(provider),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.\n * @summary Elimina un provider SSO\n */\nexport type deleteFederatedProviderResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const deleteFederatedProvider = async (provider: string, options?: RequestInit): Promise<deleteFederatedProviderResponse> => {\nreturn accessiFetch<Promise<deleteFederatedProviderResponse>>(getDeleteFederatedProviderUrl(provider),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. Non restituisce token esterni o claim del provider.\n * @summary Elenca le identita SSO di un utente\n */\nexport type getFederatedIdentitiesResponse = {\n data: FederatedIdentityListResponse;\n status: number;\n}\n\nexport const getGetFederatedIdentitiesUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const getFederatedIdentities = async (codiceUtente: number, options?: RequestInit): Promise<getFederatedIdentitiesResponse> => {\nreturn accessiFetch<Promise<getFederatedIdentitiesResponse>>(getGetFederatedIdentitiesUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Il master deve fornire un provider e subject ottenuti da una verifica SSO lato backend; questo endpoint non verifica token esterni.\n * @summary Associa un SSO gia verificato a un utente esistente\n */\nexport type linkFederatedIdentityResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getLinkFederatedIdentityUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const linkFederatedIdentity = async (codiceUtente: number,\n createFederatedIdentityRequest: CreateFederatedIdentityRequest, options?: RequestInit): Promise<linkFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<linkFederatedIdentityResponse>>(getLinkFederatedIdentityUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. L utente nasce confermato, con identita collegata e senza password salvo opt-in esplicito.\n * @summary Crea un utente gestito e SSO-only\n */\nexport type createFederatedUserResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getCreateFederatedUserUrl = () => {\n\n\n return `/api/accessi/federated-auth/users`\n}\n\nexport const createFederatedUser = async (createFederatedUserRequest: CreateFederatedUserRequest, options?: RequestInit): Promise<createFederatedUserResponse> => {\nreturn accessiFetch<Promise<createFederatedUserResponse>>(getCreateFederatedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedUserRequest,)\n }\n);}\n\n\n/**\n * Con false il login locale restituisce PASSWORD_LOGIN_DISABLED; le identita SSO attive restano utilizzabili.\n * @summary Abilita o disabilita il login con password\n */\nexport type setPasswordLoginPolicyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetPasswordLoginPolicyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/password-login`\n}\n\nexport const setPasswordLoginPolicy = async (codiceUtente: number,\n setPasswordLoginPolicyRequest: SetPasswordLoginPolicyRequest, options?: RequestInit): Promise<setPasswordLoginPolicyResponse> => {\nreturn accessiFetch<Promise<setPasswordLoginPolicyResponse>>(getSetPasswordLoginPolicyUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n setPasswordLoginPolicyRequest,)\n }\n);}\n\n\n/**\n * Soft delete: l associazione resta tracciata ma non puo piu autenticare.\n * @summary Disabilita un identita SSO\n */\nexport type disableFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDisableFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const disableFederatedIdentity = async (identityKey: string, options?: RequestInit): Promise<disableFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<disableFederatedIdentityResponse>>(getDisableFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Consente di modificare nota e stato attivo del collegamento. identityKey e una chiave tecnica, non un token SSO.\n * @summary Aggiorna un collegamento SSO\n */\nexport type updateFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const updateFederatedIdentity = async (identityKey: string,\n updateFederatedIdentityRequest: UpdateFederatedIdentityRequest, options?: RequestInit): Promise<updateFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<updateFederatedIdentityResponse>>(getUpdateFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Rimuove il collegamento provider e subject dall’utente, senza eliminare l’utente Accessi.\n * @summary Elimina definitivamente un collegamento SSO\n */\nexport type deleteFederatedIdentityPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedIdentityPermanentlyUrl = (codiceUtente: number,\n identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities/${identityKey}`\n}\n\nexport const deleteFederatedIdentityPermanently = async (codiceUtente: number,\n identityKey: string, options?: RequestInit): Promise<deleteFederatedIdentityPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteFederatedIdentityPermanentlyResponse>>(getDeleteFederatedIdentityPermanentlyUrl(codiceUtente,identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Emetti un nuovo token di servizio\n */\nexport type createServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getCreateServiceTokenUrl = () => {\n\n\n return `/api/accessi/service-token`\n}\n\nexport const createServiceToken = async (createServiceTokenRequest: CreateServiceTokenRequest, options?: RequestInit): Promise<createServiceTokenResponse> => {\nreturn accessiFetch<Promise<createServiceTokenResponse>>(getCreateServiceTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createServiceTokenRequest,)\n }\n);}\n\n\n/**\n * @summary Elenca i token di servizio (senza segreti)\n */\nexport type getServiceTokensResponse = {\n data: GetServiceTokensResponse;\n status: number;\n}\n\nexport const getGetServiceTokensUrl = (params?: GetServiceTokensParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/service-token?${normalizedParams.toString()}`\n}\n\nexport const getServiceTokens = async (params?: GetServiceTokensParams, options?: RequestInit): Promise<getServiceTokensResponse> => {\nreturn accessiFetch<Promise<getServiceTokensResponse>>(getGetServiceTokensUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Revoca un token di servizio\n */\nexport type revokeServiceTokenResponse = {\n data: ErrorResponse;\n status: number;\n}\n\nexport const getRevokeServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}`\n}\n\nexport const revokeServiceToken = async (tokenId: string, options?: RequestInit): Promise<revokeServiceTokenResponse> => {\nreturn accessiFetch<Promise<revokeServiceTokenResponse>>(getRevokeServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Ruota un token di servizio\n */\nexport type rotateServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getRotateServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}/rotate`\n}\n\nexport const rotateServiceToken = async (tokenId: string, options?: RequestInit): Promise<rotateServiceTokenResponse> => {\nreturn accessiFetch<Promise<rotateServiceTokenResponse>>(getRotateServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n"]}
1
+ {"version":3,"file":"accessiApi.js","sourceRoot":"","sources":["../../../../src/accessi-module/Console/generated/accessiApi.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Generated by orval v6.31.0 🍺\n * Do not edit manually.\n * Accessi API\n * OpenAPI spec version: 1.0\n */\nimport type {\n ActionResponse,\n AssignPermissionsToUserRequest,\n AssignRolesToUserRequest,\n ConfirmResetPasswordRequest,\n CreateFederatedIdentityRequest,\n CreateFederatedProviderRequest,\n CreateFederatedUserRequest,\n CreateFilterTypeRequest,\n CreateMenuGroupRequest,\n CreateMenuRequest,\n CreateMenuTypeRequest,\n CreateServiceTokenRequest,\n CreateServiceTokenResponse,\n ErrorResponse,\n FederatedIdentityListResponse,\n FederatedIdentityResponse,\n FederatedProviderListResponse,\n FederatedProviderResponse,\n FiltriUtente,\n GetFiltriResponse,\n GetFiltriUtenteParams,\n GetFiltriUtenteResponse,\n GetGroupsWithMenusParams,\n GetGroupsWithMenusResponse,\n GetMenuTypesResponse,\n GetMenusResponse,\n GetRolesResponse,\n GetServiceTokensParams,\n GetServiceTokensResponse,\n GetUserByTokenRequest,\n GetUserByTokenResponse,\n GetUsersParams,\n GetUsersResponse,\n LoginRequest,\n LoginResponse,\n PublicRegisterRequest,\n RegisterRequest,\n RegisterResponse,\n ResendTwoFactorRequest,\n Role,\n SendResetPasswordEmailRequest,\n ServeResetPasswordPageParams,\n SetPasswordLoginPolicyRequest,\n SetStatoRegistrazioneDto,\n UpdateEnabledStatusRequest,\n UpdateFederatedIdentityRequest,\n UpdateFederatedProviderRequest,\n UpdateFilterTypeRequest,\n UpdateMenuGroupRequest,\n UpdateMenuRequest,\n UpdateMenuTypeRequest,\n UserDto,\n UserGrantsResponse,\n VerifyTwoFactorRequest\n} from './model'\nimport { accessiFetch } from '../accessiFetch';\n\n\n/**\n * @summary Serve una pagina per il reset della password\n */\nexport type serveResetPasswordPageResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUrl = (token: string,\n params?: ServeResetPasswordPageParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/email/reset-password-page/${token}?${normalizedParams.toString()}`\n}\n\nexport const serveResetPasswordPage = async (token: string,\n params?: ServeResetPasswordPageParams, options?: RequestInit): Promise<serveResetPasswordPageResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageResponse>>(getServeResetPasswordPageUrl(token,params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Invia una e-mail per il reset della password\n */\nexport type sendPasswordResetEmailResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSendPasswordResetEmailUrl = () => {\n\n\n return `/api/accessi/email/send-reset-password-email`\n}\n\nexport const sendPasswordResetEmail = async (sendResetPasswordEmailRequest: SendResetPasswordEmailRequest, options?: RequestInit): Promise<sendPasswordResetEmailResponse> => {\nreturn accessiFetch<Promise<sendPasswordResetEmailResponse>>(getSendPasswordResetEmailUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n sendResetPasswordEmailRequest,)\n }\n);}\n\n\n/**\n * @summary Conferma il reset della password\n */\nexport type resetPasswordResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getResetPasswordUrl = (token: string,) => {\n\n\n return `/api/accessi/auth/confirm-reset-password/${token}`\n}\n\nexport const resetPassword = async (token: string,\n confirmResetPasswordRequest: ConfirmResetPasswordRequest, options?: RequestInit): Promise<resetPasswordResponse> => {\nreturn accessiFetch<Promise<resetPasswordResponse>>(getResetPasswordUrl(token),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n confirmResetPasswordRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera le informazioni utente dal token JWT\n */\nexport type getUserByTokenResponse = {\n data: GetUserByTokenResponse;\n status: number;\n}\n\nexport const getGetUserByTokenUrl = () => {\n\n\n return `/api/accessi/auth/get-user-by-token`\n}\n\nexport const getUserByToken = async (getUserByTokenRequest: GetUserByTokenRequest, options?: RequestInit): Promise<getUserByTokenResponse> => {\nreturn accessiFetch<Promise<getUserByTokenResponse>>(getGetUserByTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n getUserByTokenRequest,)\n }\n);}\n\n\n/**\n * Con sola email restituisce passwordRequired oppure avvia il codice per utenti passwordless. Con password valida restituisce il login completo o challenge se la 2FA e attiva. Nessun JWT viene emesso prima della verifica del codice.\n * @summary Effettua il login utente\n */\nexport type loginResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getLoginUrl = () => {\n\n\n return `/api/accessi/auth/login`\n}\n\nexport const login = async (loginRequest: LoginRequest, options?: RequestInit): Promise<loginResponse> => {\nreturn accessiFetch<Promise<loginResponse>>(getLoginUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n loginRequest,)\n }\n);}\n\n\n/**\n * @summary Verifica il codice e completa il login\n */\nexport type verifyTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getVerifyTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/verify`\n}\n\nexport const verifyTwoFactor = async (verifyTwoFactorRequest: VerifyTwoFactorRequest, options?: RequestInit): Promise<verifyTwoFactorResponse> => {\nreturn accessiFetch<Promise<verifyTwoFactorResponse>>(getVerifyTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n verifyTwoFactorRequest,)\n }\n);}\n\n\n/**\n * @summary Reinvia il codice, invalidando il precedente\n */\nexport type resendTwoFactorResponse = {\n data: LoginResponse;\n status: number;\n}\n\nexport const getResendTwoFactorUrl = () => {\n\n\n return `/api/accessi/auth/two-factor/resend`\n}\n\nexport const resendTwoFactor = async (resendTwoFactorRequest: ResendTwoFactorRequest, options?: RequestInit): Promise<resendTwoFactorResponse> => {\nreturn accessiFetch<Promise<resendTwoFactorResponse>>(getResendTwoFactorUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n resendTwoFactorRequest,)\n }\n);}\n\n\n/**\n * Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.\n * @summary Ritorna i ruoli disponibili con i relativi menu\n */\nexport type getRolesResponse = {\n data: GetRolesResponse;\n status: number;\n}\n\nexport const getGetRolesUrl = () => {\n\n\n return `/api/accessi/permission/roles`\n}\n\nexport const getRoles = async ( options?: RequestInit): Promise<getRolesResponse> => {\nreturn accessiFetch<Promise<getRolesResponse>>(getGetRolesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un ruolo esistente\n */\nexport type updateRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/update-role/${codiceRuolo}`\n}\n\nexport const updateRole = async (codiceRuolo: number,\n role: Role, options?: RequestInit): Promise<updateRoleResponse> => {\nreturn accessiFetch<Promise<updateRoleResponse>>(getUpdateRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Crea un nuovo ruolo\n */\nexport type createRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateRoleUrl = () => {\n\n\n return `/api/accessi/permission/create-role`\n}\n\nexport const createRole = async (role: Role, options?: RequestInit): Promise<createRoleResponse> => {\nreturn accessiFetch<Promise<createRoleResponse>>(getCreateRoleUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n role,)\n }\n);}\n\n\n/**\n * @summary Assegna piu ruoli a un utente\n */\nexport type assignRolesToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignRolesToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-roles/${codiceUtente}`\n}\n\nexport const assignRolesToUser = async (codiceUtente: number,\n assignRolesToUserRequest: AssignRolesToUserRequest, options?: RequestInit): Promise<assignRolesToUserResponse> => {\nreturn accessiFetch<Promise<assignRolesToUserResponse>>(getAssignRolesToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignRolesToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Assegna abilitazioni dirette a un utente\n */\nexport type assignPermissionsToUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getAssignPermissionsToUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/assign-permissions/${codiceUtente}`\n}\n\nexport const assignPermissionsToUser = async (codiceUtente: number,\n assignPermissionsToUserRequest: AssignPermissionsToUserRequest, options?: RequestInit): Promise<assignPermissionsToUserResponse> => {\nreturn accessiFetch<Promise<assignPermissionsToUserResponse>>(getAssignPermissionsToUserUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n assignPermissionsToUserRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un ruolo esistente\n */\nexport type deleteRoleResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteRoleUrl = (codiceRuolo: number,) => {\n\n\n return `/api/accessi/permission/delete-role/${codiceRuolo}`\n}\n\nexport const deleteRole = async (codiceRuolo: number, options?: RequestInit): Promise<deleteRoleResponse> => {\nreturn accessiFetch<Promise<deleteRoleResponse>>(getDeleteRoleUrl(codiceRuolo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera tutti i menu disponibili\n */\nexport type getMenusResponse = {\n data: GetMenusResponse;\n status: number;\n}\n\nexport const getGetMenusUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const getMenus = async ( options?: RequestInit): Promise<getMenusResponse> => {\nreturn accessiFetch<Promise<getMenusResponse>>(getGetMenusUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo menu\n */\nexport type createMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuUrl = () => {\n\n\n return `/api/accessi/permission/menus`\n}\n\nexport const createMenu = async (createMenuRequest: CreateMenuRequest, options?: RequestInit): Promise<createMenuResponse> => {\nreturn accessiFetch<Promise<createMenuResponse>>(getCreateMenuUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Recupera tutti i gruppi disponibili con i relativi menu\n */\nexport type getGroupsWithMenusResponse = {\n data: GetGroupsWithMenusResponse;\n status: number;\n}\n\nexport const getGetGroupsWithMenusUrl = (params?: GetGroupsWithMenusParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/permission/groups-with-menus?${normalizedParams.toString()}`\n}\n\nexport const getGroupsWithMenus = async (params?: GetGroupsWithMenusParams, options?: RequestInit): Promise<getGroupsWithMenusResponse> => {\nreturn accessiFetch<Promise<getGroupsWithMenusResponse>>(getGetGroupsWithMenusUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera il catalogo dei tipi menu\n */\nexport type getMenuTypesResponse = {\n data: GetMenuTypesResponse;\n status: number;\n}\n\nexport const getGetMenuTypesUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const getMenuTypes = async ( options?: RequestInit): Promise<getMenuTypesResponse> => {\nreturn accessiFetch<Promise<getMenuTypesResponse>>(getGetMenuTypesUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo tipo menu\n */\nexport type createMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuTypeUrl = () => {\n\n\n return `/api/accessi/permission/menu-types`\n}\n\nexport const createMenuType = async (createMenuTypeRequest: CreateMenuTypeRequest, options?: RequestInit): Promise<createMenuTypeResponse> => {\nreturn accessiFetch<Promise<createMenuTypeResponse>>(getCreateMenuTypeUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un menu esistente\n */\nexport type updateMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const updateMenu = async (codiceMenu: string,\n updateMenuRequest: UpdateMenuRequest, options?: RequestInit): Promise<updateMenuResponse> => {\nreturn accessiFetch<Promise<updateMenuResponse>>(getUpdateMenuUrl(codiceMenu),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un menu\n */\nexport type deleteMenuResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/permission/menus/${codiceMenu}`\n}\n\nexport const deleteMenu = async (codiceMenu: string, options?: RequestInit): Promise<deleteMenuResponse> => {\nreturn accessiFetch<Promise<deleteMenuResponse>>(getDeleteMenuUrl(codiceMenu),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Crea un nuovo gruppo menu\n */\nexport type createMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateMenuGroupUrl = () => {\n\n\n return `/api/accessi/permission/menu-groups`\n}\n\nexport const createMenuGroup = async (createMenuGroupRequest: CreateMenuGroupRequest, options?: RequestInit): Promise<createMenuGroupResponse> => {\nreturn accessiFetch<Promise<createMenuGroupResponse>>(getCreateMenuGroupUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un gruppo menu\n */\nexport type updateMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const updateMenuGroup = async (codiceGruppo: string,\n updateMenuGroupRequest: UpdateMenuGroupRequest, options?: RequestInit): Promise<updateMenuGroupResponse> => {\nreturn accessiFetch<Promise<updateMenuGroupResponse>>(getUpdateMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuGroupRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un gruppo menu\n */\nexport type deleteMenuGroupResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuGroupUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/permission/menu-groups/${codiceGruppo}`\n}\n\nexport const deleteMenuGroup = async (codiceGruppo: string, options?: RequestInit): Promise<deleteMenuGroupResponse> => {\nreturn accessiFetch<Promise<deleteMenuGroupResponse>>(getDeleteMenuGroupUrl(codiceGruppo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Aggiorna un tipo menu\n */\nexport type updateMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const updateMenuType = async (codiceTipo: string,\n updateMenuTypeRequest: UpdateMenuTypeRequest, options?: RequestInit): Promise<updateMenuTypeResponse> => {\nreturn accessiFetch<Promise<updateMenuTypeResponse>>(getUpdateMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateMenuTypeRequest,)\n }\n);}\n\n\n/**\n * @summary Elimina un tipo menu\n */\nexport type deleteMenuTypeResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteMenuTypeUrl = (codiceTipo: string,) => {\n\n\n return `/api/accessi/permission/menu-types/${codiceTipo}`\n}\n\nexport const deleteMenuType = async (codiceTipo: string, options?: RequestInit): Promise<deleteMenuTypeResponse> => {\nreturn accessiFetch<Promise<deleteMenuTypeResponse>>(getDeleteMenuTypeUrl(codiceTipo),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Recupera i ruoli e i menu di un utente\n */\nexport type getUserRolesAndGrantsResponse = {\n data: UserGrantsResponse;\n status: number;\n}\n\nexport const getGetUserRolesAndGrantsUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/permission/grants/${codiceUtente}`\n}\n\nexport const getUserRolesAndGrants = async (codiceUtente: number, options?: RequestInit): Promise<getUserRolesAndGrantsResponse> => {\nreturn accessiFetch<Promise<getUserRolesAndGrantsResponse>>(getGetUserRolesAndGrantsUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Serve la pagina di reset password\n */\nexport type serveResetPasswordPageUserResponse = {\n data: void;\n status: number;\n}\n\nexport const getServeResetPasswordPageUserUrl = (token: string,) => {\n\n\n return `/api/accessi/user/reset-password/${token}`\n}\n\nexport const serveResetPasswordPageUser = async (token: string, options?: RequestInit): Promise<serveResetPasswordPageUserResponse> => {\nreturn accessiFetch<Promise<serveResetPasswordPageUserResponse>>(getServeResetPasswordPageUserUrl(token),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Recupera la lista degli utenti\n */\nexport type getUsersResponse = {\n data: GetUsersResponse;\n status: number;\n}\n\nexport const getGetUsersUrl = (params?: GetUsersParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/user/get-users?${normalizedParams.toString()}`\n}\n\nexport const getUsers = async (params?: GetUsersParams, options?: RequestInit): Promise<getUsersResponse> => {\nreturn accessiFetch<Promise<getUsersResponse>>(getGetUsersUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Imposta lo stato di un utente a eliminato senza rimuovere i record.\n * @summary Elimina un utente\n */\nexport type deleteUserResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteUserUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/delete-user/${codiceUtente}`\n}\n\nexport const deleteUser = async (codiceUtente: number, options?: RequestInit): Promise<deleteUserResponse> => {\nreturn accessiFetch<Promise<deleteUserResponse>>(getDeleteUserUrl(codiceUtente),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.\n * @summary Forza l invio dell email di reset password a un utente\n */\nexport type forcePasswordResetResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/force-password-reset/${codiceUtente}`\n}\n\nexport const forcePasswordReset = async (codiceUtente: number, options?: RequestInit): Promise<forcePasswordResetResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetResponse>>(getForcePasswordResetUrl(codiceUtente),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.\n * @summary Forza il reset password per tutti gli utenti con password legacy\n */\nexport type forcePasswordResetLegacyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getForcePasswordResetLegacyUrl = () => {\n\n\n return `/api/accessi/user/force-password-reset-legacy`\n}\n\nexport const forcePasswordResetLegacy = async ( options?: RequestInit): Promise<forcePasswordResetLegacyResponse> => {\nreturn accessiFetch<Promise<forcePasswordResetLegacyResponse>>(getForcePasswordResetLegacyUrl(),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n/**\n * @summary Imposta lo stato di registrazione di un utente\n */\nexport type setStatoRegistrazioneResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetStatoRegistrazioneUrl = () => {\n\n\n return `/api/accessi/user/set-stato`\n}\n\nexport const setStatoRegistrazione = async (setStatoRegistrazioneDto: SetStatoRegistrazioneDto, options?: RequestInit): Promise<setStatoRegistrazioneResponse> => {\nreturn accessiFetch<Promise<setStatoRegistrazioneResponse>>(getSetStatoRegistrazioneUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n setStatoRegistrazioneDto,)\n }\n);}\n\n\n/**\n * Disponibile soltanto quando publicRegistration.enabled e true. Per utenti SSO usare il provisioning master nel tag Federated authentication.\n * @summary Registra un nuovo utente\n */\nexport type registerResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getRegisterUrl = () => {\n\n\n return `/api/accessi/user/register`\n}\n\nexport const register = async (publicRegisterRequest: PublicRegisterRequest, options?: RequestInit): Promise<registerResponse> => {\nreturn accessiFetch<Promise<registerResponse>>(getRegisterUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n publicRegisterRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Crea un utente in attesa di impostazione password e invia la mail di reset.\n * @summary Crea un utente locale da amministrazione\n */\nexport type createManagedUserResponse = {\n data: RegisterResponse;\n status: number;\n}\n\nexport const getCreateManagedUserUrl = () => {\n\n\n return `/api/accessi/user/create-managed-user`\n}\n\nexport const createManagedUser = async (registerRequest: RegisterRequest, options?: RequestInit): Promise<createManagedUserResponse> => {\nreturn accessiFetch<Promise<createManagedUserResponse>>(getCreateManagedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n registerRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna un utente esistente\n */\nexport type updateUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateUtenteUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/update-user/${codiceUtente}`\n}\n\nexport const updateUtente = async (codiceUtente: number,\n userDto: UserDto, options?: RequestInit): Promise<updateUtenteResponse> => {\nreturn accessiFetch<Promise<updateUtenteResponse>>(getUpdateUtenteUrl(codiceUtente),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n userDto,)\n }\n);}\n\n\n/**\n * @summary Imposta il consenso GDPR per un utente\n */\nexport type setGdprResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGdprUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/user/set-gdpr/${codiceUtente}`\n}\n\nexport const setGdpr = async (codiceUtente: number, options?: RequestInit): Promise<setGdprResponse> => {\nreturn accessiFetch<Promise<setGdprResponse>>(getSetGdprUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i tipi di filtri disponibili nel sistema\n * @summary Recupera la lista dei tipi di filtri\n */\nexport type getTipiFiltroResponse = {\n data: GetFiltriResponse;\n status: number;\n}\n\nexport const getGetTipiFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const getTipiFiltro = async ( options?: RequestInit): Promise<getTipiFiltroResponse> => {\nreturn accessiFetch<Promise<getTipiFiltroResponse>>(getGetTipiFiltroUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Inserisce una nuova voce nel catalogo dei tipi di filtro. Operazione riservata al superutente.\n * @summary Crea un tipo di filtro\n */\nexport type createTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getCreateTipoFiltroUrl = () => {\n\n\n return `/api/accessi/filtri/tipi`\n}\n\nexport const createTipoFiltro = async (createFilterTypeRequest: CreateFilterTypeRequest, options?: RequestInit): Promise<createTipoFiltroResponse> => {\nreturn accessiFetch<Promise<createTipoFiltroResponse>>(getCreateTipoFiltroUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Aggiorna descrizione, campo o stato di un tipo di filtro esistente.\n * @summary Aggiorna un tipo di filtro\n */\nexport type updateTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const updateTipoFiltro = async (tipFil: number,\n updateFilterTypeRequest: UpdateFilterTypeRequest, options?: RequestInit): Promise<updateTipoFiltroResponse> => {\nreturn accessiFetch<Promise<updateTipoFiltroResponse>>(getUpdateTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'PUT',\n body: JSON.stringify(\n updateFilterTypeRequest,)\n }\n);}\n\n\n/**\n * Elimina un tipo di filtro solo se nessun filtro utente lo utilizza.\n * @summary Elimina un tipo di filtro\n */\nexport type deleteTipoFiltroResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteTipoFiltroUrl = (tipFil: number,) => {\n\n\n return `/api/accessi/filtri/tipi/${tipFil}`\n}\n\nexport const deleteTipoFiltro = async (tipFil: number, options?: RequestInit): Promise<deleteTipoFiltroResponse> => {\nreturn accessiFetch<Promise<deleteTipoFiltroResponse>>(getDeleteTipoFiltroUrl(tipFil),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Ritorna tutti i filtri associati ad un utente specifico\n * @summary Recupera i filtri di un utente\n */\nexport type getFiltriUtenteResponse = {\n data: GetFiltriUtenteResponse;\n status: number;\n}\n\nexport const getGetFiltriUtenteUrl = (params?: GetFiltriUtenteParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/filtri/utente?${normalizedParams.toString()}`\n}\n\nexport const getFiltriUtente = async (params?: GetFiltriUtenteParams, options?: RequestInit): Promise<getFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<getFiltriUtenteResponse>>(getGetFiltriUtenteUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Permette di salvare i filtri associati ad un utente specifico\n * @summary Inserisce o aggiorna i filtri di un utente\n */\nexport type saveFiltriUtenteResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSaveFiltriUtenteUrl = () => {\n\n\n return `/api/accessi/filtri/utente`\n}\n\nexport const saveFiltriUtente = async (filtriUtente: FiltriUtente, options?: RequestInit): Promise<saveFiltriUtenteResponse> => {\nreturn accessiFetch<Promise<saveFiltriUtenteResponse>>(getSaveFiltriUtenteUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n filtriUtente,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un menu\n */\nexport type setMenuEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetMenuEnabledUrl = (codiceMenu: string,) => {\n\n\n return `/api/accessi/configurator/menus/${codiceMenu}/enabled`\n}\n\nexport const setMenuEnabled = async (codiceMenu: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setMenuEnabledResponse> => {\nreturn accessiFetch<Promise<setMenuEnabledResponse>>(getSetMenuEnabledUrl(codiceMenu),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * @summary Aggiorna lo stato di abilitazione di un gruppo menu\n */\nexport type setGroupEnabledResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetGroupEnabledUrl = (codiceGruppo: string,) => {\n\n\n return `/api/accessi/configurator/groups/${codiceGruppo}/enabled`\n}\n\nexport const setGroupEnabled = async (codiceGruppo: string,\n updateEnabledStatusRequest: UpdateEnabledStatusRequest, options?: RequestInit): Promise<setGroupEnabledResponse> => {\nreturn accessiFetch<Promise<setGroupEnabledResponse>>(getSetGroupEnabledUrl(codiceGruppo),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateEnabledStatusRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Restituisce solo catalogo e stato Accessi; issuer, secret e configurazioni SSO restano nel backend.\n * @summary Elenca i provider SSO censiti\n */\nexport type getFederatedProvidersResponse = {\n data: FederatedProviderListResponse;\n status: number;\n}\n\nexport const getGetFederatedProvidersUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const getFederatedProviders = async ( options?: RequestInit): Promise<getFederatedProvidersResponse> => {\nreturn accessiFetch<Promise<getFederatedProvidersResponse>>(getGetFederatedProvidersUrl(),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider deve corrispondere alla configurazione stabile del backend; non salvare segreti, issuer o token.\n * @summary Censisce un provider SSO\n */\nexport type createFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getCreateFederatedProviderUrl = () => {\n\n\n return `/api/accessi/federated-auth/providers`\n}\n\nexport const createFederatedProvider = async (createFederatedProviderRequest: CreateFederatedProviderRequest, options?: RequestInit): Promise<createFederatedProviderResponse> => {\nreturn accessiFetch<Promise<createFederatedProviderResponse>>(getCreateFederatedProviderUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. La chiave provider è immutabile: disabilitarla blocca nuovi login SSO ma conserva i collegamenti storici.\n * @summary Aggiorna o disabilita un provider SSO\n */\nexport type updateFederatedProviderResponse = {\n data: FederatedProviderResponse;\n status: number;\n}\n\nexport const getUpdateFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const updateFederatedProvider = async (provider: string,\n updateFederatedProviderRequest: UpdateFederatedProviderRequest, options?: RequestInit): Promise<updateFederatedProviderResponse> => {\nreturn accessiFetch<Promise<updateFederatedProviderResponse>>(getUpdateFederatedProviderUrl(provider),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedProviderRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Consentito solo se nessuna identita e collegata al provider; in alternativa disabilitalo.\n * @summary Elimina un provider SSO\n */\nexport type deleteFederatedProviderResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedProviderUrl = (provider: string,) => {\n\n\n return `/api/accessi/federated-auth/providers/${provider}`\n}\n\nexport const deleteFederatedProvider = async (provider: string, options?: RequestInit): Promise<deleteFederatedProviderResponse> => {\nreturn accessiFetch<Promise<deleteFederatedProviderResponse>>(getDeleteFederatedProviderUrl(provider),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Riservato a superutente. Non restituisce token esterni o claim del provider.\n * @summary Elenca le identita SSO di un utente\n */\nexport type getFederatedIdentitiesResponse = {\n data: FederatedIdentityListResponse;\n status: number;\n}\n\nexport const getGetFederatedIdentitiesUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const getFederatedIdentities = async (codiceUtente: number, options?: RequestInit): Promise<getFederatedIdentitiesResponse> => {\nreturn accessiFetch<Promise<getFederatedIdentitiesResponse>>(getGetFederatedIdentitiesUrl(codiceUtente),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * Il master deve fornire un provider e subject ottenuti da una verifica SSO lato backend; questo endpoint non verifica token esterni.\n * @summary Associa un SSO gia verificato a un utente esistente\n */\nexport type linkFederatedIdentityResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getLinkFederatedIdentityUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities`\n}\n\nexport const linkFederatedIdentity = async (codiceUtente: number,\n createFederatedIdentityRequest: CreateFederatedIdentityRequest, options?: RequestInit): Promise<linkFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<linkFederatedIdentityResponse>>(getLinkFederatedIdentityUrl(codiceUtente),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. L utente nasce confermato, con identita collegata e senza password salvo opt-in esplicito.\n * @summary Crea un utente gestito e SSO-only\n */\nexport type createFederatedUserResponse = {\n data: FederatedIdentityResponse;\n status: number;\n}\n\nexport const getCreateFederatedUserUrl = () => {\n\n\n return `/api/accessi/federated-auth/users`\n}\n\nexport const createFederatedUser = async (createFederatedUserRequest: CreateFederatedUserRequest, options?: RequestInit): Promise<createFederatedUserResponse> => {\nreturn accessiFetch<Promise<createFederatedUserResponse>>(getCreateFederatedUserUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createFederatedUserRequest,)\n }\n);}\n\n\n/**\n * Con false il login locale restituisce PASSWORD_LOGIN_DISABLED; le identita SSO attive restano utilizzabili.\n * @summary Abilita o disabilita il login con password\n */\nexport type setPasswordLoginPolicyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getSetPasswordLoginPolicyUrl = (codiceUtente: number,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/password-login`\n}\n\nexport const setPasswordLoginPolicy = async (codiceUtente: number,\n setPasswordLoginPolicyRequest: SetPasswordLoginPolicyRequest, options?: RequestInit): Promise<setPasswordLoginPolicyResponse> => {\nreturn accessiFetch<Promise<setPasswordLoginPolicyResponse>>(getSetPasswordLoginPolicyUrl(codiceUtente),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n setPasswordLoginPolicyRequest,)\n }\n);}\n\n\n/**\n * Soft delete: l associazione resta tracciata ma non puo piu autenticare.\n * @summary Disabilita un identita SSO\n */\nexport type disableFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDisableFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const disableFederatedIdentity = async (identityKey: string, options?: RequestInit): Promise<disableFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<disableFederatedIdentityResponse>>(getDisableFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * Consente di modificare nota e stato attivo del collegamento. identityKey e una chiave tecnica, non un token SSO.\n * @summary Aggiorna un collegamento SSO\n */\nexport type updateFederatedIdentityResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getUpdateFederatedIdentityUrl = (identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/identities/${identityKey}`\n}\n\nexport const updateFederatedIdentity = async (identityKey: string,\n updateFederatedIdentityRequest: UpdateFederatedIdentityRequest, options?: RequestInit): Promise<updateFederatedIdentityResponse> => {\nreturn accessiFetch<Promise<updateFederatedIdentityResponse>>(getUpdateFederatedIdentityUrl(identityKey),\n { \n ...options,\n method: 'PATCH',\n body: JSON.stringify(\n updateFederatedIdentityRequest,)\n }\n);}\n\n\n/**\n * Riservato a superutente. Rimuove il collegamento provider e subject dall’utente, senza eliminare l’utente Accessi.\n * @summary Elimina definitivamente un collegamento SSO\n */\nexport type deleteFederatedIdentityPermanentlyResponse = {\n data: ActionResponse;\n status: number;\n}\n\nexport const getDeleteFederatedIdentityPermanentlyUrl = (codiceUtente: number,\n identityKey: string,) => {\n\n\n return `/api/accessi/federated-auth/users/${codiceUtente}/identities/${identityKey}`\n}\n\nexport const deleteFederatedIdentityPermanently = async (codiceUtente: number,\n identityKey: string, options?: RequestInit): Promise<deleteFederatedIdentityPermanentlyResponse> => {\nreturn accessiFetch<Promise<deleteFederatedIdentityPermanentlyResponse>>(getDeleteFederatedIdentityPermanentlyUrl(codiceUtente,identityKey),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Emetti un nuovo token di servizio\n */\nexport type createServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getCreateServiceTokenUrl = () => {\n\n\n return `/api/accessi/service-token`\n}\n\nexport const createServiceToken = async (createServiceTokenRequest: CreateServiceTokenRequest, options?: RequestInit): Promise<createServiceTokenResponse> => {\nreturn accessiFetch<Promise<createServiceTokenResponse>>(getCreateServiceTokenUrl(),\n { \n ...options,\n method: 'POST',\n body: JSON.stringify(\n createServiceTokenRequest,)\n }\n);}\n\n\n/**\n * @summary Elenca i token di servizio (senza segreti)\n */\nexport type getServiceTokensResponse = {\n data: GetServiceTokensResponse;\n status: number;\n}\n\nexport const getGetServiceTokensUrl = (params?: GetServiceTokensParams,) => {\n\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n if (value === null) {\n normalizedParams.append(key, 'null');\n } else if (value !== undefined) {\n normalizedParams.append(key, value.toString());\n }\n });\n\n return `/api/accessi/service-token?${normalizedParams.toString()}`\n}\n\nexport const getServiceTokens = async (params?: GetServiceTokensParams, options?: RequestInit): Promise<getServiceTokensResponse> => {\nreturn accessiFetch<Promise<getServiceTokensResponse>>(getGetServiceTokensUrl(params),\n { \n ...options,\n method: 'GET'\n \n }\n);}\n\n\n/**\n * @summary Revoca un token di servizio\n */\nexport type revokeServiceTokenResponse = {\n data: ErrorResponse;\n status: number;\n}\n\nexport const getRevokeServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}`\n}\n\nexport const revokeServiceToken = async (tokenId: string, options?: RequestInit): Promise<revokeServiceTokenResponse> => {\nreturn accessiFetch<Promise<revokeServiceTokenResponse>>(getRevokeServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'DELETE'\n \n }\n);}\n\n\n/**\n * @summary Ruota un token di servizio\n */\nexport type rotateServiceTokenResponse = {\n data: CreateServiceTokenResponse;\n status: number;\n}\n\nexport const getRotateServiceTokenUrl = (tokenId: string,) => {\n\n\n return `/api/accessi/service-token/${tokenId}/rotate`\n}\n\nexport const rotateServiceToken = async (tokenId: string, options?: RequestInit): Promise<rotateServiceTokenResponse> => {\nreturn accessiFetch<Promise<rotateServiceTokenResponse>>(getRotateServiceTokenUrl(tokenId),\n { \n ...options,\n method: 'POST'\n \n }\n);}\n\n\n"]}
@@ -16,6 +16,8 @@ export declare class UserController {
16
16
  serveResetPasswordPage(res: Response, _token: string): Promise<void>;
17
17
  getUsers(request: Request, res: Response, email?: string, codiceUtente?: number, includeExtensionFields?: boolean, includeGrants?: boolean, limit?: number, offset?: number): Promise<Response<any, Record<string, any>>>;
18
18
  deleteUser(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
19
+ forcePasswordReset(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
20
+ forcePasswordResetLegacy(request: Request, res: Response): Promise<Response<any, Record<string, any>>>;
19
21
  setStatoRegistrazione(request: Request, body: SetStatoRegistrazioneDto, res: Response): Promise<Response<any, Record<string, any>>>;
20
22
  register(request: Request, registrationData: PublicRegisterRequest, res: Response): Promise<Response<any, Record<string, any>>>;
21
23
  createManagedUser(request: Request, registrationData: RegisterRequest, res: Response): Promise<Response<any, Record<string, any>>>;
@@ -88,6 +88,30 @@ let UserController = UserController_1 = class UserController {
88
88
  }
89
89
  });
90
90
  }
91
+ forcePasswordReset(request, codiceUtente, res) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono forzare il reset password.');
95
+ yield this.userService.forcePasswordReset(codiceUtente);
96
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Email di reset inviata all utente ${codiceUtente}.`);
97
+ }
98
+ catch (error) {
99
+ return this.sendControllerError(res, error);
100
+ }
101
+ });
102
+ }
103
+ forcePasswordResetLegacy(request, res) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ try {
106
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono forzare il reset password.');
107
+ const sent = yield this.userService.forcePasswordResetForLegacyPasswords();
108
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Email di reset inviata a ${sent} utenti con password legacy.`);
109
+ }
110
+ catch (error) {
111
+ return this.sendControllerError(res, error);
112
+ }
113
+ });
114
+ }
91
115
  setStatoRegistrazione(request, body, res) {
92
116
  return __awaiter(this, void 0, void 0, function* () {
93
117
  try {
@@ -290,6 +314,43 @@ __decorate([
290
314
  __metadata("design:paramtypes", [Object, Number, Object]),
291
315
  __metadata("design:returntype", Promise)
292
316
  ], UserController.prototype, "deleteUser", null);
317
+ __decorate([
318
+ (0, swagger_1.ApiOperation)({
319
+ summary: 'Forza l invio dell email di reset password a un utente',
320
+ operationId: 'forcePasswordReset',
321
+ description: 'Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.',
322
+ }),
323
+ (0, swagger_1.ApiParam)({ name: 'codiceUtente', description: 'Codice identificativo dell utente', required: true, example: 123, type: Number }),
324
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Email di reset inviata', type: BaseResponse_1.ActionResponse }),
325
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Servizio email non configurato', type: BaseResponse_1.ErrorResponse }),
326
+ (0, swagger_1.ApiResponse)({ status: 404, description: 'Utente non trovato', type: BaseResponse_1.ErrorResponse }),
327
+ (0, swagger_1.ApiBearerAuth)(),
328
+ (0, common_1.UseGuards)(jwt_strategy_1.JwtSimpleGuard),
329
+ (0, common_1.Post)('force-password-reset/:codiceUtente'),
330
+ __param(0, (0, common_1.Req)()),
331
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
332
+ __param(2, (0, common_1.Res)()),
333
+ __metadata("design:type", Function),
334
+ __metadata("design:paramtypes", [Object, Number, Object]),
335
+ __metadata("design:returntype", Promise)
336
+ ], UserController.prototype, "forcePasswordReset", null);
337
+ __decorate([
338
+ (0, swagger_1.ApiOperation)({
339
+ summary: 'Forza il reset password per tutti gli utenti con password legacy',
340
+ operationId: 'forcePasswordResetLegacy',
341
+ description: 'Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.',
342
+ }),
343
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Email di reset inviate', type: BaseResponse_1.ActionResponse }),
344
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Servizio email non configurato', type: BaseResponse_1.ErrorResponse }),
345
+ (0, swagger_1.ApiBearerAuth)(),
346
+ (0, common_1.UseGuards)(jwt_strategy_1.JwtSimpleGuard),
347
+ (0, common_1.Post)('force-password-reset-legacy'),
348
+ __param(0, (0, common_1.Req)()),
349
+ __param(1, (0, common_1.Res)()),
350
+ __metadata("design:type", Function),
351
+ __metadata("design:paramtypes", [Object, Object]),
352
+ __metadata("design:returntype", Promise)
353
+ ], UserController.prototype, "forcePasswordResetLegacy", null);
293
354
  __decorate([
294
355
  (0, swagger_1.ApiOperation)({
295
356
  summary: 'Imposta lo stato di registrazione di un utente',