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
|
@@ -41,205 +41,464 @@ let PermissionService = class PermissionService {
|
|
|
41
41
|
constructor(accessiOptions) {
|
|
42
42
|
this.accessiOptions = accessiOptions;
|
|
43
43
|
}
|
|
44
|
+
getCountFromResult(result, fieldName = 'COUNT') {
|
|
45
|
+
var _a, _b, _c, _d, _e;
|
|
46
|
+
const rawValue = (_d = (_b = (_a = result === null || result === void 0 ? void 0 : result[0]) === null || _a === void 0 ? void 0 : _a[fieldName]) !== null && _b !== void 0 ? _b : (_c = result === null || result === void 0 ? void 0 : result[0]) === null || _c === void 0 ? void 0 : _c[fieldName.toLowerCase()]) !== null && _d !== void 0 ? _d : (_e = result === null || result === void 0 ? void 0 : result[0]) === null || _e === void 0 ? void 0 : _e.count;
|
|
47
|
+
return typeof rawValue === 'number' ? rawValue : Number.parseInt(`${rawValue !== null && rawValue !== void 0 ? rawValue : '0'}`, 10);
|
|
48
|
+
}
|
|
49
|
+
extractIntegerColumn(result, fieldName) {
|
|
50
|
+
return new Set(result.map((row) => { var _a; return Number((_a = row[fieldName]) !== null && _a !== void 0 ? _a : row[fieldName.toLowerCase()]); }));
|
|
51
|
+
}
|
|
52
|
+
getAllActiveMenusAsGrants() {
|
|
53
|
+
return __awaiter(this, arguments, void 0, function* (scopeCodes = []) {
|
|
54
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
55
|
+
const query = `
|
|
56
|
+
SELECT
|
|
57
|
+
M.CODMNU AS codice_menu,
|
|
58
|
+
30 AS tipo_abilitazione,
|
|
59
|
+
M.DESMNU AS descrizione_menu,
|
|
60
|
+
G.DESGRP AS descrizione_gruppo,
|
|
61
|
+
G.CODGRP AS codice_gruppo,
|
|
62
|
+
M.ICON AS icona,
|
|
63
|
+
M.CODTIP AS tipo,
|
|
64
|
+
M.PAGINA AS pagina,
|
|
65
|
+
M.NOTE AS note
|
|
66
|
+
FROM MENU M
|
|
67
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
68
|
+
WHERE M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1${scopeFilter.sql}
|
|
69
|
+
`;
|
|
70
|
+
return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, scopeFilter.params)
|
|
71
|
+
.then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Normalizza e valida il filtro `scope` (CSV). Restituisce i codici in
|
|
76
|
+
* maiuscolo; lista vuota significa "nessun filtro" (comportamento storico).
|
|
77
|
+
*/
|
|
78
|
+
resolveScopeCodes(scope) {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
const codes = Array.from(new Set(String(scope !== null && scope !== void 0 ? scope : '')
|
|
81
|
+
.split(',')
|
|
82
|
+
.map((value) => value.trim().toUpperCase())
|
|
83
|
+
.filter((value) => value.length > 0)));
|
|
84
|
+
if (codes.length === 0) {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
const placeholders = codes.map(() => '?').join(', ');
|
|
88
|
+
const rows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODICE FROM SCOPES WHERE CODICE IN (${placeholders})`, codes));
|
|
89
|
+
const known = new Set(rows.map((row) => { var _a, _b; return String((_b = (_a = row.CODICE) !== null && _a !== void 0 ? _a : row.codice) !== null && _b !== void 0 ? _b : '').trim().toUpperCase(); }));
|
|
90
|
+
const missing = codes.filter((code) => !known.has(code));
|
|
91
|
+
if (missing.length > 0) {
|
|
92
|
+
throw new common_1.BadRequestException(`Scope non validi: ${missing.join(', ')}.`);
|
|
93
|
+
}
|
|
94
|
+
return codes;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
/** Clausola SQL EXISTS per filtrare i menu sugli scope richiesti. */
|
|
98
|
+
scopeFilter(alias, scopeCodes) {
|
|
99
|
+
if (scopeCodes.length === 0) {
|
|
100
|
+
return { sql: '', params: [] };
|
|
101
|
+
}
|
|
102
|
+
const placeholders = scopeCodes.map(() => '?').join(', ');
|
|
103
|
+
return {
|
|
104
|
+
sql: ` AND EXISTS (SELECT 1 FROM MENU_SCOPES MS WHERE MS.CODICE_MENU = ${alias}.CODMNU AND MS.CODICE_SCOPE IN (${placeholders}))`,
|
|
105
|
+
params: [...scopeCodes],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
getUserDirectPermissions(codiceUtente_1) {
|
|
109
|
+
return __awaiter(this, arguments, void 0, function* (codiceUtente, scopeCodes = []) {
|
|
110
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
111
|
+
const queryAbilitazioni = `
|
|
112
|
+
SELECT
|
|
113
|
+
A.CODMNU AS codice_menu,
|
|
114
|
+
A.TIPABI AS tipo_abilitazione,
|
|
115
|
+
M.DESMNU AS descrizione_menu,
|
|
116
|
+
G.DESGRP AS descrizione_gruppo,
|
|
117
|
+
G.CODGRP AS codice_gruppo,
|
|
118
|
+
M.ICON AS icona,
|
|
119
|
+
M.CODTIP AS tipo,
|
|
120
|
+
M.PAGINA AS pagina,
|
|
121
|
+
M.NOTE AS note
|
|
122
|
+
FROM ABILITAZIONI A
|
|
123
|
+
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
124
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
125
|
+
WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1${scopeFilter.sql}
|
|
126
|
+
`;
|
|
127
|
+
return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryAbilitazioni, [codiceUtente, ...scopeFilter.params])
|
|
128
|
+
.then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase));
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
getUserRoles(codiceUtente_1) {
|
|
132
|
+
return __awaiter(this, arguments, void 0, function* (codiceUtente, scopeCodes = []) {
|
|
133
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
134
|
+
const queryRuoli = `
|
|
135
|
+
SELECT
|
|
136
|
+
R.CODRUO AS codice_ruolo,
|
|
137
|
+
R.DESRUO AS descrizione_ruolo,
|
|
138
|
+
CASE WHEN COALESCE(G.FLGENABLED, 1) = 1 THEN M.CODMNU END AS codice_menu,
|
|
139
|
+
RM.TIPABI AS tipo_abilitazione,
|
|
140
|
+
M.DESMNU AS descrizione_menu,
|
|
141
|
+
M.NOTE AS note
|
|
142
|
+
FROM UTENTI_RUOLI RU
|
|
143
|
+
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
144
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
145
|
+
LEFT JOIN MENU M
|
|
146
|
+
ON RM.CODMNU = M.CODMNU
|
|
147
|
+
AND M.FLGENABLED = 1
|
|
148
|
+
LEFT JOIN MENU_GRP G
|
|
149
|
+
ON G.CODGRP = M.CODGRP
|
|
150
|
+
WHERE RU.CODUTE = ?${scopeFilter.sql}
|
|
151
|
+
`;
|
|
152
|
+
const ruoliResult = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryRuoli, [codiceUtente, ...scopeFilter.params]))
|
|
153
|
+
.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
154
|
+
return this.assembleRoles(ruoliResult);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/** Costruisce l'albero ruoli/menu a partire dalle righe (riusato da lettura singola e batch). */
|
|
158
|
+
assembleRoles(ruoliResult) {
|
|
159
|
+
const ruoliMap = new Map();
|
|
160
|
+
for (const row of ruoliResult) {
|
|
161
|
+
const codiceRuolo = Number(row.codiceRuolo);
|
|
162
|
+
const descrizioneRuolo = typeof row.descrizioneRuolo === 'string' ? row.descrizioneRuolo.trim() : '';
|
|
163
|
+
const codiceMenu = typeof row.codiceMenu === 'string' ? row.codiceMenu : undefined;
|
|
164
|
+
// RUOLI_MNU.TIPABI e MENU.DESMNU sono nullable nello schema storico: un livello
|
|
165
|
+
// mancante non deve far sparire il menu dal ruolo. Default prudente: lettura.
|
|
166
|
+
const rawTipoAbilitazione = row.tipoAbilitazione;
|
|
167
|
+
const parsedTipoAbilitazione = rawTipoAbilitazione === undefined || rawTipoAbilitazione === null || rawTipoAbilitazione === ''
|
|
168
|
+
? Dtos_1.TipoAbilitazione.LETTURA
|
|
169
|
+
: Number(rawTipoAbilitazione);
|
|
170
|
+
const tipoAbilitazione = (Number.isFinite(parsedTipoAbilitazione)
|
|
171
|
+
? parsedTipoAbilitazione
|
|
172
|
+
: Dtos_1.TipoAbilitazione.LETTURA);
|
|
173
|
+
if (!ruoliMap.has(codiceRuolo)) {
|
|
174
|
+
ruoliMap.set(codiceRuolo, {
|
|
175
|
+
codiceRuolo,
|
|
176
|
+
descrizioneRuolo,
|
|
177
|
+
menu: []
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (codiceMenu) {
|
|
181
|
+
ruoliMap.get(codiceRuolo).menu.push({
|
|
182
|
+
codiceRuolo,
|
|
183
|
+
codiceMenu,
|
|
184
|
+
tipoAbilitazione,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return Array.from(ruoliMap.values());
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Compone i grant effettivi: permessi diretti e ruoli si sommano per codice menu
|
|
192
|
+
* prendendo il livello massimo. Un livello 0/non valido non rimuove un grant del ruolo.
|
|
193
|
+
* I superutenti ricevono tutti i menu attivi al livello massimo.
|
|
194
|
+
*/
|
|
195
|
+
composeGrants(abilitazioni, ruoli, isSuperAdmin, allActiveMenus) {
|
|
196
|
+
if (isSuperAdmin)
|
|
197
|
+
return allActiveMenus;
|
|
198
|
+
const catalog = new Map(allActiveMenus.map((menu) => [menu.codiceMenu, menu]));
|
|
199
|
+
const grantsMap = new Map();
|
|
200
|
+
const addGrant = (grant) => {
|
|
201
|
+
var _a, _b;
|
|
202
|
+
const codiceMenu = typeof grant.codiceMenu === 'string' ? grant.codiceMenu.trim() : '';
|
|
203
|
+
const livello = Number((_a = grant.tipoAbilitazione) !== null && _a !== void 0 ? _a : 0);
|
|
204
|
+
if (!codiceMenu || !Number.isFinite(livello) || livello <= 0)
|
|
205
|
+
return;
|
|
206
|
+
const existing = grantsMap.get(codiceMenu);
|
|
207
|
+
if (!existing || livello > Number((_b = existing.tipoAbilitazione) !== null && _b !== void 0 ? _b : 0)) {
|
|
208
|
+
// I ruoli salvano solo codice e livello: completa i metadati di navigazione
|
|
209
|
+
// (pagina, icona, gruppo, tipo) dal catalogo dei menu attivi.
|
|
210
|
+
const metadata = catalog.get(codiceMenu);
|
|
211
|
+
grantsMap.set(codiceMenu, Object.assign(Object.assign(Object.assign({}, (metadata !== null && metadata !== void 0 ? metadata : {})), grant), { codiceMenu, tipoAbilitazione: livello }));
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
for (const abilitazione of abilitazioni)
|
|
215
|
+
addGrant(abilitazione);
|
|
216
|
+
for (const ruolo of ruoli) {
|
|
217
|
+
for (const menu of ruolo.menu)
|
|
218
|
+
addGrant(menu);
|
|
219
|
+
}
|
|
220
|
+
return Array.from(grantsMap.values());
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* API legacy per salvare grant dalla struttura storica menu/gruppi.
|
|
224
|
+
* Sostituisce tutti i grant diretti dell'utente; per le nuove integrazioni preferire `assignPermissionsToUser`.
|
|
225
|
+
*/
|
|
44
226
|
addAbilitazioni(codiceUtente, menuAbilitazioni) {
|
|
45
227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
-
const deleteQuery = `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`;
|
|
47
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, deleteQuery, [codiceUtente]);
|
|
48
228
|
const abilitazioniToInsert = menuAbilitazioni
|
|
49
|
-
.flatMap(menuGrp => menuGrp.menu)
|
|
229
|
+
.flatMap(menuGrp => { var _a; return (_a = menuGrp.menu) !== null && _a !== void 0 ? _a : []; })
|
|
50
230
|
.filter(menu => menu.flgChk)
|
|
51
231
|
.map(menu => [codiceUtente, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
52
232
|
const insertQuery = `UPDATE OR INSERT INTO ABILITAZIONI (CODUTE, CODMNU, TIPABI) VALUES (?, ?, ?)`;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
233
|
+
// Delete + insert atomici: un errore a metà non lascia l'utente senza abilitazioni.
|
|
234
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
235
|
+
{ query: `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`, params: [codiceUtente] },
|
|
236
|
+
...abilitazioniToInsert.map(params => ({ query: insertQuery, params })),
|
|
237
|
+
]);
|
|
56
238
|
});
|
|
57
239
|
}
|
|
240
|
+
/** Rimuove tutti i grant diretti, senza toccare ruoli o menu ereditati dai ruoli. */
|
|
58
241
|
resetAbilitazioni(codiceUtente) {
|
|
59
242
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
243
|
const query = "DELETE FROM ABILITAZIONI WHERE CODUTE = ?";
|
|
61
244
|
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, query, [codiceUtente]);
|
|
62
245
|
});
|
|
63
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Crea o aggiorna un ruolo. In aggiornamento la lista `role.menu` sostituisce integralmente i menu del ruolo.
|
|
249
|
+
* Validare i codici menu nel chiamante quando si usano dati non provenienti dalla console o dalle API Accessi.
|
|
250
|
+
*/
|
|
64
251
|
updateOrInsertRole(role_1) {
|
|
65
252
|
return __awaiter(this, arguments, void 0, function* (role, codiceRuolo = null) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
253
|
+
// Ruolo, sostituzione menu e inserimenti in un'unica transazione: niente ruoli senza menu in caso di errore.
|
|
254
|
+
yield Orm_1.Orm.withTransaction(this.accessiOptions.databaseOptions, (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
255
|
+
var _a;
|
|
256
|
+
let resolvedCodiceRuolo = codiceRuolo;
|
|
257
|
+
if (resolvedCodiceRuolo == null) {
|
|
258
|
+
const createdRoleResult = yield Orm_1.Orm.transactionQuery(transaction, `INSERT INTO RUOLI (DESRUO) VALUES (?) RETURNING CODRUO`, [role.descrizioneRuolo]);
|
|
259
|
+
const createdRole = (Array.isArray(createdRoleResult) ? createdRoleResult[0] : createdRoleResult);
|
|
260
|
+
const rawCodiceRuolo = (_a = createdRole === null || createdRole === void 0 ? void 0 : createdRole.CODRUO) !== null && _a !== void 0 ? _a : createdRole === null || createdRole === void 0 ? void 0 : createdRole.codruo;
|
|
261
|
+
const parsedCodiceRuolo = typeof rawCodiceRuolo === 'number'
|
|
262
|
+
? rawCodiceRuolo
|
|
263
|
+
: Number.parseInt(`${rawCodiceRuolo !== null && rawCodiceRuolo !== void 0 ? rawCodiceRuolo : ''}`, 10);
|
|
264
|
+
if (Number.isNaN(parsedCodiceRuolo)) {
|
|
265
|
+
throw new Error('Creazione ruolo non riuscita: impossibile recuperare CODRUO.');
|
|
266
|
+
}
|
|
267
|
+
resolvedCodiceRuolo = parsedCodiceRuolo;
|
|
78
268
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
throw new Error('Operazione ruolo non riuscita: codice ruolo non valorizzato.');
|
|
91
|
-
}
|
|
92
|
-
let createRoleMenuQuery = `INSERT INTO RUOLI_MNU (CODRUO, CODMNU, TIPABI) VALUES (?, ?, ?)`;
|
|
93
|
-
for (let menu of role.menu) {
|
|
94
|
-
yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, createRoleMenuQuery, [codiceRuolo, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
95
|
-
}
|
|
269
|
+
else {
|
|
270
|
+
yield Orm_1.Orm.transactionQuery(transaction, `UPDATE RUOLI SET DESRUO = ? WHERE CODRUO = ?`, [role.descrizioneRuolo, resolvedCodiceRuolo]);
|
|
271
|
+
yield Orm_1.Orm.transactionQuery(transaction, `DELETE FROM RUOLI_MNU WHERE CODRUO = ?`, [resolvedCodiceRuolo]);
|
|
272
|
+
}
|
|
273
|
+
if (resolvedCodiceRuolo === null) {
|
|
274
|
+
throw new Error('Operazione ruolo non riuscita: codice ruolo non valorizzato.');
|
|
275
|
+
}
|
|
276
|
+
for (const menu of role.menu) {
|
|
277
|
+
yield Orm_1.Orm.transactionQuery(transaction, `INSERT INTO RUOLI_MNU (CODRUO, CODMNU, TIPABI) VALUES (?, ?, ?)`, [resolvedCodiceRuolo, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
278
|
+
}
|
|
279
|
+
}));
|
|
96
280
|
});
|
|
97
281
|
}
|
|
282
|
+
/** Restituisce il catalogo ruoli con ogni associazione menu e livello, inclusi ruoli senza menu. */
|
|
98
283
|
getRolesWithMenus() {
|
|
99
284
|
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
const query = `
|
|
101
|
-
SELECT
|
|
102
|
-
R.CODRUO AS codice_ruolo,
|
|
103
|
-
R.DESRUO AS descrizione_ruolo,
|
|
104
|
-
M.CODMNU AS codice_menu,
|
|
105
|
-
M.DESMNU AS descrizione_menu,
|
|
106
|
-
M.NOTE AS note,
|
|
107
|
-
RM.TIPABI AS tipo_abilitazione
|
|
108
|
-
FROM RUOLI R
|
|
109
|
-
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
110
|
-
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU
|
|
111
|
-
ORDER BY R.CODRUO, M.CODMNU
|
|
285
|
+
const query = `
|
|
286
|
+
SELECT
|
|
287
|
+
R.CODRUO AS codice_ruolo,
|
|
288
|
+
R.DESRUO AS descrizione_ruolo,
|
|
289
|
+
M.CODMNU AS codice_menu,
|
|
290
|
+
M.DESMNU AS descrizione_menu,
|
|
291
|
+
M.NOTE AS note,
|
|
292
|
+
RM.TIPABI AS tipo_abilitazione
|
|
293
|
+
FROM RUOLI R
|
|
294
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
295
|
+
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU
|
|
296
|
+
ORDER BY R.CODRUO, M.CODMNU
|
|
112
297
|
`;
|
|
113
|
-
|
|
114
|
-
|
|
298
|
+
const result = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []))
|
|
299
|
+
.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
115
300
|
const ruoliMap = new Map();
|
|
116
301
|
for (const row of result) {
|
|
117
|
-
const
|
|
302
|
+
const codiceRuolo = Number(row.codiceRuolo);
|
|
303
|
+
const descrizioneRuolo = typeof row.descrizioneRuolo === 'string' ? row.descrizioneRuolo.trim() : '';
|
|
304
|
+
const codiceMenu = typeof row.codiceMenu === 'string' ? row.codiceMenu : undefined;
|
|
305
|
+
const rawTipoAbilitazione = row.tipoAbilitazione;
|
|
118
306
|
if (!ruoliMap.has(codiceRuolo)) {
|
|
119
307
|
ruoliMap.set(codiceRuolo, {
|
|
120
308
|
codiceRuolo,
|
|
121
|
-
descrizioneRuolo
|
|
309
|
+
descrizioneRuolo,
|
|
122
310
|
menu: []
|
|
123
311
|
});
|
|
124
312
|
}
|
|
125
|
-
const abilitationValue = typeof
|
|
126
|
-
?
|
|
127
|
-
: Number.parseInt(`${
|
|
313
|
+
const abilitationValue = typeof rawTipoAbilitazione === 'number'
|
|
314
|
+
? rawTipoAbilitazione
|
|
315
|
+
: Number.parseInt(`${rawTipoAbilitazione !== null && rawTipoAbilitazione !== void 0 ? rawTipoAbilitazione : ''}`, 10);
|
|
128
316
|
if (!codiceMenu || Number.isNaN(abilitationValue) || abilitationValue <= Dtos_1.TipoAbilitazione.NESSUNA) {
|
|
129
317
|
continue;
|
|
130
318
|
}
|
|
131
319
|
ruoliMap.get(codiceRuolo).menu.push({
|
|
132
|
-
codiceRuolo
|
|
133
|
-
codiceMenu
|
|
320
|
+
codiceRuolo,
|
|
321
|
+
codiceMenu,
|
|
134
322
|
tipoAbilitazione: abilitationValue,
|
|
135
323
|
});
|
|
136
324
|
}
|
|
137
325
|
return Array.from(ruoliMap.values());
|
|
138
326
|
});
|
|
139
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Sostituisce l'intera lista di ruoli dell'utente con codici univoci e verificati.
|
|
330
|
+
* Non modifica i grant diretti: il calcolo effettivo li unisce in `getUserRolesAndGrants`.
|
|
331
|
+
*/
|
|
140
332
|
assignRolesToUser(codiceUtente, roles) {
|
|
141
333
|
return __awaiter(this, void 0, void 0, function* () {
|
|
142
334
|
const userExistsQuery = `SELECT COUNT(*) FROM UTENTI WHERE CODUTE = ?`;
|
|
143
335
|
let result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, userExistsQuery, [codiceUtente]);
|
|
144
|
-
if (result
|
|
336
|
+
if (this.getCountFromResult(result) === 0) {
|
|
145
337
|
throw new Error(`L'utente con codice ${codiceUtente} non esiste.`);
|
|
146
338
|
}
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
339
|
+
const normalizedRoles = Array.from(new Set(roles
|
|
340
|
+
.map((role) => Number.parseInt(`${role !== null && role !== void 0 ? role : ''}`, 10))
|
|
341
|
+
.filter((role) => Number.isInteger(role) && role > 0)));
|
|
342
|
+
const queriesWithParams = [
|
|
343
|
+
{ query: `DELETE FROM UTENTI_RUOLI WHERE CODUTE = ?`, params: [codiceUtente] },
|
|
344
|
+
...normalizedRoles.map((codiceRuolo) => ({
|
|
345
|
+
query: `INSERT INTO UTENTI_RUOLI (CODUTE, CODRUO) VALUES (?, ?)`,
|
|
346
|
+
params: [codiceUtente, codiceRuolo],
|
|
347
|
+
})),
|
|
348
|
+
];
|
|
349
|
+
if (normalizedRoles.length > 0) {
|
|
350
|
+
// Un'unica query IN invece di N count: stessa validazione, meno round-trip.
|
|
351
|
+
const placeholders = normalizedRoles.map(() => '?').join(', ');
|
|
352
|
+
const existingRolesResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODRUO FROM RUOLI WHERE CODRUO IN (${placeholders})`, normalizedRoles);
|
|
353
|
+
const existingRoles = this.extractIntegerColumn(existingRolesResult, 'CODRUO');
|
|
354
|
+
const missingRole = normalizedRoles.find((codiceRuolo) => !existingRoles.has(codiceRuolo));
|
|
355
|
+
if (missingRole !== undefined) {
|
|
356
|
+
throw new Error(`Il ruolo con codice ${missingRole} non esiste.`);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queriesWithParams);
|
|
360
|
+
const assignedRolesResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT COUNT(*) FROM UTENTI_RUOLI WHERE CODUTE = ?`, [codiceUtente]);
|
|
361
|
+
const assignedRolesCount = this.getCountFromResult(assignedRolesResult);
|
|
362
|
+
if (assignedRolesCount !== normalizedRoles.length) {
|
|
363
|
+
throw new Error(`Persistenza ruoli non coerente per utente ${codiceUtente}: attesi ${normalizedRoles.length}, trovati ${assignedRolesCount}.`);
|
|
152
364
|
}
|
|
153
365
|
});
|
|
154
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Sostituisce tutti i grant diretti dell'utente. I ruoli rimangono invariati e i loro grant sono aggiunti
|
|
369
|
+
* solo nel risultato effettivo; per lo stesso menu vale il livello massimo tra diretto e ruoli.
|
|
370
|
+
*/
|
|
155
371
|
assignPermissionsToUser(codiceUtente, permissions) {
|
|
156
372
|
return __awaiter(this, void 0, void 0, function* () {
|
|
157
373
|
const userExistsQuery = `SELECT COUNT(*) FROM UTENTI WHERE CODUTE = ?`;
|
|
158
374
|
let result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, userExistsQuery, [codiceUtente]);
|
|
159
|
-
if (result
|
|
375
|
+
if (this.getCountFromResult(result) === 0) {
|
|
160
376
|
throw new Error(`L'utente con codice ${codiceUtente} non esiste.`);
|
|
161
377
|
}
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
378
|
+
const normalizedPermissions = Array.from(new Map(permissions
|
|
379
|
+
.map((permission) => {
|
|
380
|
+
var _a, _b;
|
|
381
|
+
return ({
|
|
382
|
+
codiceMenu: `${(_a = permission === null || permission === void 0 ? void 0 : permission.codiceMenu) !== null && _a !== void 0 ? _a : ''}`.trim(),
|
|
383
|
+
tipoAbilitazione: Number.parseInt(`${(_b = permission === null || permission === void 0 ? void 0 : permission.tipoAbilitazione) !== null && _b !== void 0 ? _b : ''}`, 10),
|
|
384
|
+
});
|
|
385
|
+
})
|
|
386
|
+
.filter((permission) => permission.codiceMenu.length > 0 && Number.isInteger(permission.tipoAbilitazione))
|
|
387
|
+
.map((permission) => [permission.codiceMenu, permission])).values());
|
|
388
|
+
const queriesWithParams = [
|
|
389
|
+
{ query: `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`, params: [codiceUtente] },
|
|
390
|
+
...normalizedPermissions.map((permission) => ({
|
|
391
|
+
query: `INSERT INTO ABILITAZIONI (CODUTE, CODMNU, TIPABI) VALUES (?, ?, ?)`,
|
|
392
|
+
params: [codiceUtente, permission.codiceMenu, permission.tipoAbilitazione],
|
|
393
|
+
})),
|
|
394
|
+
];
|
|
395
|
+
if (normalizedPermissions.length > 0) {
|
|
396
|
+
// Un'unica query IN invece di N count: stessa validazione, meno round-trip.
|
|
397
|
+
const menuCodes = normalizedPermissions.map((permission) => permission.codiceMenu);
|
|
398
|
+
const placeholders = menuCodes.map(() => '?').join(', ');
|
|
399
|
+
const existingMenusResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODMNU FROM MENU WHERE CODMNU IN (${placeholders})`, menuCodes);
|
|
400
|
+
const existingMenus = new Set(existingMenusResult.map((row) => { var _a, _b; return String((_b = (_a = row.CODMNU) !== null && _a !== void 0 ? _a : row.codmnu) !== null && _b !== void 0 ? _b : ''); }));
|
|
401
|
+
const missingMenu = menuCodes.find((codiceMenu) => !existingMenus.has(codiceMenu));
|
|
402
|
+
if (missingMenu !== undefined) {
|
|
403
|
+
throw new Error(`Il menu con codice ${missingMenu} non esiste.`);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queriesWithParams);
|
|
407
|
+
const assignedPermissionsResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT COUNT(*) FROM ABILITAZIONI WHERE CODUTE = ?`, [codiceUtente]);
|
|
408
|
+
const assignedPermissionsCount = this.getCountFromResult(assignedPermissionsResult);
|
|
409
|
+
if (assignedPermissionsCount !== normalizedPermissions.length) {
|
|
410
|
+
throw new Error(`Persistenza abilitazioni non coerente per utente ${codiceUtente}: attese ${normalizedPermissions.length}, trovate ${assignedPermissionsCount}.`);
|
|
167
411
|
}
|
|
168
412
|
});
|
|
169
413
|
}
|
|
414
|
+
/** Elimina fisicamente ruolo, associazioni menu e assegnazioni utente. Operazione amministrativa irreversibile. */
|
|
170
415
|
deleteRole(codiceRuolo) {
|
|
171
416
|
return __awaiter(this, void 0, void 0, function* () {
|
|
172
417
|
const existsQuery = `SELECT COUNT(*) FROM RUOLI WHERE CODRUO = ?`;
|
|
173
|
-
|
|
174
|
-
if (result
|
|
418
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, existsQuery, [codiceRuolo]);
|
|
419
|
+
if (this.getCountFromResult(result) === 0) {
|
|
175
420
|
throw new Error(`Il ruolo con codice ${codiceRuolo} non esiste.`);
|
|
176
421
|
}
|
|
177
|
-
|
|
178
|
-
yield Orm_1.Orm.
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
M.
|
|
194
|
-
M.
|
|
195
|
-
|
|
196
|
-
M.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
422
|
+
// Le tre delete sono atomiche: nessun ruolo orfano se una fallisce.
|
|
423
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
424
|
+
{ query: `DELETE FROM RUOLI_MNU WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
425
|
+
{ query: `DELETE FROM UTENTI_RUOLI WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
426
|
+
{ query: `DELETE FROM RUOLI WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
427
|
+
]);
|
|
428
|
+
});
|
|
429
|
+
}
|
|
430
|
+
/** Restituisce solo menu abilitati; per il catalogo amministrativo usare `getGroupsWithMenus(true)`. */
|
|
431
|
+
getMenus(scope) {
|
|
432
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
433
|
+
const scopeCodes = yield this.resolveScopeCodes(scope);
|
|
434
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
435
|
+
const query = `
|
|
436
|
+
SELECT
|
|
437
|
+
M.CODMNU AS codice_menu,
|
|
438
|
+
M.DESMNU AS descrizione_menu,
|
|
439
|
+
M.CODGRP AS codice_gruppo,
|
|
440
|
+
G.DESGRP AS descrizione_gruppo,
|
|
441
|
+
M.ICON AS icona,
|
|
442
|
+
M.CODTIP AS tipo,
|
|
443
|
+
M.PAGINA AS pagina,
|
|
444
|
+
M.NOTE AS note,
|
|
445
|
+
G.ORDINE AS ordine_gruppo,
|
|
446
|
+
M.ORDINE AS ordine_menu
|
|
447
|
+
FROM MENU M
|
|
448
|
+
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
449
|
+
WHERE M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1${scopeFilter.sql}
|
|
450
|
+
ORDER BY G.CODGRP, M.CODMNU
|
|
201
451
|
`;
|
|
202
|
-
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query,
|
|
452
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, scopeFilter.params);
|
|
203
453
|
return result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
204
454
|
});
|
|
205
455
|
}
|
|
456
|
+
/**
|
|
457
|
+
* Restituisce il catalogo ordinato per gruppo e menu. `includeDisabled` e riservato a console e amministrazione:
|
|
458
|
+
* i flussi applicativi di autorizzazione devono usare il comportamento predefinito, che nasconde voci disabilitate.
|
|
459
|
+
*/
|
|
206
460
|
getGroupsWithMenus() {
|
|
207
|
-
return __awaiter(this, arguments, void 0, function* (includeDisabled = false) {
|
|
208
|
-
const
|
|
461
|
+
return __awaiter(this, arguments, void 0, function* (includeDisabled = false, scope) {
|
|
462
|
+
const scopeCodes = yield this.resolveScopeCodes(scope);
|
|
463
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
464
|
+
let filtersClause = includeDisabled
|
|
209
465
|
? ''
|
|
210
466
|
: 'WHERE M.FLGENABLED = 1 AND (G.FLGENABLED IS NULL OR G.FLGENABLED = 1)';
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
M.
|
|
218
|
-
M.
|
|
219
|
-
|
|
220
|
-
M.
|
|
221
|
-
|
|
222
|
-
M.
|
|
223
|
-
M.
|
|
224
|
-
G.
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
467
|
+
if (scopeFilter.sql) {
|
|
468
|
+
filtersClause = filtersClause ? `${filtersClause}${scopeFilter.sql}` : `WHERE 1 = 1${scopeFilter.sql}`;
|
|
469
|
+
}
|
|
470
|
+
const query = `
|
|
471
|
+
SELECT
|
|
472
|
+
M.CODMNU AS codice_menu,
|
|
473
|
+
M.DESMNU AS descrizione_menu,
|
|
474
|
+
M.CODGRP AS codice_gruppo,
|
|
475
|
+
G.DESGRP AS descrizione_gruppo,
|
|
476
|
+
M.ICON AS icona,
|
|
477
|
+
M.CODTIP AS tipo,
|
|
478
|
+
M.PAGINA AS pagina,
|
|
479
|
+
M.NOTE AS note,
|
|
480
|
+
G.ORDINE AS ordine_gruppo,
|
|
481
|
+
M.ORDINE as ordine_menu,
|
|
482
|
+
M.FLGENABLED AS menu_enabled,
|
|
483
|
+
G.FLGENABLED AS group_enabled
|
|
484
|
+
FROM MENU M
|
|
485
|
+
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
486
|
+
${filtersClause}
|
|
487
|
+
ORDER BY G.CODGRP, M.CODMNU
|
|
229
488
|
`;
|
|
230
|
-
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query,
|
|
489
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, scopeFilter.params);
|
|
231
490
|
const groupMap = new Map();
|
|
232
|
-
result.forEach(row => {
|
|
233
|
-
var _a, _b;
|
|
491
|
+
result.forEach((row) => {
|
|
492
|
+
var _a, _b, _c;
|
|
234
493
|
const converted = Utilities_1.RestUtilities.convertKeysToCamelCase(row);
|
|
235
|
-
const
|
|
494
|
+
const { menuEnabled, groupEnabled } = converted, menuBase = __rest(converted, ["menuEnabled", "groupEnabled"]);
|
|
236
495
|
const normalizedGroupKey = (_a = menuBase.codiceGruppo) !== null && _a !== void 0 ? _a : '__UNGROUPED__';
|
|
237
|
-
const groupEnabledFlag = groupEnabled
|
|
496
|
+
const groupEnabledFlag = groupEnabled == null ? true : Number(groupEnabled) === 1 || groupEnabled === true;
|
|
238
497
|
const menuEnabledFlag = menuEnabled === undefined ? true : Number(menuEnabled) === 1 || menuEnabled === true;
|
|
239
498
|
if (!groupMap.has(normalizedGroupKey)) {
|
|
240
499
|
groupMap.set(normalizedGroupKey, {
|
|
241
500
|
codiceGruppo: (_b = menuBase.codiceGruppo) !== null && _b !== void 0 ? _b : normalizedGroupKey,
|
|
242
|
-
descrizioneGruppo: menuBase.descrizioneGruppo,
|
|
501
|
+
descrizioneGruppo: (_c = menuBase.descrizioneGruppo) !== null && _c !== void 0 ? _c : '',
|
|
243
502
|
ordineGruppo: menuBase.ordineGruppo,
|
|
244
503
|
enabled: groupEnabledFlag,
|
|
245
504
|
menus: [],
|
|
@@ -258,107 +517,421 @@ let PermissionService = class PermissionService {
|
|
|
258
517
|
return groupsArray;
|
|
259
518
|
});
|
|
260
519
|
}
|
|
261
|
-
|
|
520
|
+
// -----------------------------------------------------------------------
|
|
521
|
+
// Cataloghi di configurazione: CRUD di menu, gruppi, tipi menu.
|
|
522
|
+
// `table` e `column` sono sempre costanti interne, mai input utente: i
|
|
523
|
+
// valori sono parametrizzati, quindi non esiste superficie di SQL injection.
|
|
524
|
+
// -----------------------------------------------------------------------
|
|
525
|
+
countWhere(table, column, value) {
|
|
526
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
527
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT COUNT(*) FROM ${table} WHERE ${column} = ?`, [value]);
|
|
528
|
+
return this.getCountFromResult(result);
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
assertMenuGroupExists(codiceGruppo) {
|
|
532
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
533
|
+
if ((yield this.countWhere('MENU_GRP', 'CODGRP', codiceGruppo)) === 0) {
|
|
534
|
+
throw new common_1.BadRequestException(`Il gruppo menu ${codiceGruppo} non esiste.`);
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
assertMenuTypeExists(codiceTipo) {
|
|
539
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
540
|
+
if ((yield this.countWhere('MENU_TIPI', 'CODTIP', codiceTipo)) === 0) {
|
|
541
|
+
throw new common_1.BadRequestException(`Il tipo menu ${codiceTipo} non esiste.`);
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
/** Catalogo completo dei tipi menu, usato dagli editor di configurazione. */
|
|
546
|
+
getMenuTypes() {
|
|
547
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
548
|
+
const query = `SELECT CODTIP AS codice_tipo, DESTIP AS descrizione_tipo FROM MENU_TIPI ORDER BY CODTIP`;
|
|
549
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []);
|
|
550
|
+
return result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
createMenuType(input) {
|
|
554
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
555
|
+
var _a;
|
|
556
|
+
if ((yield this.countWhere('MENU_TIPI', 'CODTIP', input.codiceTipo)) > 0) {
|
|
557
|
+
throw new common_1.BadRequestException(`Il tipo menu ${input.codiceTipo} esiste gia.`);
|
|
558
|
+
}
|
|
559
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `INSERT INTO MENU_TIPI (CODTIP, DESTIP) VALUES (?, ?)`, [input.codiceTipo, (_a = input.descrizioneTipo) !== null && _a !== void 0 ? _a : null]);
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
updateMenuType(codiceTipo, input) {
|
|
563
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
564
|
+
yield this.assertMenuTypeExists(codiceTipo);
|
|
565
|
+
if (input.descrizioneTipo === undefined)
|
|
566
|
+
return;
|
|
567
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU_TIPI SET DESTIP = ? WHERE CODTIP = ?`, [input.descrizioneTipo, codiceTipo]);
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
/** Elimina un tipo menu solo se nessun menu lo utilizza (la FK lo impedirebbe comunque). */
|
|
571
|
+
deleteMenuType(codiceTipo) {
|
|
572
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
573
|
+
yield this.assertMenuTypeExists(codiceTipo);
|
|
574
|
+
const used = yield this.countWhere('MENU', 'CODTIP', codiceTipo);
|
|
575
|
+
if (used > 0) {
|
|
576
|
+
throw new common_1.BadRequestException(`Impossibile eliminare il tipo ${codiceTipo}: ${used} menu lo utilizzano.`);
|
|
577
|
+
}
|
|
578
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `DELETE FROM MENU_TIPI WHERE CODTIP = ?`, [codiceTipo]);
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
createMenuGroup(input) {
|
|
582
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
583
|
+
var _a, _b;
|
|
584
|
+
if ((yield this.countWhere('MENU_GRP', 'CODGRP', input.codiceGruppo)) > 0) {
|
|
585
|
+
throw new common_1.BadRequestException(`Il gruppo menu ${input.codiceGruppo} esiste gia.`);
|
|
586
|
+
}
|
|
587
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `INSERT INTO MENU_GRP (CODGRP, DESGRP, FLGENABLED, ORDINE) VALUES (?, ?, ?, ?)`, [
|
|
588
|
+
input.codiceGruppo,
|
|
589
|
+
(_a = input.descrizioneGruppo) !== null && _a !== void 0 ? _a : null,
|
|
590
|
+
input.enabled === false ? 0 : 1,
|
|
591
|
+
(_b = input.ordineGruppo) !== null && _b !== void 0 ? _b : 0,
|
|
592
|
+
]);
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
updateMenuGroup(codiceGruppo, input) {
|
|
262
596
|
return __awaiter(this, void 0, void 0, function* () {
|
|
597
|
+
yield this.assertMenuGroupExists(codiceGruppo);
|
|
598
|
+
const sets = [];
|
|
599
|
+
const params = [];
|
|
600
|
+
if (input.descrizioneGruppo !== undefined) {
|
|
601
|
+
sets.push('DESGRP = ?');
|
|
602
|
+
params.push(input.descrizioneGruppo);
|
|
603
|
+
}
|
|
604
|
+
if (input.ordineGruppo !== undefined) {
|
|
605
|
+
sets.push('ORDINE = ?');
|
|
606
|
+
params.push(input.ordineGruppo);
|
|
607
|
+
}
|
|
608
|
+
if (input.enabled !== undefined) {
|
|
609
|
+
sets.push('FLGENABLED = ?');
|
|
610
|
+
params.push(input.enabled ? 1 : 0);
|
|
611
|
+
}
|
|
612
|
+
if (sets.length === 0)
|
|
613
|
+
return;
|
|
614
|
+
params.push(codiceGruppo);
|
|
615
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU_GRP SET ${sets.join(', ')} WHERE CODGRP = ?`, params);
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
/** Elimina un gruppo solo se non contiene menu, per non lasciare menu orfani. */
|
|
619
|
+
deleteMenuGroup(codiceGruppo) {
|
|
620
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
621
|
+
yield this.assertMenuGroupExists(codiceGruppo);
|
|
622
|
+
const used = yield this.countWhere('MENU', 'CODGRP', codiceGruppo);
|
|
623
|
+
if (used > 0) {
|
|
624
|
+
throw new common_1.BadRequestException(`Impossibile eliminare il gruppo ${codiceGruppo}: contiene ${used} menu.`);
|
|
625
|
+
}
|
|
626
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `DELETE FROM MENU_GRP WHERE CODGRP = ?`, [codiceGruppo]);
|
|
627
|
+
});
|
|
628
|
+
}
|
|
629
|
+
createMenu(input) {
|
|
630
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
631
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
632
|
+
if ((yield this.countWhere('MENU', 'CODMNU', input.codiceMenu)) > 0) {
|
|
633
|
+
throw new common_1.BadRequestException(`Il menu ${input.codiceMenu} esiste gia.`);
|
|
634
|
+
}
|
|
635
|
+
yield this.assertMenuGroupExists(input.codiceGruppo);
|
|
636
|
+
if (input.tipo)
|
|
637
|
+
yield this.assertMenuTypeExists(input.tipo);
|
|
638
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `INSERT INTO MENU (CODMNU, DESMNU, CODGRP, FLGENABLED, ICON, ORDINE, CODTIP, PAGINA, RIFMENU, NOTE)
|
|
639
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
640
|
+
input.codiceMenu,
|
|
641
|
+
(_a = input.descrizioneMenu) !== null && _a !== void 0 ? _a : null,
|
|
642
|
+
input.codiceGruppo,
|
|
643
|
+
input.enabled === false ? 0 : 1,
|
|
644
|
+
(_b = input.icona) !== null && _b !== void 0 ? _b : null,
|
|
645
|
+
(_c = input.ordineMenu) !== null && _c !== void 0 ? _c : null,
|
|
646
|
+
(_d = input.tipo) !== null && _d !== void 0 ? _d : null,
|
|
647
|
+
(_e = input.pagina) !== null && _e !== void 0 ? _e : null,
|
|
648
|
+
(_f = input.rifMenu) !== null && _f !== void 0 ? _f : null,
|
|
649
|
+
(_g = input.note) !== null && _g !== void 0 ? _g : null,
|
|
650
|
+
]);
|
|
651
|
+
});
|
|
652
|
+
}
|
|
653
|
+
updateMenu(codiceMenu, input) {
|
|
654
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
655
|
+
if ((yield this.countWhere('MENU', 'CODMNU', codiceMenu)) === 0) {
|
|
656
|
+
throw new common_1.BadRequestException(`Il menu ${codiceMenu} non esiste.`);
|
|
657
|
+
}
|
|
658
|
+
if (input.codiceGruppo !== undefined)
|
|
659
|
+
yield this.assertMenuGroupExists(input.codiceGruppo);
|
|
660
|
+
if (input.tipo)
|
|
661
|
+
yield this.assertMenuTypeExists(input.tipo);
|
|
662
|
+
const sets = [];
|
|
663
|
+
const params = [];
|
|
664
|
+
if (input.descrizioneMenu !== undefined) {
|
|
665
|
+
sets.push('DESMNU = ?');
|
|
666
|
+
params.push(input.descrizioneMenu);
|
|
667
|
+
}
|
|
668
|
+
if (input.codiceGruppo !== undefined) {
|
|
669
|
+
sets.push('CODGRP = ?');
|
|
670
|
+
params.push(input.codiceGruppo);
|
|
671
|
+
}
|
|
672
|
+
if (input.tipo !== undefined) {
|
|
673
|
+
sets.push('CODTIP = ?');
|
|
674
|
+
params.push(input.tipo || null);
|
|
675
|
+
}
|
|
676
|
+
if (input.icona !== undefined) {
|
|
677
|
+
sets.push('ICON = ?');
|
|
678
|
+
params.push(input.icona);
|
|
679
|
+
}
|
|
680
|
+
if (input.pagina !== undefined) {
|
|
681
|
+
sets.push('PAGINA = ?');
|
|
682
|
+
params.push(input.pagina);
|
|
683
|
+
}
|
|
684
|
+
if (input.ordineMenu !== undefined) {
|
|
685
|
+
sets.push('ORDINE = ?');
|
|
686
|
+
params.push(input.ordineMenu);
|
|
687
|
+
}
|
|
688
|
+
if (input.enabled !== undefined) {
|
|
689
|
+
sets.push('FLGENABLED = ?');
|
|
690
|
+
params.push(input.enabled ? 1 : 0);
|
|
691
|
+
}
|
|
692
|
+
if (input.rifMenu !== undefined) {
|
|
693
|
+
sets.push('RIFMENU = ?');
|
|
694
|
+
params.push(input.rifMenu);
|
|
695
|
+
}
|
|
696
|
+
if (input.note !== undefined) {
|
|
697
|
+
sets.push('NOTE = ?');
|
|
698
|
+
params.push(input.note);
|
|
699
|
+
}
|
|
700
|
+
if (sets.length === 0)
|
|
701
|
+
return;
|
|
702
|
+
params.push(codiceMenu);
|
|
703
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU SET ${sets.join(', ')} WHERE CODMNU = ?`, params);
|
|
704
|
+
});
|
|
705
|
+
}
|
|
706
|
+
/** Elimina menu, grant utente e associazioni ruolo in un'unica transazione. */
|
|
707
|
+
deleteMenu(codiceMenu) {
|
|
708
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
709
|
+
if ((yield this.countWhere('MENU', 'CODMNU', codiceMenu)) === 0) {
|
|
710
|
+
throw new common_1.BadRequestException(`Il menu ${codiceMenu} non esiste.`);
|
|
711
|
+
}
|
|
712
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
713
|
+
{ query: `DELETE FROM ABILITAZIONI WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
714
|
+
{ query: `DELETE FROM RUOLI_MNU WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
715
|
+
{ query: `DELETE FROM MENU WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
716
|
+
]);
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* Calcola l'autorizzazione effettiva: grant diretti e grant dei ruoli sono uniti per codice menu
|
|
721
|
+
* prendendo il livello massimo. I superutenti ricevono tutti i menu attivi.
|
|
722
|
+
*/
|
|
723
|
+
getUserRolesAndGrants(codiceUtente, scope) {
|
|
724
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
725
|
+
var _a;
|
|
726
|
+
const scopeCodes = yield this.resolveScopeCodes(scope);
|
|
263
727
|
const codiceUtenteQuery = "SELECT FLGSUPER as flag_super FROM UTENTI_CONFIG WHERE CODUTE = ?";
|
|
264
|
-
|
|
728
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, codiceUtenteQuery, [codiceUtente]);
|
|
265
729
|
if (!result || result.length == 0)
|
|
266
730
|
throw new Error("Nessun utente trovato con il codice utente " + codiceUtente);
|
|
267
|
-
|
|
268
|
-
const
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
M.ICON AS icona,
|
|
299
|
-
M.CODTIP AS tipo,
|
|
300
|
-
M.PAGINA AS pagina,
|
|
301
|
-
M.NOTE AS note
|
|
302
|
-
FROM ABILITAZIONI A
|
|
303
|
-
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
304
|
-
INNER JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
305
|
-
WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND G.FLGENABLED = 1
|
|
306
|
-
`;
|
|
307
|
-
abilitazioni = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryAbilitazioni, [codiceUtente])
|
|
308
|
-
.then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase)));
|
|
309
|
-
const queryRuoli = `
|
|
310
|
-
SELECT
|
|
311
|
-
R.CODRUO AS codice_ruolo,
|
|
312
|
-
R.DESRUO AS descrizione_ruolo,
|
|
313
|
-
RM.CODMNU AS codice_menu,
|
|
314
|
-
RM.TIPABI AS tipo_abilitazione,
|
|
315
|
-
M.DESMNU AS descrizione_menu,
|
|
316
|
-
M.NOTE AS note
|
|
317
|
-
FROM UTENTI_RUOLI RU
|
|
318
|
-
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
319
|
-
INNER JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
320
|
-
INNER JOIN MENU M ON RM.CODMNU = M.CODMNU
|
|
321
|
-
INNER JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
322
|
-
WHERE RU.CODUTE = ? AND M.FLGENABLED = 1 AND G.FLGENABLED = 1
|
|
323
|
-
`;
|
|
324
|
-
let ruoliResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryRuoli, [codiceUtente]);
|
|
325
|
-
ruoliResult = ruoliResult.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
326
|
-
const ruoliMap = new Map();
|
|
327
|
-
for (const row of ruoliResult) {
|
|
328
|
-
const { codiceRuolo, descrizioneRuolo, codiceMenu, descrizioneMenu, tipoAbilitazione } = row;
|
|
329
|
-
if (!ruoliMap.has(codiceRuolo)) {
|
|
330
|
-
ruoliMap.set(codiceRuolo, {
|
|
331
|
-
codiceRuolo,
|
|
332
|
-
descrizioneRuolo: descrizioneRuolo === null || descrizioneRuolo === void 0 ? void 0 : descrizioneRuolo.trim(),
|
|
333
|
-
menu: []
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
if (codiceMenu) {
|
|
337
|
-
ruoliMap.get(codiceRuolo).menu.push({
|
|
338
|
-
codiceRuolo: codiceRuolo,
|
|
339
|
-
codiceMenu: codiceMenu.trim(),
|
|
340
|
-
tipoAbilitazione,
|
|
341
|
-
});
|
|
342
|
-
}
|
|
731
|
+
const isSuperAdmin = this.isSuperFlag((_a = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0]) === null || _a === void 0 ? void 0 : _a.flagSuper);
|
|
732
|
+
const abilitazioni = yield this.getUserDirectPermissions(codiceUtente, scopeCodes);
|
|
733
|
+
const ruoli = yield this.getUserRoles(codiceUtente, scopeCodes);
|
|
734
|
+
const grants = this.composeGrants(abilitazioni, ruoli, isSuperAdmin, yield this.getAllActiveMenusAsGrants(scopeCodes));
|
|
735
|
+
return { abilitazioni, ruoli, grants };
|
|
736
|
+
});
|
|
737
|
+
}
|
|
738
|
+
isSuperFlag(value) {
|
|
739
|
+
return value === true || value === 1 || value === '1';
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Versione batch di `getUserRolesAndGrants`: esegue un numero costante di query per N utenti
|
|
743
|
+
* (invece di N set di query) e restituisce mappa per codice utente. Stessa composizione della
|
|
744
|
+
* lettura singola.
|
|
745
|
+
*/
|
|
746
|
+
getUsersRolesAndGrants(codiciUtente, scope) {
|
|
747
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
748
|
+
var _a, _b;
|
|
749
|
+
const scopeCodes = yield this.resolveScopeCodes(scope);
|
|
750
|
+
const scopeFilter = this.scopeFilter('M', scopeCodes);
|
|
751
|
+
const result = new Map();
|
|
752
|
+
const ids = Array.from(new Set(codiciUtente.filter((id) => Number.isInteger(id) && id > 0)));
|
|
753
|
+
if (ids.length === 0) {
|
|
754
|
+
return result;
|
|
755
|
+
}
|
|
756
|
+
const placeholders = ids.map(() => '?').join(', ');
|
|
757
|
+
const superRows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODUTE AS codice_utente, FLGSUPER AS flag_super FROM UTENTI_CONFIG WHERE CODUTE IN (${placeholders})`, ids)).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
758
|
+
const superUsers = new Set();
|
|
759
|
+
for (const row of superRows) {
|
|
760
|
+
if (this.isSuperFlag(row.flagSuper)) {
|
|
761
|
+
superUsers.add(Number(row.codiceUtente));
|
|
343
762
|
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
763
|
+
}
|
|
764
|
+
const permissionRows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT
|
|
765
|
+
A.CODUTE AS codice_utente,
|
|
766
|
+
A.CODMNU AS codice_menu,
|
|
767
|
+
A.TIPABI AS tipo_abilitazione,
|
|
768
|
+
M.DESMNU AS descrizione_menu,
|
|
769
|
+
G.DESGRP AS descrizione_gruppo,
|
|
770
|
+
G.CODGRP AS codice_gruppo,
|
|
771
|
+
M.ICON AS icona,
|
|
772
|
+
M.CODTIP AS tipo,
|
|
773
|
+
M.PAGINA AS pagina,
|
|
774
|
+
M.NOTE AS note
|
|
775
|
+
FROM ABILITAZIONI A
|
|
776
|
+
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
777
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
778
|
+
WHERE A.CODUTE IN (${placeholders}) AND M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1${scopeFilter.sql}`, [...ids, ...scopeFilter.params])).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
779
|
+
const roleRows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT
|
|
780
|
+
RU.CODUTE AS codice_utente,
|
|
781
|
+
R.CODRUO AS codice_ruolo,
|
|
782
|
+
R.DESRUO AS descrizione_ruolo,
|
|
783
|
+
CASE WHEN COALESCE(G.FLGENABLED, 1) = 1 THEN M.CODMNU END AS codice_menu,
|
|
784
|
+
RM.TIPABI AS tipo_abilitazione,
|
|
785
|
+
M.DESMNU AS descrizione_menu,
|
|
786
|
+
M.NOTE AS note
|
|
787
|
+
FROM UTENTI_RUOLI RU
|
|
788
|
+
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
789
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
790
|
+
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU AND M.FLGENABLED = 1
|
|
791
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
792
|
+
WHERE RU.CODUTE IN (${placeholders})${scopeFilter.sql}`, [...ids, ...scopeFilter.params])).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
793
|
+
const allActiveMenus = yield this.getAllActiveMenusAsGrants(scopeCodes);
|
|
794
|
+
const permissionsByUser = new Map();
|
|
795
|
+
for (const row of permissionRows) {
|
|
796
|
+
const { codiceUtente } = row, grant = __rest(row, ["codiceUtente"]);
|
|
797
|
+
const key = Number(codiceUtente);
|
|
798
|
+
const bucket = permissionsByUser.get(key);
|
|
799
|
+
if (bucket) {
|
|
800
|
+
bucket.push(grant);
|
|
801
|
+
}
|
|
802
|
+
else {
|
|
803
|
+
permissionsByUser.set(key, [grant]);
|
|
358
804
|
}
|
|
359
805
|
}
|
|
360
|
-
const
|
|
361
|
-
|
|
806
|
+
const rolesByUser = new Map();
|
|
807
|
+
for (const row of roleRows) {
|
|
808
|
+
const { codiceUtente } = row, roleRow = __rest(row, ["codiceUtente"]);
|
|
809
|
+
const key = Number(codiceUtente);
|
|
810
|
+
const bucket = rolesByUser.get(key);
|
|
811
|
+
if (bucket) {
|
|
812
|
+
bucket.push(roleRow);
|
|
813
|
+
}
|
|
814
|
+
else {
|
|
815
|
+
rolesByUser.set(key, [roleRow]);
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
for (const id of ids) {
|
|
819
|
+
const abilitazioni = (_a = permissionsByUser.get(id)) !== null && _a !== void 0 ? _a : [];
|
|
820
|
+
const ruoli = this.assembleRoles((_b = rolesByUser.get(id)) !== null && _b !== void 0 ? _b : []);
|
|
821
|
+
const isSuperAdmin = superUsers.has(id);
|
|
822
|
+
result.set(id, {
|
|
823
|
+
abilitazioni,
|
|
824
|
+
ruoli,
|
|
825
|
+
grants: this.composeGrants(abilitazioni, ruoli, isSuperAdmin, allActiveMenus),
|
|
826
|
+
});
|
|
827
|
+
}
|
|
828
|
+
return result;
|
|
829
|
+
});
|
|
830
|
+
}
|
|
831
|
+
// -----------------------------------------------------------------------
|
|
832
|
+
// Scope applicativi: catalogo e associazioni menu/scope.
|
|
833
|
+
// -----------------------------------------------------------------------
|
|
834
|
+
normalizeScopeCode(value) {
|
|
835
|
+
const code = String(value !== null && value !== void 0 ? value : '').trim().toUpperCase();
|
|
836
|
+
if (!/^[A-Z][A-Z0-9_]{0,19}$/.test(code)) {
|
|
837
|
+
throw new common_1.BadRequestException('Codice scope non valido: usa lettere maiuscole, cifre e underscore (max 20 caratteri).');
|
|
838
|
+
}
|
|
839
|
+
return code;
|
|
840
|
+
}
|
|
841
|
+
assertScopeExists(codiceScope) {
|
|
842
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
843
|
+
if ((yield this.countWhere('SCOPES', 'CODICE', codiceScope)) === 0) {
|
|
844
|
+
throw new common_1.BadRequestException(`Lo scope ${codiceScope} non esiste.`);
|
|
845
|
+
}
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
assertMenuExists(codiceMenu) {
|
|
849
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
850
|
+
if ((yield this.countWhere('MENU', 'CODMNU', codiceMenu)) === 0) {
|
|
851
|
+
throw new common_1.BadRequestException(`Il menu ${codiceMenu} non esiste.`);
|
|
852
|
+
}
|
|
853
|
+
});
|
|
854
|
+
}
|
|
855
|
+
/** Catalogo degli scope applicativi (disponibile anche ai client per le etichette). */
|
|
856
|
+
getScopes() {
|
|
857
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
858
|
+
const rows = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, 'SELECT CODICE AS codice, NOME AS nome FROM SCOPES ORDER BY CODICE', []);
|
|
859
|
+
return rows.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
860
|
+
});
|
|
861
|
+
}
|
|
862
|
+
createScope(input) {
|
|
863
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
864
|
+
const codice = this.normalizeScopeCode(input.codice);
|
|
865
|
+
if ((yield this.countWhere('SCOPES', 'CODICE', codice)) > 0) {
|
|
866
|
+
throw new common_1.BadRequestException(`Lo scope ${codice} esiste gia.`);
|
|
867
|
+
}
|
|
868
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, 'INSERT INTO SCOPES (CODICE, NOME) VALUES (?, ?)', [codice, input.nome]);
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
updateScope(codiceScope, input) {
|
|
872
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
873
|
+
const codice = this.normalizeScopeCode(codiceScope);
|
|
874
|
+
yield this.assertScopeExists(codice);
|
|
875
|
+
if (input.nome === undefined)
|
|
876
|
+
return;
|
|
877
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, 'UPDATE SCOPES SET NOME = ? WHERE CODICE = ?', [input.nome, codice]);
|
|
878
|
+
});
|
|
879
|
+
}
|
|
880
|
+
/** Elimina lo scope; le associazioni menu/scope spariscono per FK ON DELETE CASCADE. */
|
|
881
|
+
deleteScope(codiceScope) {
|
|
882
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
883
|
+
const codice = this.normalizeScopeCode(codiceScope);
|
|
884
|
+
yield this.assertScopeExists(codice);
|
|
885
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, 'DELETE FROM SCOPES WHERE CODICE = ?', [codice]);
|
|
886
|
+
});
|
|
887
|
+
}
|
|
888
|
+
/** Scope associati a un menu. */
|
|
889
|
+
getMenuScopes(codiceMenu) {
|
|
890
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
891
|
+
const code = String(codiceMenu !== null && codiceMenu !== void 0 ? codiceMenu : '').trim().toUpperCase();
|
|
892
|
+
yield this.assertMenuExists(code);
|
|
893
|
+
const rows = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, 'SELECT CODICE_SCOPE FROM MENU_SCOPES WHERE CODICE_MENU = ? ORDER BY CODICE_SCOPE', [code]);
|
|
894
|
+
return rows
|
|
895
|
+
.map((row) => { var _a, _b; return String((_b = (_a = row.CODICE_SCOPE) !== null && _a !== void 0 ? _a : row.codiceScope) !== null && _b !== void 0 ? _b : '').trim(); })
|
|
896
|
+
.filter((value) => value.length > 0);
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
/** Sostituisce in modo atomico gli scope di un menu. */
|
|
900
|
+
setMenuScopes(codiceMenu, scopes) {
|
|
901
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
902
|
+
const code = String(codiceMenu !== null && codiceMenu !== void 0 ? codiceMenu : '').trim().toUpperCase();
|
|
903
|
+
yield this.assertMenuExists(code);
|
|
904
|
+
const normalized = Array.from(new Set((scopes !== null && scopes !== void 0 ? scopes : []).map((scope) => this.normalizeScopeCode(scope))));
|
|
905
|
+
for (const scope of normalized) {
|
|
906
|
+
yield this.assertScopeExists(scope);
|
|
907
|
+
}
|
|
908
|
+
const queries = [
|
|
909
|
+
{ query: 'DELETE FROM MENU_SCOPES WHERE CODICE_MENU = ?', params: [code] },
|
|
910
|
+
...normalized.map((scope) => ({
|
|
911
|
+
query: 'INSERT INTO MENU_SCOPES (CODICE_MENU, CODICE_SCOPE) VALUES (?, ?)',
|
|
912
|
+
params: [code, scope],
|
|
913
|
+
})),
|
|
914
|
+
];
|
|
915
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queries);
|
|
916
|
+
});
|
|
917
|
+
}
|
|
918
|
+
/** Sostituisce in modo atomico i menu di uno scope (assegnazione massiva). */
|
|
919
|
+
setScopeMenus(codiceScope, menus) {
|
|
920
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
921
|
+
const scope = this.normalizeScopeCode(codiceScope);
|
|
922
|
+
yield this.assertScopeExists(scope);
|
|
923
|
+
const normalized = Array.from(new Set((menus !== null && menus !== void 0 ? menus : []).map((menu) => String(menu !== null && menu !== void 0 ? menu : '').trim().toUpperCase()).filter(Boolean)));
|
|
924
|
+
for (const menu of normalized) {
|
|
925
|
+
yield this.assertMenuExists(menu);
|
|
926
|
+
}
|
|
927
|
+
const queries = [
|
|
928
|
+
{ query: 'DELETE FROM MENU_SCOPES WHERE CODICE_SCOPE = ?', params: [scope] },
|
|
929
|
+
...normalized.map((menu) => ({
|
|
930
|
+
query: 'INSERT INTO MENU_SCOPES (CODICE_MENU, CODICE_SCOPE) VALUES (?, ?)',
|
|
931
|
+
params: [menu, scope],
|
|
932
|
+
})),
|
|
933
|
+
];
|
|
934
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queries);
|
|
362
935
|
});
|
|
363
936
|
}
|
|
364
937
|
};
|