emilsoftware-utilities 2.0.0-dev.7 → 2.0.0-dev.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +249 -38
- package/dist/ContractGenerator.d.ts +4 -3
- package/dist/ContractGenerator.js +15 -5
- package/dist/ContractGenerator.js.map +1 -1
- package/dist/DailyFileTransport.d.ts +21 -0
- package/dist/DailyFileTransport.js +74 -0
- package/dist/DailyFileTransport.js.map +1 -0
- package/dist/DatabaseUpdater.js +32 -29
- package/dist/DatabaseUpdater.js.map +1 -1
- package/dist/EmilsoftwareModule.d.ts +15 -1
- package/dist/EmilsoftwareModule.js +1 -1
- package/dist/EmilsoftwareModule.js.map +1 -1
- package/dist/ExecutionTimeLogger.d.ts +2 -2
- package/dist/ExecutionTimeLogger.js +5 -4
- package/dist/ExecutionTimeLogger.js.map +1 -1
- package/dist/Logger.d.ts +22 -11
- package/dist/Logger.js +132 -119
- package/dist/Logger.js.map +1 -1
- package/dist/Orm.d.ts +32 -6
- package/dist/Orm.js +148 -38
- package/dist/Orm.js.map +1 -1
- package/dist/RoutesLoggerMiddleware.js.map +1 -1
- package/dist/Utilities.d.ts +18 -8
- package/dist/Utilities.js +143 -37
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi/client/index.d.ts +26 -0
- package/dist/accessi/client/index.js +49 -0
- package/dist/accessi/client/index.js.map +1 -0
- package/dist/accessi/console/index.d.ts +15 -0
- package/dist/accessi/console/index.js +25 -0
- package/dist/accessi/console/index.js.map +1 -0
- package/dist/accessi/contracts/dtos.d.ts +8 -0
- package/dist/accessi/contracts/dtos.js +25 -0
- package/dist/accessi/contracts/dtos.js.map +1 -0
- package/dist/accessi/contracts/index.d.ts +25 -0
- package/dist/accessi/contracts/index.js +28 -0
- package/dist/accessi/contracts/index.js.map +1 -0
- package/dist/accessi/openapi/index.d.ts +2 -0
- package/dist/accessi/openapi/index.js +19 -0
- package/dist/accessi/openapi/index.js.map +1 -0
- package/dist/accessi/resource-server/core.d.ts +6 -0
- package/dist/accessi/resource-server/core.js +23 -0
- package/dist/accessi/resource-server/core.js.map +1 -0
- package/dist/accessi/resource-server/errors.d.ts +10 -0
- package/dist/accessi/resource-server/errors.js +19 -0
- package/dist/accessi/resource-server/errors.js.map +1 -0
- package/dist/accessi/resource-server/express.d.ts +17 -0
- package/dist/accessi/resource-server/express.js +87 -0
- package/dist/accessi/resource-server/express.js.map +1 -0
- package/dist/accessi/resource-server/index.d.ts +3 -0
- package/dist/accessi/resource-server/index.js +20 -0
- package/dist/accessi/resource-server/index.js.map +1 -0
- package/dist/accessi/resource-server/introspection.d.ts +16 -0
- package/dist/accessi/resource-server/introspection.js +115 -0
- package/dist/accessi/resource-server/introspection.js.map +1 -0
- package/dist/accessi/resource-server/keys.d.ts +11 -0
- package/dist/accessi/resource-server/keys.js +22 -0
- package/dist/accessi/resource-server/keys.js.map +1 -0
- package/dist/accessi/resource-server/nest.d.ts +9 -0
- package/dist/accessi/resource-server/nest.js +75 -0
- package/dist/accessi/resource-server/nest.js.map +1 -0
- package/dist/accessi/resource-server/runtime.d.ts +27 -0
- package/dist/accessi/resource-server/runtime.js +179 -0
- package/dist/accessi/resource-server/runtime.js.map +1 -0
- package/dist/accessi/resource-server/token.d.ts +23 -0
- package/dist/accessi/resource-server/token.js +230 -0
- package/dist/accessi/resource-server/token.js.map +1 -0
- package/dist/accessi/resource-server/types.d.ts +92 -0
- package/dist/accessi/resource-server/types.js +3 -0
- package/dist/accessi/resource-server/types.js.map +1 -0
- package/dist/accessi/server/index.d.ts +11 -0
- package/dist/accessi/server/index.js +30 -0
- package/dist/accessi/server/index.js.map +1 -0
- package/dist/accessi/server/standalone.d.ts +41 -0
- package/dist/accessi/server/standalone.js +265 -0
- package/dist/accessi/server/standalone.js.map +1 -0
- package/dist/accessi/ui/index.d.ts +13 -0
- package/dist/accessi/ui/index.js +19 -0
- package/dist/accessi/ui/index.js.map +1 -0
- package/dist/accessi-module/AccessiModule.d.ts +199 -0
- package/dist/accessi-module/AccessiModule.js +43 -5
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Console/accessiFetch.d.ts +25 -0
- package/dist/accessi-module/Console/accessiFetch.js +104 -0
- package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
- package/dist/accessi-module/Console/console.css +774 -0
- package/dist/accessi-module/Console/console.d.ts +1 -0
- package/dist/accessi-module/Console/console.js +4095 -0
- package/dist/accessi-module/Console/console.js.map +1 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.d.ts +761 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.js +712 -0
- package/dist/accessi-module/Console/generated/emilsoftware-utilities.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/accessiIntrospectionResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createScopeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/exchangeFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedAuthenticationResultDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedExchangeResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
- package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenuScopesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getMenusParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getScopesResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUserRolesAndGrantsParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
- package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/index.d.ts +130 -0
- package/dist/accessi-module/Console/generated/model/index.js +147 -0
- package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/introspectAccessiTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginAsRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginAsResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginAsResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResult.d.ts +34 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
- package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
- package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/permission.js +9 -0
- package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/refreshTokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/revokeTokenRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/role.js +3 -0
- package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
- package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
- package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.js +9 -0
- package/dist/accessi-module/Console/generated/model/scopeEntity.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
- package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
- package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setMenuScopesRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setScopeMenusRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/status.js +9 -0
- package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
- package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
- package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
- package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
- package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/updateScopeRequest.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
- package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
- package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
- package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +20 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
- package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
- package/dist/accessi-module/Console/help.d.ts +13 -0
- package/dist/accessi-module/Console/help.js +417 -0
- package/dist/accessi-module/Console/help.js.map +1 -0
- package/dist/accessi-module/Console/index.html +141 -0
- package/dist/accessi-module/Console/wiki.d.ts +52 -0
- package/dist/accessi-module/Console/wiki.js +850 -0
- package/dist/accessi-module/Console/wiki.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +23 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js +134 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.d.ts +17 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.js +93 -0
- package/dist/accessi-module/Controllers/AccessiIntrospectionController.js.map +1 -0
- package/dist/accessi-module/Controllers/AuthController.d.ts +16 -6
- package/dist/accessi-module/Controllers/AuthController.js +333 -85
- package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
- package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +16 -0
- package/dist/accessi-module/Controllers/ConsoleEntryController.js +136 -0
- package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
- package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
- package/dist/accessi-module/Controllers/EmailController.js +13 -15
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
- package/dist/accessi-module/Controllers/FiltriController.js +153 -6
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +31 -5
- package/dist/accessi-module/Controllers/PermissionController.js +559 -66
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
- package/dist/accessi-module/Controllers/SchemaController.js +79 -0
- package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
- package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
- package/dist/accessi-module/Controllers/UserController.d.ts +22 -5
- package/dist/accessi-module/Controllers/UserController.js +385 -33
- package/dist/accessi-module/Controllers/UserController.js.map +1 -1
- package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
- package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
- package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
- package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
- package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
- package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.d.ts +21 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.js +74 -0
- package/dist/accessi-module/Dtos/FederatedExchangeDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
- package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
- package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
- package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
- package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
- package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/IntrospectionDtos.d.ts +16 -0
- package/dist/accessi-module/Dtos/IntrospectionDtos.js +59 -0
- package/dist/accessi-module/Dtos/IntrospectionDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.d.ts +15 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.js +68 -0
- package/dist/accessi-module/Dtos/LoginAsDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/LoginRequest.d.ts +3 -1
- package/dist/accessi-module/Dtos/LoginRequest.js +13 -2
- package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.d.ts +7 -2
- package/dist/accessi-module/Dtos/LoginResponse.js +26 -7
- package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/MenuItem.js +1 -0
- package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
- package/dist/accessi-module/Dtos/Permission.js +1 -0
- package/dist/accessi-module/Dtos/Permission.js.map +1 -1
- package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.d.ts +12 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.js +50 -0
- package/dist/accessi-module/Dtos/RefreshTokenDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
- package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
- package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
- package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/RevokeTokenRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/RevokeTokenRequest.js +27 -0
- package/dist/accessi-module/Dtos/RevokeTokenRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/Role.d.ts +4 -0
- package/dist/accessi-module/Dtos/Role.js +4 -0
- package/dist/accessi-module/Dtos/Role.js.map +1 -1
- package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
- package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
- package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ScopeDtos.d.ts +28 -0
- package/dist/accessi-module/Dtos/ScopeDtos.js +103 -0
- package/dist/accessi-module/Dtos/ScopeDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
- package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
- package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
- package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
- package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
- package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
- package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
- package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
- package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +14 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js +71 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
- package/dist/accessi-module/Dtos/UserDto.js +37 -22
- package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
- package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
- package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
- package/dist/accessi-module/Dtos/index.d.ts +19 -0
- package/dist/accessi-module/Dtos/index.js +19 -0
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
- package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +108 -5
- package/dist/accessi-module/Services/AuthService/AuthService.js +452 -54
- package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
- package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
- package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
- package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
- package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +107 -5
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +788 -215
- package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
- package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
- package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
- package/dist/accessi-module/Services/UserService/UserService.d.ts +73 -5
- package/dist/accessi-module/Services/UserService/UserService.js +578 -337
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +229 -213
- package/dist/accessi-module/accessiRuntime.d.ts +45 -0
- package/dist/accessi-module/accessiRuntime.js +39 -0
- package/dist/accessi-module/accessiRuntime.js.map +1 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
- package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -10
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +508 -179
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +78 -0
- package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
- package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
- package/dist/accessi-module/database-updates/accessiSchema.js +135 -0
- package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.d.ts +15 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.js +386 -0
- package/dist/accessi-module/database-updates/menuScopeSeed.js.map +1 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.d.ts +8 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.js +131 -0
- package/dist/accessi-module/database-updates/menuScopeSeeder.js.map +1 -0
- package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
- package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
- package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
- package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +18 -53
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.d.ts +15 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js +85 -0
- package/dist/accessi-module/federated-auth/FederatedAuthExchangeController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js +472 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
- package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
- package/dist/accessi-module/index.d.ts +61 -1
- package/dist/accessi-module/index.js +168 -22
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.js +21 -8
- package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
- package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
- package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
- package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
- package/dist/accessi-module/middleware/authenticateGen.js +68 -26
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
- package/dist/accessi-module/security/accessControl.d.ts +48 -2
- package/dist/accessi-module/security/accessControl.js +84 -8
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- package/dist/accessi-module/security/accessTokenRevocation.d.ts +47 -0
- package/dist/accessi-module/security/accessTokenRevocation.js +143 -0
- package/dist/accessi-module/security/accessTokenRevocation.js.map +1 -0
- package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
- package/dist/accessi-module/security/accessiValidation.js +41 -0
- package/dist/accessi-module/security/accessiValidation.js.map +1 -0
- package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
- package/dist/accessi-module/security/adminBootstrap.js +41 -0
- package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
- package/dist/accessi-module/security/audit.d.ts +7 -0
- package/dist/accessi-module/security/audit.js +14 -0
- package/dist/accessi-module/security/audit.js.map +1 -0
- package/dist/accessi-module/security/authenticatedToken.d.ts +23 -3
- package/dist/accessi-module/security/authenticatedToken.js +45 -5
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- package/dist/accessi-module/security/consoleEntry.d.ts +63 -0
- package/dist/accessi-module/security/consoleEntry.js +200 -0
- package/dist/accessi-module/security/consoleEntry.js.map +1 -0
- package/dist/accessi-module/security/edgeRateLimit.d.ts +33 -0
- package/dist/accessi-module/security/edgeRateLimit.js +81 -0
- package/dist/accessi-module/security/edgeRateLimit.js.map +1 -0
- package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
- package/dist/accessi-module/security/emailConfiguration.js +41 -0
- package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
- package/dist/accessi-module/security/jwks.d.ts +33 -0
- package/dist/accessi-module/security/jwks.js +83 -0
- package/dist/accessi-module/security/jwks.js.map +1 -0
- package/dist/accessi-module/security/jwksBootstrap.d.ts +15 -0
- package/dist/accessi-module/security/jwksBootstrap.js +44 -0
- package/dist/accessi-module/security/jwksBootstrap.js.map +1 -0
- package/dist/accessi-module/security/jwtTokenOptions.d.ts +22 -0
- package/dist/accessi-module/security/jwtTokenOptions.js +58 -0
- package/dist/accessi-module/security/jwtTokenOptions.js.map +1 -0
- package/dist/accessi-module/security/loginAs.d.ts +8 -0
- package/dist/accessi-module/security/loginAs.js +45 -0
- package/dist/accessi-module/security/loginAs.js.map +1 -0
- package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
- package/dist/accessi-module/security/passwordPolicy.js +71 -0
- package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
- package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
- package/dist/accessi-module/security/passwordResetToken.js +13 -5
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -8
- package/dist/accessi-module/security/publicAuthRateLimit.js +61 -60
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
- package/dist/accessi-module/security/rateLimitStore.d.ts +34 -0
- package/dist/accessi-module/security/rateLimitStore.js +145 -0
- package/dist/accessi-module/security/rateLimitStore.js.map +1 -0
- package/dist/accessi-module/security/refreshTokenRotation.d.ts +80 -0
- package/dist/accessi-module/security/refreshTokenRotation.js +204 -0
- package/dist/accessi-module/security/refreshTokenRotation.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenGuard.d.ts +27 -0
- package/dist/accessi-module/security/serviceTokenGuard.js +90 -0
- package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +9 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js +53 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
- package/dist/accessi-module/security/sessionRevocation.d.ts +67 -0
- package/dist/accessi-module/security/sessionRevocation.js +170 -0
- package/dist/accessi-module/security/sessionRevocation.js.map +1 -0
- package/dist/accessi-module/security/validateOptions.d.ts +19 -0
- package/dist/accessi-module/security/validateOptions.js +115 -0
- package/dist/accessi-module/security/validateOptions.js.map +1 -0
- package/dist/accessi-module/startupLog.d.ts +7 -0
- package/dist/accessi-module/startupLog.js +29 -0
- package/dist/accessi-module/startupLog.js.map +1 -0
- package/dist/allegati-module/AllegatiModule.d.ts +11 -0
- package/dist/allegati-module/AllegatiModule.js +11 -1
- package/dist/allegati-module/AllegatiModule.js.map +1 -1
- package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
- package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
- package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
- package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
- package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
- package/dist/allegati-module/Dtos/index.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
- package/dist/allegati-module/index.js +2 -2
- package/dist/allegati-module/index.js.map +1 -1
- package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
- package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
- package/dist/angular-components/aree-disponibili/aree-disponibili.js +1336 -0
- package/dist/angular-components/aree-disponibili/demo.html +232 -0
- package/dist/autobind.d.ts +10 -3
- package/dist/autobind.js +24 -9
- package/dist/autobind.js.map +1 -1
- package/dist/emilsoftware-utilities-2.0.0-dev.70.tgz +0 -0
- package/dist/firebird-compat.d.ts +41 -0
- package/dist/firebird-compat.js +54 -3
- package/dist/firebird-compat.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/initEmilsoftwareModule.d.ts +11 -1
- package/dist/initEmilsoftwareModule.js +64 -14
- package/dist/initEmilsoftwareModule.js.map +1 -1
- package/dist/openapi/OpenApiConfig.d.ts +68 -0
- package/dist/openapi/OpenApiConfig.js +157 -0
- package/dist/openapi/OpenApiConfig.js.map +1 -0
- package/dist/openapi/OpenApiMerge.d.ts +15 -0
- package/dist/openapi/OpenApiMerge.js +119 -0
- package/dist/openapi/OpenApiMerge.js.map +1 -0
- package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
- package/dist/scripts/generateAccessiOpenApi.js +57 -0
- package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
- package/dist/scripts/generateAccessiWiki.d.ts +1 -0
- package/dist/scripts/generateAccessiWiki.js +131 -0
- package/dist/scripts/generateAccessiWiki.js.map +1 -0
- package/dist/scripts/startAccessiService.d.ts +1 -0
- package/dist/scripts/startAccessiService.js +11 -0
- package/dist/scripts/startAccessiService.js.map +1 -0
- package/docs/accessi-openapi-fingerprint.json +192 -0
- package/docs/gateway-rate-limit.md +98 -0
- package/docs/standalone-service.md +176 -0
- package/integration-prompt.md +772 -0
- package/package.json +198 -82
- package/dist/swagger/SwaggerConfig.d.ts +0 -2
- package/dist/swagger/SwaggerConfig.js +0 -26
- package/dist/swagger/SwaggerConfig.js.map +0 -1
|
@@ -20,18 +20,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
24
|
+
var t = {};
|
|
25
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
26
|
+
t[p] = s[p];
|
|
27
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
28
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
29
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
30
|
+
t[p[i]] = s[p[i]];
|
|
31
|
+
}
|
|
32
|
+
return t;
|
|
33
|
+
};
|
|
34
|
+
var UserService_1;
|
|
23
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
36
|
exports.UserService = void 0;
|
|
25
37
|
const common_1 = require("@nestjs/common");
|
|
38
|
+
const optionalColumns_1 = require("../../database-updates/optionalColumns");
|
|
26
39
|
const autobind_1 = require("../../../autobind");
|
|
27
40
|
const Orm_1 = require("../../../Orm");
|
|
28
41
|
const Utilities_1 = require("../../../Utilities");
|
|
42
|
+
const Logger_1 = require("../../../Logger");
|
|
29
43
|
const FiltriUtente_1 = require("../../Dtos/FiltriUtente");
|
|
30
44
|
const StatoRegistrazione_1 = require("../../Dtos/StatoRegistrazione");
|
|
45
|
+
const emailConfiguration_1 = require("../../security/emailConfiguration");
|
|
46
|
+
const sessionRevocation_1 = require("../../security/sessionRevocation");
|
|
31
47
|
const EmailService_1 = require("../EmailService/EmailService");
|
|
32
48
|
const FiltriService_1 = require("../FiltriService/FiltriService");
|
|
33
49
|
const PermissionService_1 = require("../PermissionService/PermissionService");
|
|
34
|
-
|
|
50
|
+
/**
|
|
51
|
+
* I filtri sono deprecati: tocca la tabella FILTRI solo quando il chiamante invia
|
|
52
|
+
* esplicitamente almeno uno dei campi legacy. La console non li invia più.
|
|
53
|
+
*/
|
|
54
|
+
function hasFilterPayload(dto) {
|
|
55
|
+
const values = dto;
|
|
56
|
+
return Object.keys(FiltriUtente_1.FILTRI_UTENTE_DB_MAPPING).some((key) => values[key] !== undefined);
|
|
57
|
+
}
|
|
58
|
+
let UserService = UserService_1 = class UserService {
|
|
35
59
|
constructor(accessiOptions, emailService, permissionService, filtriService) {
|
|
36
60
|
this.accessiOptions = accessiOptions;
|
|
37
61
|
this.emailService = emailService;
|
|
@@ -41,9 +65,28 @@ let UserService = class UserService {
|
|
|
41
65
|
normalizeDatabaseBoolean(value) {
|
|
42
66
|
return value === true || value === 1 || value === '1';
|
|
43
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Revoca best effort delle sessioni dopo un evento che deve invalidare i
|
|
70
|
+
* token gia emessi. Lo store e opzionale: se non configurato (o non
|
|
71
|
+
* raggiungibile) l'operazione principale non deve fallire.
|
|
72
|
+
*/
|
|
73
|
+
revokeSessionsBestEffort(codiceUtente, reason) {
|
|
74
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
try {
|
|
76
|
+
yield (0, sessionRevocation_1.revokeAccessiUserSessionsIfConfigured)(this.accessiOptions, codiceUtente, reason);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
new Logger_1.Logger(UserService_1.name).error(`Revoca sessioni fallita per l'utente ${codiceUtente} (${reason}): ${error instanceof Error ? error.message : String(error)}`);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
normalizeUserFlags(user) {
|
|
84
|
+
const normalized = Object.assign(Object.assign({}, user), { flagSuper: this.normalizeDatabaseBoolean(user.flagSuper), flagAdmin: this.normalizeDatabaseBoolean(user.flagAdmin), flagDueFattori: this.normalizeDatabaseBoolean(user.flagDueFattori), passwordlessLoginEnabled: this.normalizeDatabaseBoolean(user.passwordlessLoginEnabled), passwordLoginEnabled: user.passwordLoginEnabled == null || this.normalizeDatabaseBoolean(user.passwordLoginEnabled) });
|
|
85
|
+
return normalized;
|
|
86
|
+
}
|
|
44
87
|
normalizeEmail(email) {
|
|
45
88
|
if (typeof email !== 'string' || email.trim() === '') {
|
|
46
|
-
throw new
|
|
89
|
+
throw new common_1.BadRequestException({ code: 'ACCESSI_EMAIL_REQUIRED', message: "L'email è obbligatoria." });
|
|
47
90
|
}
|
|
48
91
|
return email.trim().toLowerCase();
|
|
49
92
|
}
|
|
@@ -53,44 +96,32 @@ let UserService = class UserService {
|
|
|
53
96
|
const existingUser = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
|
|
54
97
|
if ((existingUser === null || existingUser === void 0 ? void 0 : existingUser.codiceUtente) &&
|
|
55
98
|
(!currentUserCode || existingUser.codiceUtente !== currentUserCode)) {
|
|
56
|
-
throw new
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
isAdminConfigurator(codiceUtente) {
|
|
61
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
-
var _a;
|
|
63
|
-
if (!codiceUtente) {
|
|
64
|
-
return false;
|
|
65
|
-
}
|
|
66
|
-
const query = `SELECT FLGADMINCONFIG AS flag_admin_configurator FROM UTENTI_CONFIG WHERE CODUTE = ?`;
|
|
67
|
-
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, [codiceUtente]);
|
|
68
|
-
if (!result || result === 0) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
const mapped = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
72
|
-
const flagValue = (_a = mapped[0]) === null || _a === void 0 ? void 0 : _a.flag_admin_configurator;
|
|
73
|
-
if (typeof flagValue === 'boolean') {
|
|
74
|
-
return flagValue;
|
|
99
|
+
throw new common_1.ConflictException({ code: 'ACCESSI_EMAIL_ALREADY_EXISTS', message: "L'email è già associata a un utente Accessi." });
|
|
75
100
|
}
|
|
76
|
-
return flagValue === 1;
|
|
77
101
|
});
|
|
78
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Legge il minimo profilo autorevole usato da JWT e middleware. Restituisce `null` per utenti inesistenti.
|
|
105
|
+
* Non usare `UserDto` dal token per decisioni di sicurezza: i flag vengono sempre riletti qui.
|
|
106
|
+
*/
|
|
79
107
|
getAuthenticatedUserSnapshot(codiceUtente) {
|
|
80
108
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
109
|
if (!codiceUtente || codiceUtente <= 0) {
|
|
82
110
|
return null;
|
|
83
111
|
}
|
|
84
|
-
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `
|
|
85
|
-
SELECT
|
|
86
|
-
U.CODUTE AS codice_utente,
|
|
87
|
-
U.USRNAME AS email,
|
|
88
|
-
U.STAREG AS stato_registrazione,
|
|
89
|
-
C.FLGSUPER AS flag_super,
|
|
90
|
-
C.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
112
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `
|
|
113
|
+
SELECT
|
|
114
|
+
U.CODUTE AS codice_utente,
|
|
115
|
+
U.USRNAME AS email,
|
|
116
|
+
U.STAREG AS stato_registrazione,
|
|
117
|
+
C.FLGSUPER AS flag_super,
|
|
118
|
+
C.FLGADMIN AS flag_admin
|
|
119
|
+
, C.FLG2FATT AS flag_due_fattori
|
|
120
|
+
, C.FLGPWDLESS AS passwordless_login_enabled
|
|
121
|
+
, COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
|
|
122
|
+
FROM UTENTI U
|
|
123
|
+
LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
124
|
+
WHERE U.CODUTE = ?
|
|
94
125
|
`, [codiceUtente]);
|
|
95
126
|
const user = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
|
|
96
127
|
if (!(user === null || user === void 0 ? void 0 : user.codiceUtente)) {
|
|
@@ -101,71 +132,157 @@ let UserService = class UserService {
|
|
|
101
132
|
email: typeof user.email === 'string' ? user.email : undefined,
|
|
102
133
|
statoRegistrazione: Number(user.statoRegistrazione),
|
|
103
134
|
flagSuper: this.normalizeDatabaseBoolean(user.flagSuper),
|
|
104
|
-
|
|
135
|
+
flagAdmin: this.normalizeDatabaseBoolean(user.flagAdmin),
|
|
136
|
+
flagDueFattori: this.normalizeDatabaseBoolean(user.flagDueFattori),
|
|
137
|
+
passwordlessLoginEnabled: this.normalizeDatabaseBoolean(user.passwordlessLoginEnabled),
|
|
138
|
+
passwordLoginEnabled: this.normalizeDatabaseBoolean(user.passwordLoginEnabled),
|
|
105
139
|
};
|
|
106
140
|
});
|
|
107
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* True se l'utente indicato e' un admin attivo e nessun altro admin attivo
|
|
144
|
+
* esiste: rimuovergli il flag admin, bloccarlo o eliminarlo lascerebbe la
|
|
145
|
+
* console senza amministratori.
|
|
146
|
+
*/
|
|
147
|
+
isLastActiveAdmin(codiceUtente) {
|
|
148
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
var _a, _b, _c, _d;
|
|
150
|
+
const snapshot = yield this.getAuthenticatedUserSnapshot(codiceUtente);
|
|
151
|
+
if (!(snapshot === null || snapshot === void 0 ? void 0 : snapshot.flagAdmin))
|
|
152
|
+
return false;
|
|
153
|
+
const rows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT COUNT(*) AS TOTAL
|
|
154
|
+
FROM UTENTI U
|
|
155
|
+
JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
156
|
+
WHERE COALESCE(C.FLGADMIN, 0) = 1
|
|
157
|
+
AND COALESCE(U.STAREG, 0) NOT IN (?, ?)`, [StatoRegistrazione_1.StatoRegistrazione.DELETE, StatoRegistrazione_1.StatoRegistrazione.BLOCC], false));
|
|
158
|
+
const total = Number((_d = (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.TOTAL) !== null && _b !== void 0 ? _b : (_c = rows[0]) === null || _c === void 0 ? void 0 : _c.total) !== null && _d !== void 0 ? _d : 0) || 0;
|
|
159
|
+
return total <= 1;
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/** Impedisce di disattivare/eliminare l'ultimo admin attivo (lockout della console). */
|
|
163
|
+
assertNotLastActiveAdmin(codiceUtente) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
if (yield this.isLastActiveAdmin(codiceUtente)) {
|
|
166
|
+
throw new common_1.BadRequestException('Operazione bloccata: questo e l ultimo admin attivo. Promuovi un altro admin prima di disattivarlo o eliminarlo.');
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Elenca gli utenti con filtri opzionali. Grant e campi estesi sono costosi e vengono caricati soltanto
|
|
172
|
+
* quando richiesti esplicitamente nelle opzioni; usare filtri puntuali nei flussi di autenticazione.
|
|
173
|
+
*/
|
|
108
174
|
getUsers(filters, options) {
|
|
109
175
|
return __awaiter(this, void 0, void 0, function* () {
|
|
176
|
+
var _a, _b, _c, _d, _e;
|
|
110
177
|
try {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
G.
|
|
131
|
-
G.
|
|
132
|
-
G.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
178
|
+
const filterColumns = yield (0, optionalColumns_1.getTableColumns)(this.accessiOptions, 'FILTRI');
|
|
179
|
+
// Paginazione opzionale con limiti sani: il default resta "tutti gli utenti".
|
|
180
|
+
const limit = Number.isInteger(filters === null || filters === void 0 ? void 0 : filters.limit) && ((_a = filters === null || filters === void 0 ? void 0 : filters.limit) !== null && _a !== void 0 ? _a : 0) > 0
|
|
181
|
+
? Math.min(filters === null || filters === void 0 ? void 0 : filters.limit, 1000)
|
|
182
|
+
: undefined;
|
|
183
|
+
const offset = Number.isInteger(filters === null || filters === void 0 ? void 0 : filters.offset) && ((_b = filters === null || filters === void 0 ? void 0 : filters.offset) !== null && _b !== void 0 ? _b : 0) > 0
|
|
184
|
+
? Math.trunc(filters === null || filters === void 0 ? void 0 : filters.offset)
|
|
185
|
+
: 0;
|
|
186
|
+
const pagination = `${limit !== undefined ? ` FIRST ${limit}` : ''}${offset > 0 ? ` SKIP ${offset}` : ''}`;
|
|
187
|
+
let query = `
|
|
188
|
+
SELECT${pagination}
|
|
189
|
+
U.CODUTE as codice_utente,
|
|
190
|
+
U.USRNAME as email,
|
|
191
|
+
U.FLGGDPR as flag_gdpr,
|
|
192
|
+
U.DATGDPR as data_gdpr,
|
|
193
|
+
U.DATINS as data_inserimento,
|
|
194
|
+
U.DATSCAPWD as data_scadenza_password,
|
|
195
|
+
U.DATLASTLOGIN as data_last_login,
|
|
196
|
+
U.STAREG as stato_registrazione,
|
|
197
|
+
G.COGNOME as cognome,
|
|
198
|
+
G.NOME as nome,
|
|
199
|
+
G.AVATAR as avatar,
|
|
200
|
+
G.FLG2FATT as flag_due_fattori,
|
|
201
|
+
G.FLGPWDLESS as passwordless_login_enabled,
|
|
202
|
+
G.CODLINGUA as codice_lingua,
|
|
203
|
+
G.CELLULARE as cellulare,
|
|
204
|
+
G.PAGDEF as pagina_default,
|
|
205
|
+
G.FLGSUPER as flag_super,
|
|
206
|
+
G.FLGADMIN as flag_admin,
|
|
207
|
+
COALESCE(G.FLGPASSWORD, 1) as password_login_enabled,
|
|
208
|
+
G.JSON_METADATA as json_metadata,
|
|
209
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODDIP', 'F', 'cod_dipendente')},
|
|
210
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'NUMREP', 'F', 'num_rep', true)},
|
|
211
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'IDXPERS', 'F', 'idx_pers', true)},
|
|
212
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLISUPER', 'F', 'cod_cli_super', true)},
|
|
213
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODAGE', 'F', 'cod_age', true)},
|
|
214
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLICOL', 'F', 'cod_cli_col', true)},
|
|
215
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLIENTI', 'F', 'cod_clienti', false)},
|
|
216
|
+
F.TIPFIL AS tip_fil,
|
|
217
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'IDXPOS', 'F', 'idx_postazione', true)}
|
|
218
|
+
FROM UTENTI U
|
|
219
|
+
INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE
|
|
220
|
+
LEFT JOIN FILTRI F ON F.CODUTE = U.CODUTE
|
|
221
|
+
WHERE 1=1
|
|
145
222
|
`;
|
|
146
223
|
const queryParams = [];
|
|
147
224
|
if (filters === null || filters === void 0 ? void 0 : filters.email) {
|
|
148
225
|
query += ` AND LOWER(U.USRNAME) = ? `;
|
|
149
226
|
queryParams.push(filters.email.trim().toLowerCase());
|
|
150
227
|
}
|
|
151
|
-
if (filters === null || filters === void 0 ? void 0 : filters.codiceUtente) {
|
|
152
|
-
|
|
153
|
-
|
|
228
|
+
if ((filters === null || filters === void 0 ? void 0 : filters.codiceUtente) !== undefined) {
|
|
229
|
+
const codes = (Array.isArray(filters.codiceUtente) ? filters.codiceUtente : [filters.codiceUtente])
|
|
230
|
+
.map((value) => Number(value))
|
|
231
|
+
.filter((value) => Number.isFinite(value) && value > 0);
|
|
232
|
+
if (codes.length === 0) {
|
|
233
|
+
return [];
|
|
234
|
+
}
|
|
235
|
+
query += ` AND U.CODUTE IN (${codes.map(() => '?').join(', ')}) `;
|
|
236
|
+
queryParams.push(...codes);
|
|
237
|
+
}
|
|
238
|
+
if ((filters === null || filters === void 0 ? void 0 : filters.numRep) !== undefined) {
|
|
239
|
+
const reparti = (Array.isArray(filters.numRep) ? filters.numRep : [filters.numRep])
|
|
240
|
+
.map((value) => Number(value))
|
|
241
|
+
.filter((value) => Number.isFinite(value));
|
|
242
|
+
if (reparti.length === 0) {
|
|
243
|
+
return [];
|
|
244
|
+
}
|
|
245
|
+
query += ` AND F.NUMREP IN (${reparti.map(() => '?').join(', ')}) `;
|
|
246
|
+
queryParams.push(...reparti);
|
|
247
|
+
}
|
|
248
|
+
if ((filters === null || filters === void 0 ? void 0 : filters.codDipendente) !== undefined) {
|
|
249
|
+
query += ` AND F.CODDIP = ? `;
|
|
250
|
+
queryParams.push(Number(filters.codDipendente));
|
|
251
|
+
}
|
|
252
|
+
if ((filters === null || filters === void 0 ? void 0 : filters.tipFil) !== undefined) {
|
|
253
|
+
query += ` AND F.TIPFIL = ? `;
|
|
254
|
+
queryParams.push(Number(filters.tipFil));
|
|
255
|
+
}
|
|
256
|
+
if (filters === null || filters === void 0 ? void 0 : filters.cellulare) {
|
|
257
|
+
query += ` AND TRIM(G.CELLULARE) = ? `;
|
|
258
|
+
queryParams.push(String(filters.cellulare).trim());
|
|
259
|
+
}
|
|
260
|
+
if ((filters === null || filters === void 0 ? void 0 : filters.flagSuper) !== undefined) {
|
|
261
|
+
query += filters.flagSuper ? ` AND COALESCE(G.FLGSUPER, 0) <> 0 ` : ` AND COALESCE(G.FLGSUPER, 0) = 0 `;
|
|
154
262
|
}
|
|
155
263
|
query += ` ORDER BY U.CODUTE DESC `;
|
|
156
264
|
let users = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, queryParams));
|
|
157
|
-
users = users.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
265
|
+
users = users.map(Utilities_1.RestUtilities.convertKeysToCamelCase).map(user => this.normalizeUserFlags(user));
|
|
158
266
|
const usersResponse = [];
|
|
267
|
+
// I campi estensione sono caricati una volta per tabella (non una per utente) in query IN
|
|
268
|
+
// suddivise in blocchi per non superare i limiti di parametri del driver.
|
|
269
|
+
const extensionFieldsByUser = (options === null || options === void 0 ? void 0 : options.includeExtensionFields)
|
|
270
|
+
? yield this.loadExtensionFieldsForUsers(users.map((user) => user.codiceUtente))
|
|
271
|
+
: undefined;
|
|
272
|
+
// I grant sono caricati in batch (query IN) invece che utente per utente.
|
|
273
|
+
const grantsByUser = (options === null || options === void 0 ? void 0 : options.includeGrants)
|
|
274
|
+
? yield this.permissionService.getUsersRolesAndGrants(users.map((user) => user.codiceUtente), options === null || options === void 0 ? void 0 : options.scope)
|
|
275
|
+
: undefined;
|
|
159
276
|
for (const user of users) {
|
|
160
|
-
let userGrants
|
|
277
|
+
let userGrants;
|
|
161
278
|
if (options === null || options === void 0 ? void 0 : options.includeGrants) {
|
|
162
|
-
userGrants =
|
|
279
|
+
userGrants = grantsByUser === null || grantsByUser === void 0 ? void 0 : grantsByUser.get(user.codiceUtente);
|
|
163
280
|
}
|
|
164
|
-
let extensionFields
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
extensionFields[ext.objectKey] =
|
|
281
|
+
let extensionFields;
|
|
282
|
+
if (options === null || options === void 0 ? void 0 : options.includeExtensionFields) {
|
|
283
|
+
extensionFields = {};
|
|
284
|
+
for (const ext of (_c = this.accessiOptions.extensionFieldsOptions) !== null && _c !== void 0 ? _c : []) {
|
|
285
|
+
extensionFields[ext.objectKey] = (_e = (_d = extensionFieldsByUser === null || extensionFieldsByUser === void 0 ? void 0 : extensionFieldsByUser.get(ext.objectKey)) === null || _d === void 0 ? void 0 : _d.get(user.codiceUtente)) !== null && _e !== void 0 ? _e : [];
|
|
169
286
|
}
|
|
170
287
|
}
|
|
171
288
|
usersResponse.push({
|
|
@@ -181,6 +298,68 @@ let UserService = class UserService {
|
|
|
181
298
|
}
|
|
182
299
|
});
|
|
183
300
|
}
|
|
301
|
+
/** Conteggio utenti con gli stessi filtri di `getUsers`, per la paginazione (header X-Total-Count). */
|
|
302
|
+
countUsers(filters) {
|
|
303
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
304
|
+
var _a, _b;
|
|
305
|
+
const conditions = [];
|
|
306
|
+
const params = [];
|
|
307
|
+
if (filters === null || filters === void 0 ? void 0 : filters.email) {
|
|
308
|
+
conditions.push('LOWER(U.USRNAME) = ?');
|
|
309
|
+
params.push(filters.email.trim().toLowerCase());
|
|
310
|
+
}
|
|
311
|
+
if (filters === null || filters === void 0 ? void 0 : filters.codiceUtente) {
|
|
312
|
+
conditions.push('U.CODUTE = ?');
|
|
313
|
+
params.push(filters.codiceUtente);
|
|
314
|
+
}
|
|
315
|
+
const query = `SELECT COUNT(*) AS TOTAL FROM UTENTI U INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE WHERE 1=1 ${conditions.map((condition) => `AND ${condition}`).join(' ')}`;
|
|
316
|
+
const rows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, params, false));
|
|
317
|
+
const row = rows[0];
|
|
318
|
+
return Number((_b = (_a = row === null || row === void 0 ? void 0 : row.TOTAL) !== null && _a !== void 0 ? _a : row === null || row === void 0 ? void 0 : row.total) !== null && _b !== void 0 ? _b : 0) || 0;
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
loadExtensionFieldsForUsers(codiceUtenti) {
|
|
322
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
323
|
+
var _a;
|
|
324
|
+
const byObjectKey = new Map();
|
|
325
|
+
const extensions = (_a = this.accessiOptions.extensionFieldsOptions) !== null && _a !== void 0 ? _a : [];
|
|
326
|
+
const uniqueCodes = Array.from(new Set(codiceUtenti));
|
|
327
|
+
for (const ext of extensions) {
|
|
328
|
+
const grouped = new Map();
|
|
329
|
+
for (const chunk of this.chunkArray(uniqueCodes, 500)) {
|
|
330
|
+
if (chunk.length === 0) {
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
334
|
+
const rows = (yield Orm_1.Orm.query(ext.databaseOptions, `SELECT ${ext.tableJoinFieldName} AS __joinkey, ${ext.tableFields.join(', ')} FROM ${ext.tableName} WHERE ${ext.tableJoinFieldName} IN (${placeholders})`, chunk)).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
335
|
+
for (const row of rows) {
|
|
336
|
+
const { __joinkey } = row, rest = __rest(row, ["__joinkey"]);
|
|
337
|
+
const key = Number(__joinkey);
|
|
338
|
+
if (!Number.isFinite(key)) {
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
const bucket = grouped.get(key);
|
|
342
|
+
if (bucket) {
|
|
343
|
+
bucket.push(rest);
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
grouped.set(key, [rest]);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
byObjectKey.set(ext.objectKey, grouped);
|
|
351
|
+
}
|
|
352
|
+
return byObjectKey;
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
chunkArray(items, size) {
|
|
356
|
+
const chunks = [];
|
|
357
|
+
for (let index = 0; index < items.length; index += size) {
|
|
358
|
+
chunks.push(items.slice(index, index + size));
|
|
359
|
+
}
|
|
360
|
+
return chunks;
|
|
361
|
+
}
|
|
362
|
+
/** Cerca il codice interno per email normalizzata. Il chiamante deve gestire il caso senza righe. */
|
|
184
363
|
getCodiceUtenteByEmail(email) {
|
|
185
364
|
return __awaiter(this, void 0, void 0, function* () {
|
|
186
365
|
try {
|
|
@@ -195,180 +374,142 @@ let UserService = class UserService {
|
|
|
195
374
|
}
|
|
196
375
|
});
|
|
197
376
|
}
|
|
377
|
+
/** Recupera il profilo locale usato dal login, compresi filtri Accessi eventualmente presenti. */
|
|
198
378
|
getUserByEmail(email) {
|
|
199
379
|
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
U.
|
|
204
|
-
U.
|
|
205
|
-
U.
|
|
206
|
-
U.
|
|
207
|
-
|
|
208
|
-
C.
|
|
209
|
-
C.
|
|
210
|
-
C.
|
|
211
|
-
C.
|
|
212
|
-
C.CODLINGUA AS codice_lingua,
|
|
213
|
-
C.CELLULARE AS cellulare,
|
|
214
|
-
C.
|
|
215
|
-
C.
|
|
216
|
-
C.
|
|
217
|
-
C.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
WHERE LOWER(U.USRNAME) = ?
|
|
380
|
+
const query = `
|
|
381
|
+
SELECT
|
|
382
|
+
U.CODUTE AS codice_utente,
|
|
383
|
+
U.USRNAME AS email,
|
|
384
|
+
U.FLGGDPR AS flag_gdpr,
|
|
385
|
+
U.DATSCAPWD as data_scadenza_password,
|
|
386
|
+
U.STAREG AS stato_registrazione,
|
|
387
|
+
C.COGNOME AS cognome,
|
|
388
|
+
C.NOME AS nome,
|
|
389
|
+
C.AVATAR AS avatar,
|
|
390
|
+
C.FLG2FATT AS flag_due_fattori,
|
|
391
|
+
C.FLGPWDLESS AS passwordless_login_enabled,
|
|
392
|
+
C.CODLINGUA AS codice_lingua,
|
|
393
|
+
C.CELLULARE AS cellulare,
|
|
394
|
+
C.PAGDEF AS pagina_default,
|
|
395
|
+
C.FLGSUPER AS flag_super,
|
|
396
|
+
C.FLGADMIN AS flag_admin,
|
|
397
|
+
COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
|
|
398
|
+
FROM UTENTI U
|
|
399
|
+
INNER JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
400
|
+
WHERE LOWER(U.USRNAME) = ?
|
|
222
401
|
`;
|
|
223
402
|
const utenti = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, [email]).then((results) => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase)));
|
|
224
|
-
const
|
|
225
|
-
if (
|
|
403
|
+
const user = utenti[0];
|
|
404
|
+
if (!user)
|
|
226
405
|
return null;
|
|
227
|
-
|
|
228
|
-
if (
|
|
229
|
-
const
|
|
230
|
-
const filtro = filtriUtente[0];
|
|
406
|
+
const filtro = (yield this.filtriService.getFiltriUser(user.codiceUtente))[0];
|
|
407
|
+
if (filtro) {
|
|
408
|
+
const filterValues = {};
|
|
231
409
|
Object.entries(FiltriUtente_1.FILTRI_UTENTE_DB_MAPPING).forEach(([key]) => {
|
|
232
410
|
if (key in filtro) {
|
|
233
|
-
|
|
411
|
+
filterValues[key] = filtro[key];
|
|
234
412
|
}
|
|
235
413
|
});
|
|
414
|
+
Object.assign(user, filterValues);
|
|
236
415
|
}
|
|
237
|
-
return
|
|
416
|
+
return this.normalizeUserFlags(user);
|
|
238
417
|
});
|
|
239
418
|
}
|
|
240
419
|
insertUserFilters(codiceUtente, filterData) {
|
|
241
420
|
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
-
|
|
243
|
-
if (!codiceUtente || codiceUtente <= 0) {
|
|
244
|
-
throw new Error('Codice utente non valido');
|
|
245
|
-
}
|
|
246
|
-
const fieldMapping = {
|
|
247
|
-
numeroReport: { dbField: 'NUMREP', type: 'number' },
|
|
248
|
-
indicePersonale: { dbField: 'IDXPERS', type: 'number' },
|
|
249
|
-
codiceClienteSuper: { dbField: 'CODCLISUPER', type: 'number' },
|
|
250
|
-
codAge: { dbField: 'CODAGE', type: 'number' },
|
|
251
|
-
codiceClienteCollegato: { dbField: 'CODCLICOL', type: 'number' },
|
|
252
|
-
codiceClienti: { dbField: 'CODCLIENTI', type: 'string' },
|
|
253
|
-
tipFil: { dbField: 'TIPFIL', type: 'number' },
|
|
254
|
-
idxPostazione: { dbField: 'IDXPOS', type: 'number' },
|
|
255
|
-
};
|
|
256
|
-
const fieldsToInsert = Object.entries(fieldMapping)
|
|
257
|
-
.filter(([tsField]) => {
|
|
258
|
-
const value = filterData[tsField];
|
|
259
|
-
return value !== undefined && value !== null && value !== '';
|
|
260
|
-
})
|
|
261
|
-
.map(([tsField, config]) => {
|
|
262
|
-
const value = filterData[tsField];
|
|
263
|
-
if (config.type === 'number' && typeof value !== 'number') {
|
|
264
|
-
throw new Error(`Il campo ${tsField} deve essere un numero`);
|
|
265
|
-
}
|
|
266
|
-
if (config.type === 'string' && typeof value !== 'string') {
|
|
267
|
-
throw new Error(`Il campo ${tsField} deve essere una stringa`);
|
|
268
|
-
}
|
|
269
|
-
return { tsField, dbField: config.dbField, value };
|
|
270
|
-
});
|
|
271
|
-
if (fieldsToInsert.length === 0) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
yield this.executeInTransaction(() => __awaiter(this, void 0, void 0, function* () {
|
|
275
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, 'DELETE FROM FILTRI WHERE CODUTE = ?', [codiceUtente]);
|
|
276
|
-
const dbFields = ['CODUTE', ...fieldsToInsert.map((f) => f.dbField)];
|
|
277
|
-
const placeholders = dbFields.map(() => '?');
|
|
278
|
-
const values = [codiceUtente, ...fieldsToInsert.map((f) => f.value)];
|
|
279
|
-
const insertQuery = `INSERT INTO FILTRI (${dbFields.join(', ')}) VALUES (${placeholders.join(', ')})`;
|
|
280
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, insertQuery, values);
|
|
281
|
-
}));
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
throw new Error(`Errore durante l'inserimento dei filtri per utente ${codiceUtente}: ${error.message}`);
|
|
285
|
-
}
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
executeInTransaction(operation) {
|
|
289
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
290
|
-
yield operation();
|
|
421
|
+
yield this.filtriService.upsertFiltriUtente(codiceUtente, filterData);
|
|
291
422
|
});
|
|
292
423
|
}
|
|
424
|
+
/**
|
|
425
|
+
* Crea utente, configurazione e filtri. La registrazione pubblica resta in stato `INVIO` e non puo
|
|
426
|
+
* impostare privilegi, ruoli o grant; soltanto flussi backend fidati possono usare `allowPrivilegedFields`.
|
|
427
|
+
*/
|
|
293
428
|
register(registrationData, options) {
|
|
294
429
|
return __awaiter(this, void 0, void 0, function* () {
|
|
295
|
-
var _a
|
|
430
|
+
var _a;
|
|
296
431
|
try {
|
|
297
432
|
const allowPrivilegedFields = (options === null || options === void 0 ? void 0 : options.allowPrivilegedFields) === true;
|
|
298
433
|
const normalizedEmail = this.normalizeEmail(registrationData.email);
|
|
434
|
+
if (registrationData.flagDueFattori !== undefined && typeof registrationData.flagDueFattori !== 'boolean') {
|
|
435
|
+
throw new common_1.BadRequestException('Il flag due fattori deve essere booleano.');
|
|
436
|
+
}
|
|
437
|
+
if (registrationData.flagDueFattori && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(normalizedEmail)) {
|
|
438
|
+
throw new common_1.BadRequestException('Per attivare i codici di accesso serve un indirizzo email valido.');
|
|
439
|
+
}
|
|
299
440
|
if (!allowPrivilegedFields &&
|
|
300
441
|
(registrationData.flagSuper !== undefined ||
|
|
301
|
-
registrationData.
|
|
442
|
+
registrationData.flagAdmin !== undefined ||
|
|
443
|
+
registrationData.flagDueFattori !== undefined ||
|
|
302
444
|
registrationData.roles !== undefined ||
|
|
303
445
|
registrationData.permissions !== undefined)) {
|
|
304
446
|
throw new Error('I campi privilegiati non sono consentiti nella registrazione pubblica.');
|
|
305
447
|
}
|
|
306
448
|
yield this.ensureEmailIsAvailable(normalizedEmail);
|
|
307
|
-
const queryUtenti = `INSERT INTO UTENTI (USRNAME, STAREG) VALUES (?,?)`;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
{
|
|
320
|
-
key: 'cellulare',
|
|
321
|
-
dbField: 'CELLULARE',
|
|
322
|
-
transform: (v) => String(v),
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
key: 'avatar',
|
|
326
|
-
dbField: 'AVATAR',
|
|
327
|
-
transform: (v) => String(v),
|
|
328
|
-
},
|
|
329
|
-
{
|
|
330
|
-
key: 'flagDueFattori',
|
|
331
|
-
dbField: 'FLG2FATT',
|
|
332
|
-
transform: (v) => (v ? 1 : 0),
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
key: 'paginaDefault',
|
|
336
|
-
dbField: 'PAGDEF',
|
|
337
|
-
transform: (v) => String(v),
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
key: 'nummac',
|
|
341
|
-
dbField: 'NUMMAC',
|
|
342
|
-
transform: (v) => Number(v),
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
key: 'ragSocCli',
|
|
346
|
-
dbField: 'RAGSOCCLI',
|
|
347
|
-
transform: (v) => String(v),
|
|
348
|
-
},
|
|
349
|
-
];
|
|
350
|
-
if (allowPrivilegedFields) {
|
|
351
|
-
optionalFields.push({
|
|
352
|
-
key: 'flagSuper',
|
|
353
|
-
dbField: 'FLGSUPER',
|
|
354
|
-
transform: (v) => (v ? 1 : 0),
|
|
355
|
-
}, {
|
|
356
|
-
key: 'flagAdminConfigurator',
|
|
357
|
-
dbField: 'FLGADMINCONFIG',
|
|
358
|
-
transform: (v) => (v ? 1 : 0),
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
for (const field of optionalFields) {
|
|
362
|
-
const value = registrationData[field.key];
|
|
363
|
-
if (value !== undefined && value !== null) {
|
|
364
|
-
utentiConfigFields.push(field.dbField);
|
|
365
|
-
utentiConfigPlaceholders.push('?');
|
|
366
|
-
utentiConfigParams.push(field.transform ? field.transform(value) : value);
|
|
449
|
+
const queryUtenti = `INSERT INTO UTENTI (USRNAME, STAREG) VALUES (?,?) RETURNING CODUTE`;
|
|
450
|
+
// Public/local registrations keep the historic INVIO state; trusted master or SSO flows may opt into CONF.
|
|
451
|
+
const paramsUtenti = [normalizedEmail, (_a = options === null || options === void 0 ? void 0 : options.initialState) !== null && _a !== void 0 ? _a : StatoRegistrazione_1.StatoRegistrazione.INVIO];
|
|
452
|
+
// Utente e configurazione sono creati in un'unica transazione; filtri e assegnazioni restano
|
|
453
|
+
// fuori perché delegati a servizi dedicati.
|
|
454
|
+
const codiceUtente = yield Orm_1.Orm.withTransaction(this.accessiOptions.databaseOptions, (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
455
|
+
var _a;
|
|
456
|
+
const insertedUsers = yield Orm_1.Orm.transactionQuery(transaction, queryUtenti, paramsUtenti);
|
|
457
|
+
const insertedUser = (Array.isArray(insertedUsers) ? insertedUsers[0] : insertedUsers);
|
|
458
|
+
const newCodiceUtente = Number((_a = insertedUser === null || insertedUser === void 0 ? void 0 : insertedUser.CODUTE) !== null && _a !== void 0 ? _a : insertedUser === null || insertedUser === void 0 ? void 0 : insertedUser.codute);
|
|
459
|
+
if (!newCodiceUtente) {
|
|
460
|
+
throw new Error('Creazione utente non riuscita: impossibile recuperare CODUTE.');
|
|
367
461
|
}
|
|
462
|
+
const utentiConfigFields = ['CODUTE', 'COGNOME', 'NOME'];
|
|
463
|
+
const utentiConfigPlaceholders = ['?', '?', '?'];
|
|
464
|
+
const utentiConfigParams = [newCodiceUtente, registrationData.cognome, registrationData.nome];
|
|
465
|
+
const optionalFields = [
|
|
466
|
+
{
|
|
467
|
+
key: 'cellulare',
|
|
468
|
+
dbField: 'CELLULARE',
|
|
469
|
+
transform: (v) => String(v),
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
key: 'avatar',
|
|
473
|
+
dbField: 'AVATAR',
|
|
474
|
+
transform: (v) => String(v),
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
key: 'paginaDefault',
|
|
478
|
+
dbField: 'PAGDEF',
|
|
479
|
+
transform: (v) => String(v),
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
key: 'flagDueFattori',
|
|
483
|
+
dbField: 'FLG2FATT',
|
|
484
|
+
transform: (v) => (v ? 1 : 0),
|
|
485
|
+
},
|
|
486
|
+
];
|
|
487
|
+
if (allowPrivilegedFields) {
|
|
488
|
+
optionalFields.push({
|
|
489
|
+
key: 'flagSuper',
|
|
490
|
+
dbField: 'FLGSUPER',
|
|
491
|
+
transform: (v) => (v ? 1 : 0),
|
|
492
|
+
}, {
|
|
493
|
+
key: 'flagAdmin',
|
|
494
|
+
dbField: 'FLGADMIN',
|
|
495
|
+
transform: (v) => (v ? 1 : 0),
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
for (const field of optionalFields) {
|
|
499
|
+
const value = registrationData[field.key];
|
|
500
|
+
if (value !== undefined && value !== null) {
|
|
501
|
+
utentiConfigFields.push(field.dbField);
|
|
502
|
+
utentiConfigPlaceholders.push('?');
|
|
503
|
+
utentiConfigParams.push(field.transform ? field.transform(value) : value);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
const queryUtentiConfig = `INSERT INTO UTENTI_CONFIG (${utentiConfigFields.join(', ')}) VALUES (${utentiConfigPlaceholders.join(', ')})`;
|
|
507
|
+
yield Orm_1.Orm.transactionQuery(transaction, queryUtentiConfig, utentiConfigParams);
|
|
508
|
+
return newCodiceUtente;
|
|
509
|
+
}));
|
|
510
|
+
if (hasFilterPayload(registrationData)) {
|
|
511
|
+
yield this.filtriService.upsertFiltriUtente(codiceUtente, registrationData);
|
|
368
512
|
}
|
|
369
|
-
const queryUtentiConfig = `INSERT INTO UTENTI_CONFIG (${utentiConfigFields.join(', ')}) VALUES (${utentiConfigPlaceholders.join(', ')})`;
|
|
370
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, queryUtentiConfig, utentiConfigParams);
|
|
371
|
-
yield this.filtriService.upsertFiltriUtente(codiceUtente, registrationData);
|
|
372
513
|
if (allowPrivilegedFields && !!registrationData.roles && registrationData.roles.length > 0) {
|
|
373
514
|
yield this.permissionService.assignRolesToUser(codiceUtente, registrationData.roles);
|
|
374
515
|
}
|
|
@@ -384,20 +525,73 @@ let UserService = class UserService {
|
|
|
384
525
|
}
|
|
385
526
|
});
|
|
386
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* Aggiorna il profilo utente e i filtri. Le modifiche a stato, ruoli, grant e flag amministrativi richiedono
|
|
530
|
+
* `allowPrivilegedChanges`; gli array ruolo/grant passati in un flusso fidato sostituiscono le assegnazioni.
|
|
531
|
+
*/
|
|
387
532
|
updateUser(codiceUtente, user, options) {
|
|
388
533
|
return __awaiter(this, void 0, void 0, function* () {
|
|
534
|
+
var _a, _b, _c, _d;
|
|
389
535
|
try {
|
|
390
536
|
if (!codiceUtente)
|
|
391
537
|
throw new Error('Impossibile aggiornare senza codice utente.');
|
|
392
538
|
const allowPrivilegedChanges = (options === null || options === void 0 ? void 0 : options.allowPrivilegedChanges) === true;
|
|
539
|
+
for (const value of [user.flagDueFattori, user.passwordlessLoginEnabled]) {
|
|
540
|
+
if (value !== undefined && typeof value !== 'boolean')
|
|
541
|
+
throw new common_1.BadRequestException('Le policy di autenticazione devono essere booleane.');
|
|
542
|
+
}
|
|
393
543
|
if (!allowPrivilegedChanges &&
|
|
394
544
|
(user.statoRegistrazione !== undefined ||
|
|
395
545
|
user.flagSuper !== undefined ||
|
|
396
|
-
user.
|
|
546
|
+
user.flagAdmin !== undefined ||
|
|
547
|
+
user.passwordLoginEnabled !== undefined ||
|
|
548
|
+
user.passwordlessLoginEnabled !== undefined ||
|
|
549
|
+
user.flagDueFattori !== undefined ||
|
|
397
550
|
user.roles !== undefined ||
|
|
398
551
|
user.permissions !== undefined)) {
|
|
399
552
|
throw new Error('Non e consentito modificare campi privilegiati.');
|
|
400
553
|
}
|
|
554
|
+
let currentSnapshot;
|
|
555
|
+
const getCurrentSnapshot = () => __awaiter(this, void 0, void 0, function* () {
|
|
556
|
+
if (currentSnapshot === undefined) {
|
|
557
|
+
currentSnapshot = yield this.getAuthenticatedUserSnapshot(codiceUtente);
|
|
558
|
+
}
|
|
559
|
+
if (!currentSnapshot)
|
|
560
|
+
throw new common_1.BadRequestException('Utente non trovato.');
|
|
561
|
+
return currentSnapshot;
|
|
562
|
+
});
|
|
563
|
+
if (user.flagDueFattori !== undefined || user.passwordlessLoginEnabled !== undefined || user.email !== undefined) {
|
|
564
|
+
const current = yield getCurrentSnapshot();
|
|
565
|
+
const twoFactor = (_a = user.flagDueFattori) !== null && _a !== void 0 ? _a : current.flagDueFattori;
|
|
566
|
+
const passwordless = (_b = user.passwordlessLoginEnabled) !== null && _b !== void 0 ? _b : current.passwordlessLoginEnabled;
|
|
567
|
+
if (passwordless && !twoFactor)
|
|
568
|
+
throw new common_1.BadRequestException('Il login senza password richiede il codice di accesso attivo.');
|
|
569
|
+
if (twoFactor && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(((_d = (_c = user.email) !== null && _c !== void 0 ? _c : current.email) !== null && _d !== void 0 ? _d : '').trim())) {
|
|
570
|
+
throw new common_1.BadRequestException('Per attivare i codici di accesso serve un indirizzo email valido.');
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
// Ogni modifica a stato o policy di autenticazione deve invalidare i token emessi.
|
|
574
|
+
let revocationReason;
|
|
575
|
+
if (user.statoRegistrazione !== undefined
|
|
576
|
+
|| user.flagDueFattori !== undefined
|
|
577
|
+
|| user.passwordlessLoginEnabled !== undefined
|
|
578
|
+
|| user.passwordLoginEnabled !== undefined) {
|
|
579
|
+
const before = yield getCurrentSnapshot();
|
|
580
|
+
if (user.statoRegistrazione !== undefined && Number(before.statoRegistrazione) !== Number(user.statoRegistrazione)) {
|
|
581
|
+
revocationReason = 'user_state_change';
|
|
582
|
+
}
|
|
583
|
+
else if (user.flagDueFattori !== undefined && Boolean(before.flagDueFattori) !== user.flagDueFattori) {
|
|
584
|
+
revocationReason = 'two_factor_policy_change';
|
|
585
|
+
}
|
|
586
|
+
else if (user.passwordlessLoginEnabled !== undefined
|
|
587
|
+
&& Boolean(before.passwordlessLoginEnabled) !== user.passwordlessLoginEnabled) {
|
|
588
|
+
revocationReason = 'login_policy_change';
|
|
589
|
+
}
|
|
590
|
+
else if (user.passwordLoginEnabled !== undefined
|
|
591
|
+
&& Boolean(before.passwordLoginEnabled) !== user.passwordLoginEnabled) {
|
|
592
|
+
revocationReason = 'login_policy_change';
|
|
593
|
+
}
|
|
594
|
+
}
|
|
401
595
|
const utentiUpdates = [];
|
|
402
596
|
const utentiParams = [];
|
|
403
597
|
if (user.email !== undefined) {
|
|
@@ -408,75 +602,80 @@ let UserService = class UserService {
|
|
|
408
602
|
}
|
|
409
603
|
if (user.flagGdpr !== undefined) {
|
|
410
604
|
utentiUpdates.push('flggdpr = ?');
|
|
411
|
-
utentiParams.push(user.flagGdpr);
|
|
605
|
+
utentiParams.push(user.flagGdpr ? 1 : 0);
|
|
606
|
+
// Coerenza con set-gdpr: flag e data di accettazione restano allineati.
|
|
607
|
+
utentiUpdates.push(user.flagGdpr ? 'datgdpr = CURRENT_DATE' : 'datgdpr = NULL');
|
|
412
608
|
}
|
|
413
609
|
if (allowPrivilegedChanges && user.statoRegistrazione !== undefined) {
|
|
414
610
|
utentiUpdates.push('stareg = ?');
|
|
415
611
|
utentiParams.push(user.statoRegistrazione);
|
|
416
612
|
}
|
|
613
|
+
if (allowPrivilegedChanges && user.keyRegistrazione !== undefined) {
|
|
614
|
+
utentiUpdates.push('keyreg = ?');
|
|
615
|
+
utentiParams.push(user.keyRegistrazione);
|
|
616
|
+
}
|
|
617
|
+
if (allowPrivilegedChanges && user.dataScadenzaPassword !== undefined) {
|
|
618
|
+
utentiUpdates.push('DATSCAPWD = CAST(? AS DATE)');
|
|
619
|
+
utentiParams.push(user.dataScadenzaPassword);
|
|
620
|
+
}
|
|
417
621
|
if (utentiUpdates.length > 0) {
|
|
418
622
|
const queryUtenti = `UPDATE UTENTI SET ${utentiUpdates.join(', ')} WHERE CODUTE = ?`;
|
|
419
623
|
utentiParams.push(codiceUtente);
|
|
420
624
|
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, queryUtenti, utentiParams);
|
|
421
625
|
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
if (user.
|
|
425
|
-
|
|
426
|
-
utentiConfigParams.push(user.cognome);
|
|
427
|
-
}
|
|
428
|
-
if (user.nome !== undefined) {
|
|
429
|
-
utentiConfigUpdates.push('nome = ?');
|
|
430
|
-
utentiConfigParams.push(user.nome);
|
|
431
|
-
}
|
|
432
|
-
if (user.avatar !== undefined) {
|
|
433
|
-
utentiConfigUpdates.push('avatar = ?');
|
|
434
|
-
utentiConfigParams.push(user.avatar);
|
|
435
|
-
}
|
|
436
|
-
if (user.flagDueFattori !== undefined) {
|
|
437
|
-
utentiConfigUpdates.push('flg2fatt = ?');
|
|
438
|
-
utentiConfigParams.push(user.flagDueFattori);
|
|
439
|
-
}
|
|
440
|
-
if (user.codiceLingua !== undefined) {
|
|
441
|
-
utentiConfigUpdates.push('codlingua = ?');
|
|
442
|
-
utentiConfigParams.push(user.codiceLingua);
|
|
443
|
-
}
|
|
444
|
-
if (user.cellulare !== undefined) {
|
|
445
|
-
utentiConfigUpdates.push('cellulare = ?');
|
|
446
|
-
utentiConfigParams.push(user.cellulare);
|
|
447
|
-
}
|
|
448
|
-
if (allowPrivilegedChanges && user.flagSuper !== undefined) {
|
|
449
|
-
utentiConfigUpdates.push('flgsuper = ?');
|
|
450
|
-
utentiConfigParams.push(user.flagSuper);
|
|
451
|
-
}
|
|
452
|
-
if (allowPrivilegedChanges && user.flagAdminConfigurator !== undefined) {
|
|
453
|
-
utentiConfigUpdates.push('flgadminconfig = ?');
|
|
454
|
-
utentiConfigParams.push(user.flagAdminConfigurator);
|
|
626
|
+
// Completa il processo GDPR: oltre ai flag, registra la riga storica di accettazione
|
|
627
|
+
// (stessa semantica di set-gdpr). Il trigger UTENTI_GDPR_BI0 riallinea i flag.
|
|
628
|
+
if (user.flagGdpr === true) {
|
|
629
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, 'UPDATE OR INSERT INTO UTENTI_GDPR (CODUTE, DATACC, GDPR) VALUES (?, CURRENT_DATE, ?) MATCHING (CODUTE, DATACC)', [codiceUtente, 'true']);
|
|
455
630
|
}
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
if (user.
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
if (
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
631
|
+
// UPDATE OR INSERT mantiene la scrittura idempotente anche se la riga UTENTI_CONFIG
|
|
632
|
+
// non esiste ancora: aggiorna solo le colonne fornite, altrimenti la crea.
|
|
633
|
+
const utentiConfigAssignments = [];
|
|
634
|
+
const assignConfig = (column, value) => {
|
|
635
|
+
utentiConfigAssignments.push({ column, value });
|
|
636
|
+
};
|
|
637
|
+
if (user.cognome !== undefined)
|
|
638
|
+
assignConfig('cognome', user.cognome);
|
|
639
|
+
if (user.nome !== undefined)
|
|
640
|
+
assignConfig('nome', user.nome);
|
|
641
|
+
if (user.avatar !== undefined)
|
|
642
|
+
assignConfig('avatar', user.avatar);
|
|
643
|
+
if (user.flagDueFattori !== undefined)
|
|
644
|
+
assignConfig('flg2fatt', user.flagDueFattori ? 1 : 0);
|
|
645
|
+
if (user.passwordlessLoginEnabled !== undefined)
|
|
646
|
+
assignConfig('flgpwdless', user.passwordlessLoginEnabled ? 1 : 0);
|
|
647
|
+
if (user.codiceLingua !== undefined)
|
|
648
|
+
assignConfig('codlingua', user.codiceLingua);
|
|
649
|
+
if (user.cellulare !== undefined)
|
|
650
|
+
assignConfig('cellulare', user.cellulare);
|
|
651
|
+
if (user.paginaDefault !== undefined)
|
|
652
|
+
assignConfig('PAGDEF', user.paginaDefault);
|
|
653
|
+
if (allowPrivilegedChanges && user.flagSuper !== undefined)
|
|
654
|
+
assignConfig('flgsuper', user.flagSuper ? 1 : 0);
|
|
655
|
+
if (allowPrivilegedChanges && user.flagAdmin !== undefined)
|
|
656
|
+
assignConfig('FLGADMIN', user.flagAdmin ? 1 : 0);
|
|
657
|
+
if (allowPrivilegedChanges && user.passwordLoginEnabled !== undefined)
|
|
658
|
+
assignConfig('flgpassword', user.passwordLoginEnabled ? 1 : 0);
|
|
659
|
+
if (user.jsonMetadata !== undefined)
|
|
660
|
+
assignConfig('json_metadata', user.jsonMetadata);
|
|
661
|
+
if (utentiConfigAssignments.length > 0) {
|
|
662
|
+
const columns = ['CODUTE', ...utentiConfigAssignments.map((assignment) => assignment.column)];
|
|
663
|
+
const values = [codiceUtente, ...utentiConfigAssignments.map((assignment) => assignment.value)];
|
|
664
|
+
const queryUtentiConfig = `UPDATE OR INSERT INTO UTENTI_CONFIG (${columns.join(', ')}) VALUES (${columns.map(() => '?').join(', ')}) MATCHING (CODUTE)`;
|
|
665
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, queryUtentiConfig, values);
|
|
666
|
+
}
|
|
667
|
+
if (allowPrivilegedChanges && Array.isArray(user.roles)) {
|
|
474
668
|
yield this.permissionService.assignRolesToUser(codiceUtente, user.roles);
|
|
475
669
|
}
|
|
476
|
-
if (allowPrivilegedChanges &&
|
|
670
|
+
if (allowPrivilegedChanges && Array.isArray(user.permissions)) {
|
|
477
671
|
yield this.permissionService.assignPermissionsToUser(codiceUtente, user.permissions);
|
|
478
672
|
}
|
|
479
|
-
|
|
673
|
+
if (hasFilterPayload(user)) {
|
|
674
|
+
yield this.filtriService.upsertFiltriUtente(codiceUtente, user);
|
|
675
|
+
}
|
|
676
|
+
if (revocationReason) {
|
|
677
|
+
yield this.revokeSessionsBestEffort(codiceUtente, revocationReason);
|
|
678
|
+
}
|
|
480
679
|
}
|
|
481
680
|
catch (error) {
|
|
482
681
|
throw error;
|
|
@@ -485,64 +684,10 @@ let UserService = class UserService {
|
|
|
485
684
|
}
|
|
486
685
|
updateUserFilters(codiceUtente, user) {
|
|
487
686
|
return __awaiter(this, void 0, void 0, function* () {
|
|
488
|
-
|
|
489
|
-
if (!codiceUtente || codiceUtente <= 0) {
|
|
490
|
-
throw new Error('Codice utente non valido');
|
|
491
|
-
}
|
|
492
|
-
const fieldMapping = {
|
|
493
|
-
numRep: { dbField: 'NUMREP', type: 'number' },
|
|
494
|
-
idxPers: { dbField: 'IDXPERS', type: 'number' },
|
|
495
|
-
codCliSuper: { dbField: 'CODCLISUPER', type: 'number' },
|
|
496
|
-
codAge: { dbField: 'CODAGE', type: 'number' },
|
|
497
|
-
codCliCol: { dbField: 'CODCLICOL', type: 'number' },
|
|
498
|
-
codiceClienti: { dbField: 'CODCLIENTI', type: 'string' },
|
|
499
|
-
tipFil: { dbField: 'TIPFIL', type: 'number' },
|
|
500
|
-
idxPostazione: { dbField: 'IDXPOS', type: 'number' },
|
|
501
|
-
};
|
|
502
|
-
const fieldsToUpdate = Object.entries(fieldMapping)
|
|
503
|
-
.filter(([tsField]) => {
|
|
504
|
-
const value = user[tsField];
|
|
505
|
-
return value !== undefined && value !== null;
|
|
506
|
-
})
|
|
507
|
-
.map(([tsField, config]) => {
|
|
508
|
-
const value = user[tsField];
|
|
509
|
-
if (config.type === 'number' && typeof value !== 'number') {
|
|
510
|
-
throw new Error(`Il campo ${tsField} deve essere un numero`);
|
|
511
|
-
}
|
|
512
|
-
if (config.type === 'string' && typeof value !== 'string') {
|
|
513
|
-
throw new Error(`Il campo ${tsField} deve essere una stringa`);
|
|
514
|
-
}
|
|
515
|
-
return { tsField, dbField: config.dbField, value };
|
|
516
|
-
});
|
|
517
|
-
if (fieldsToUpdate.length === 0) {
|
|
518
|
-
return;
|
|
519
|
-
}
|
|
520
|
-
yield this.executeInTransaction(() => __awaiter(this, void 0, void 0, function* () {
|
|
521
|
-
const checkQuery = `SELECT COUNT(*) as CNT FROM FILTRI WHERE CODUTE = ?`;
|
|
522
|
-
const existingRecord = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, checkQuery, [
|
|
523
|
-
codiceUtente,
|
|
524
|
-
]);
|
|
525
|
-
const exists = existingRecord[0].CNT > 0;
|
|
526
|
-
if (exists) {
|
|
527
|
-
const updates = fieldsToUpdate.map((f) => `${f.dbField} = ?`).join(', ');
|
|
528
|
-
const values = [...fieldsToUpdate.map((f) => f.value), codiceUtente];
|
|
529
|
-
const updateQuery = `UPDATE FILTRI SET ${updates} WHERE CODUTE = ?`;
|
|
530
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, updateQuery, values);
|
|
531
|
-
}
|
|
532
|
-
else {
|
|
533
|
-
const dbFields = ['CODUTE', ...fieldsToUpdate.map((f) => f.dbField)];
|
|
534
|
-
const placeholders = dbFields.map(() => '?');
|
|
535
|
-
const insertValues = [codiceUtente, ...fieldsToUpdate.map((f) => f.value)];
|
|
536
|
-
const insertQuery = `INSERT INTO FILTRI (${dbFields.join(', ')}) VALUES (${placeholders.join(', ')})`;
|
|
537
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, insertQuery, insertValues);
|
|
538
|
-
}
|
|
539
|
-
}));
|
|
540
|
-
}
|
|
541
|
-
catch (error) {
|
|
542
|
-
throw new Error(`Errore durante l'aggiornamento dei filtri per utente ${codiceUtente}: ${error.message}`);
|
|
543
|
-
}
|
|
687
|
+
yield this.filtriService.upsertFiltriUtente(codiceUtente, user);
|
|
544
688
|
});
|
|
545
689
|
}
|
|
690
|
+
/** Eliminazione logica: imposta lo stato `DELETE` senza cancellare lo storico o i collegamenti SSO. */
|
|
546
691
|
deleteUser(codiceCliente) {
|
|
547
692
|
return __awaiter(this, void 0, void 0, function* () {
|
|
548
693
|
try {
|
|
@@ -551,12 +696,62 @@ let UserService = class UserService {
|
|
|
551
696
|
StatoRegistrazione_1.StatoRegistrazione.DELETE,
|
|
552
697
|
codiceCliente,
|
|
553
698
|
]);
|
|
699
|
+
yield this.revokeSessionsBestEffort(codiceCliente, 'user_soft_delete');
|
|
554
700
|
}
|
|
555
701
|
catch (error) {
|
|
556
702
|
throw error;
|
|
557
703
|
}
|
|
558
704
|
});
|
|
559
705
|
}
|
|
706
|
+
/**
|
|
707
|
+
* Eliminazione definitiva: rimuove l'utente e tutti i record collegati in un'unica
|
|
708
|
+
* transazione. Operazione distruttiva riservata agli admin (il superutente usa il soft delete).
|
|
709
|
+
*/
|
|
710
|
+
deleteUserPermanently(codiceUtente) {
|
|
711
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
712
|
+
if (!codiceUtente)
|
|
713
|
+
throw new common_1.BadRequestException('Impossibile eliminare senza codice utente.');
|
|
714
|
+
const rows = yield this.getUsers({ codiceUtente }, { includeExtensionFields: false, includeGrants: false });
|
|
715
|
+
if (rows.length === 0) {
|
|
716
|
+
throw new common_1.NotFoundException(`Nessun utente con codice ${codiceUtente}.`);
|
|
717
|
+
}
|
|
718
|
+
const params = [codiceUtente];
|
|
719
|
+
try {
|
|
720
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
721
|
+
{ query: 'DELETE FROM ABILITAZIONI WHERE CODUTE = ?', params },
|
|
722
|
+
{ query: 'DELETE FROM UTENTI_RUOLI WHERE CODUTE = ?', params },
|
|
723
|
+
{ query: 'DELETE FROM UTENTI_IDENTITA_EXT WHERE CODUTE = ?', params },
|
|
724
|
+
{ query: 'DELETE FROM ACCESSI_2FA WHERE CODUTE = ?', params },
|
|
725
|
+
{ query: 'DELETE FROM FILTRI WHERE CODUTE = ?', params },
|
|
726
|
+
{ query: 'DELETE FROM UTENTI_CONFIG WHERE CODUTE = ?', params },
|
|
727
|
+
{ query: 'DELETE FROM UTENTI_PWD WHERE CODUTE = ?', params },
|
|
728
|
+
{ query: 'DELETE FROM UTENTI_OLDPWD WHERE CODUTE = ?', params },
|
|
729
|
+
{ query: 'DELETE FROM UTENTI_GDPR WHERE CODUTE = ?', params },
|
|
730
|
+
{ query: 'DELETE FROM UTENTI WHERE CODUTE = ?', params },
|
|
731
|
+
]);
|
|
732
|
+
yield this.revokeSessionsBestEffort(codiceUtente, 'user_delete');
|
|
733
|
+
}
|
|
734
|
+
catch (error) {
|
|
735
|
+
if (this.isForeignKeyViolation(error)) {
|
|
736
|
+
throw new common_1.BadRequestException({
|
|
737
|
+
code: 'ACCESSI_USER_DELETE_HAS_REFERENCES',
|
|
738
|
+
message: 'L utente ha dati collegati in altre tabelle (per esempio campi estesi del backend): non e possibile eliminarlo definitivamente. Usa "Imposta stato eliminato" (soft delete).',
|
|
739
|
+
});
|
|
740
|
+
}
|
|
741
|
+
throw error;
|
|
742
|
+
}
|
|
743
|
+
});
|
|
744
|
+
}
|
|
745
|
+
/** Riconosce una violazione di chiave esterna Firebird (SQLCODE -530/-531 o messaggio) senza esporre SQL. */
|
|
746
|
+
isForeignKeyViolation(error) {
|
|
747
|
+
const record = error;
|
|
748
|
+
const sqlcode = Number(record === null || record === void 0 ? void 0 : record.sqlcode);
|
|
749
|
+
if (Number.isFinite(sqlcode) && (sqlcode === -530 || sqlcode === -531))
|
|
750
|
+
return true;
|
|
751
|
+
const text = `${typeof (record === null || record === void 0 ? void 0 : record.message) === 'string' ? record.message : ''} ${typeof (record === null || record === void 0 ? void 0 : record.code) === 'string' ? record.code : ''}`;
|
|
752
|
+
return /foreign key|isc_foreign_key|violation of .*constraint|-530/i.test(text);
|
|
753
|
+
}
|
|
754
|
+
/** Cambia esplicitamente lo stato di registrazione; usare questa API per blocco, conferma o eliminazione logica. */
|
|
560
755
|
setStato(codiceCliente, statoRegistrazione) {
|
|
561
756
|
return __awaiter(this, void 0, void 0, function* () {
|
|
562
757
|
try {
|
|
@@ -565,6 +760,10 @@ let UserService = class UserService {
|
|
|
565
760
|
statoRegistrazione,
|
|
566
761
|
codiceCliente,
|
|
567
762
|
]);
|
|
763
|
+
if (statoRegistrazione === StatoRegistrazione_1.StatoRegistrazione.BLOCC
|
|
764
|
+
|| statoRegistrazione === StatoRegistrazione_1.StatoRegistrazione.DELETE) {
|
|
765
|
+
yield this.revokeSessionsBestEffort(codiceCliente, 'user_disabled');
|
|
766
|
+
}
|
|
568
767
|
}
|
|
569
768
|
catch (error) {
|
|
570
769
|
throw error;
|
|
@@ -574,18 +773,60 @@ let UserService = class UserService {
|
|
|
574
773
|
setGdpr(codiceUtente) {
|
|
575
774
|
return __awaiter(this, void 0, void 0, function* () {
|
|
576
775
|
try {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
776
|
+
return yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
777
|
+
{ query: 'UPDATE OR INSERT INTO UTENTI_GDPR (CODUTE, DATACC, GDPR) VALUES (?, CURRENT_DATE, ?) MATCHING (CODUTE, DATACC)', params: [codiceUtente, 'true'] },
|
|
778
|
+
{ query: 'UPDATE UTENTI SET FLGGDPR = 1, DATGDPR = CURRENT_DATE WHERE CODUTE = ?', params: [codiceUtente] },
|
|
779
|
+
]);
|
|
580
780
|
}
|
|
581
781
|
catch (error) {
|
|
582
782
|
throw error;
|
|
583
783
|
}
|
|
584
784
|
});
|
|
585
785
|
}
|
|
786
|
+
/**
|
|
787
|
+
* Forza l'invio dell'email di reset password per un utente. Operazione amministrativa.
|
|
788
|
+
* Richiede un servizio email configurato: altrimenti solleva ACCESSI_EMAIL_NOT_CONFIGURED.
|
|
789
|
+
*/
|
|
790
|
+
forcePasswordReset(codiceUtente) {
|
|
791
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
792
|
+
var _a, _b;
|
|
793
|
+
(0, emailConfiguration_1.assertEmailConfigured)(this.accessiOptions);
|
|
794
|
+
const rows = yield this.getUsers({ codiceUtente });
|
|
795
|
+
const email = (_b = (_a = rows[0]) === null || _a === void 0 ? void 0 : _a.utente) === null || _b === void 0 ? void 0 : _b.email;
|
|
796
|
+
if (typeof email !== 'string' || email.trim() === '') {
|
|
797
|
+
throw new common_1.NotFoundException(`Nessun utente con email per il codice ${codiceUtente}.`);
|
|
798
|
+
}
|
|
799
|
+
yield this.emailService.sendPasswordResetEmail(email);
|
|
800
|
+
});
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Forza l'invio dell'email di reset a tutti gli utenti la cui password non e ancora nel formato
|
|
804
|
+
* moderno (`scrypt$...`), cioe' legacy grezza o `scrypt-legacy` non piu verificabile. Utile quando
|
|
805
|
+
* la `encryptionKey` storica e perduta. Richiede email configurata. Ritorna quanti utenti hanno
|
|
806
|
+
* ricevuto l'email.
|
|
807
|
+
*/
|
|
808
|
+
forcePasswordResetForLegacyPasswords() {
|
|
809
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
810
|
+
(0, emailConfiguration_1.assertEmailConfigured)(this.accessiOptions);
|
|
811
|
+
const rows = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT U.CODUTE AS codice_utente, U.USRNAME AS email
|
|
812
|
+
FROM UTENTI U
|
|
813
|
+
JOIN UTENTI_PWD P ON P.CODUTE = U.CODUTE
|
|
814
|
+
WHERE P.PWD IS NOT NULL AND P.PWD NOT STARTING WITH 'scrypt$'`, [], false);
|
|
815
|
+
let sent = 0;
|
|
816
|
+
for (const row of rows) {
|
|
817
|
+
const raw = Utilities_1.RestUtilities.convertKeysToCamelCase(row);
|
|
818
|
+
const email = typeof raw.email === 'string' ? raw.email.trim() : '';
|
|
819
|
+
if (email === '')
|
|
820
|
+
continue;
|
|
821
|
+
yield this.emailService.sendPasswordResetEmail(email);
|
|
822
|
+
sent += 1;
|
|
823
|
+
}
|
|
824
|
+
return sent;
|
|
825
|
+
});
|
|
826
|
+
}
|
|
586
827
|
};
|
|
587
828
|
exports.UserService = UserService;
|
|
588
|
-
exports.UserService = UserService = __decorate([
|
|
829
|
+
exports.UserService = UserService = UserService_1 = __decorate([
|
|
589
830
|
autobind_1.autobind,
|
|
590
831
|
(0, common_1.Injectable)(),
|
|
591
832
|
__param(0, (0, common_1.Inject)('ACCESSI_OPTIONS')),
|