emilsoftware-utilities 2.0.0-dev.22 → 2.0.0-dev.24
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 +182 -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.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 +26 -6
- package/dist/Orm.js +144 -40
- 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 +115 -35
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi-module/AccessiModule.d.ts +69 -0
- package/dist/accessi-module/AccessiModule.js +29 -5
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Console/accessiFetch.d.ts +7 -0
- package/dist/accessi-module/Console/accessiFetch.js +59 -0
- package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
- package/dist/accessi-module/Console/console.css +618 -0
- package/dist/accessi-module/Console/console.d.ts +1 -0
- package/dist/accessi-module/Console/console.js +3101 -0
- package/dist/accessi-module/Console/console.js.map +1 -0
- package/dist/accessi-module/Console/generated/accessiApi.d.ts +542 -0
- package/dist/accessi-module/Console/generated/accessiApi.js +517 -0
- package/dist/accessi-module/Console/generated/accessiApi.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/abilitazioneMenuIcona.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuIcona.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuNote.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuPagina.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.d.ts +12 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.js +9 -0
- package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipo.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/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/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/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/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 +27 -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/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/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 +12 -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/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/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/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/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 +93 -0
- package/dist/accessi-module/Console/generated/model/index.js +110 -0
- package/dist/accessi-module/Console/generated/model/index.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/loginRequest.d.ts +12 -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 +32 -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/publicRegisterRequestCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/publicRegisterRequestCellulare.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/registerRequestCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/registerRequestCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/registerRequestCellulare.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/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/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/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/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/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 +22 -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/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/userDtoAvatar.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/userDtoAvatar.js +9 -0
- package/dist/accessi-module/Console/generated/model/userDtoAvatar.js.map +1 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.d.ts +13 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.js +9 -0
- package/dist/accessi-module/Console/generated/model/userDtoCellulare.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 +18 -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 +348 -0
- package/dist/accessi-module/Console/help.js.map +1 -0
- package/dist/accessi-module/Console/index.html +127 -0
- package/dist/accessi-module/Console/openApiClient.d.ts +34 -0
- package/dist/accessi-module/Console/openApiClient.js +111 -0
- package/dist/accessi-module/Console/openApiClient.js.map +1 -0
- package/dist/accessi-module/Console/wiki.d.ts +52 -0
- package/dist/accessi-module/Console/wiki.js +689 -0
- package/dist/accessi-module/Console/wiki.js.map +1 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
- package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
- package/dist/accessi-module/Controllers/AuthController.d.ts +4 -1
- package/dist/accessi-module/Controllers/AuthController.js +86 -47
- package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -3
- package/dist/accessi-module/Controllers/ConfiguratorController.js +9 -9
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/EmailController.d.ts +2 -2
- package/dist/accessi-module/Controllers/EmailController.js +4 -2
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.d.ts +5 -4
- package/dist/accessi-module/Controllers/FiltriController.js +95 -5
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -1
- package/dist/accessi-module/Controllers/PermissionController.js +282 -13
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- 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 +5 -3
- package/dist/accessi-module/Controllers/UserController.js +65 -11
- 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/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +3 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +18 -0
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -1
- package/dist/accessi-module/Dtos/BaseResponse.d.ts +2 -0
- package/dist/accessi-module/Dtos/BaseResponse.js +21 -2
- package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/CatalogDtos.d.ts +66 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js +336 -0
- package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
- package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -1
- 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 +4 -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.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -1
- 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/LoginRequest.d.ts +1 -1
- package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
- package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
- package/dist/accessi-module/Dtos/LoginResponse.js +20 -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 +1 -1
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js +1 -0
- package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js +3 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
- 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/SendResetPasswordEmailRequest.js.map +1 -1
- 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/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 +13 -0
- package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -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 +7 -0
- package/dist/accessi-module/Dtos/UserDto.js +26 -2
- 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.js.map +1 -1
- package/dist/accessi-module/Dtos/index.d.ts +4 -0
- package/dist/accessi-module/Dtos/index.js +4 -0
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +40 -5
- package/dist/accessi-module/Services/AuthService/AuthService.js +192 -40
- 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 +43 -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 -9
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +73 -2
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +537 -198
- package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
- 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 +36 -5
- package/dist/accessi-module/Services/UserService/UserService.js +341 -161
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +213 -213
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +46 -10
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +399 -181
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/accessiSchema.d.ts +45 -0
- package/dist/accessi-module/database-updates/accessiSchema.js +87 -0
- package/dist/accessi-module/database-updates/accessiSchema.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/runAccessiDbUpdate.js +18 -8
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +24 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js +333 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +100 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js +451 -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 +17 -0
- package/dist/accessi-module/index.js +25 -11
- 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 +16 -7
- 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 +63 -25
- 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 +74 -0
- package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
- package/dist/accessi-module/security/accessControl.d.ts +11 -0
- package/dist/accessi-module/security/accessControl.js +19 -4
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- 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/authenticatedToken.d.ts +15 -1
- package/dist/accessi-module/security/authenticatedToken.js +31 -4
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- 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 +3 -3
- package/dist/accessi-module/security/publicAuthRateLimit.js +30 -8
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
- package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
- package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
- package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
- package/dist/accessi-module/security/serviceTokenRateLimit.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.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/autobind.d.ts +10 -3
- package/dist/autobind.js +24 -9
- package/dist/autobind.js.map +1 -1
- package/dist/firebird-compat.d.ts +13 -0
- package/dist/firebird-compat.js +3 -2
- package/dist/firebird-compat.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/initEmilsoftwareModule.js +7 -0
- package/dist/initEmilsoftwareModule.js.map +1 -1
- 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/swagger/SwaggerConfig.js +6 -3
- package/dist/swagger/SwaggerConfig.js.map +1 -1
- package/package.json +103 -83
- package/dist/emilsoftware-utilities-2.0.0-dev.22.tgz +0 -0
|
@@ -46,22 +46,25 @@ let PermissionService = class PermissionService {
|
|
|
46
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
47
|
return typeof rawValue === 'number' ? rawValue : Number.parseInt(`${rawValue !== null && rawValue !== void 0 ? rawValue : '0'}`, 10);
|
|
48
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
|
+
}
|
|
49
52
|
getAllActiveMenusAsGrants() {
|
|
50
53
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const query = `
|
|
52
|
-
SELECT
|
|
53
|
-
M.CODMNU AS codice_menu,
|
|
54
|
-
30 AS tipo_abilitazione,
|
|
55
|
-
M.DESMNU AS descrizione_menu,
|
|
56
|
-
G.DESGRP AS descrizione_gruppo,
|
|
57
|
-
G.CODGRP AS codice_gruppo,
|
|
58
|
-
M.ICON AS icona,
|
|
59
|
-
M.CODTIP AS tipo,
|
|
60
|
-
M.PAGINA AS pagina,
|
|
61
|
-
M.NOTE AS note
|
|
62
|
-
FROM MENU M
|
|
63
|
-
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
64
|
-
WHERE M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1
|
|
54
|
+
const query = `
|
|
55
|
+
SELECT
|
|
56
|
+
M.CODMNU AS codice_menu,
|
|
57
|
+
30 AS tipo_abilitazione,
|
|
58
|
+
M.DESMNU AS descrizione_menu,
|
|
59
|
+
G.DESGRP AS descrizione_gruppo,
|
|
60
|
+
G.CODGRP AS codice_gruppo,
|
|
61
|
+
M.ICON AS icona,
|
|
62
|
+
M.CODTIP AS tipo,
|
|
63
|
+
M.PAGINA AS pagina,
|
|
64
|
+
M.NOTE AS note
|
|
65
|
+
FROM MENU M
|
|
66
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
67
|
+
WHERE M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1
|
|
65
68
|
`;
|
|
66
69
|
return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, [])
|
|
67
70
|
.then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase));
|
|
@@ -69,21 +72,21 @@ let PermissionService = class PermissionService {
|
|
|
69
72
|
}
|
|
70
73
|
getUserDirectPermissions(codiceUtente) {
|
|
71
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const queryAbilitazioni = `
|
|
73
|
-
SELECT
|
|
74
|
-
A.CODMNU AS codice_menu,
|
|
75
|
-
A.TIPABI AS tipo_abilitazione,
|
|
76
|
-
M.DESMNU AS descrizione_menu,
|
|
77
|
-
G.DESGRP AS descrizione_gruppo,
|
|
78
|
-
G.CODGRP AS codice_gruppo,
|
|
79
|
-
M.ICON AS icona,
|
|
80
|
-
M.CODTIP AS tipo,
|
|
81
|
-
M.PAGINA AS pagina,
|
|
82
|
-
M.NOTE AS note
|
|
83
|
-
FROM ABILITAZIONI A
|
|
84
|
-
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
85
|
-
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
86
|
-
WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1
|
|
75
|
+
const queryAbilitazioni = `
|
|
76
|
+
SELECT
|
|
77
|
+
A.CODMNU AS codice_menu,
|
|
78
|
+
A.TIPABI AS tipo_abilitazione,
|
|
79
|
+
M.DESMNU AS descrizione_menu,
|
|
80
|
+
G.DESGRP AS descrizione_gruppo,
|
|
81
|
+
G.CODGRP AS codice_gruppo,
|
|
82
|
+
M.ICON AS icona,
|
|
83
|
+
M.CODTIP AS tipo,
|
|
84
|
+
M.PAGINA AS pagina,
|
|
85
|
+
M.NOTE AS note
|
|
86
|
+
FROM ABILITAZIONI A
|
|
87
|
+
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
88
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
89
|
+
WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1
|
|
87
90
|
`;
|
|
88
91
|
return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryAbilitazioni, [codiceUtente])
|
|
89
92
|
.then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase));
|
|
@@ -91,143 +94,183 @@ let PermissionService = class PermissionService {
|
|
|
91
94
|
}
|
|
92
95
|
getUserRoles(codiceUtente) {
|
|
93
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
const queryRuoli = `
|
|
95
|
-
SELECT
|
|
96
|
-
R.CODRUO AS codice_ruolo,
|
|
97
|
-
R.DESRUO AS descrizione_ruolo,
|
|
98
|
-
|
|
99
|
-
RM.TIPABI AS tipo_abilitazione,
|
|
100
|
-
M.DESMNU AS descrizione_menu,
|
|
101
|
-
M.NOTE AS note
|
|
102
|
-
FROM UTENTI_RUOLI RU
|
|
103
|
-
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
104
|
-
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
105
|
-
LEFT JOIN MENU M
|
|
106
|
-
ON RM.CODMNU = M.CODMNU
|
|
107
|
-
AND M.FLGENABLED = 1
|
|
108
|
-
LEFT JOIN MENU_GRP G
|
|
109
|
-
ON G.CODGRP = M.CODGRP
|
|
110
|
-
|
|
111
|
-
WHERE RU.CODUTE = ?
|
|
97
|
+
const queryRuoli = `
|
|
98
|
+
SELECT
|
|
99
|
+
R.CODRUO AS codice_ruolo,
|
|
100
|
+
R.DESRUO AS descrizione_ruolo,
|
|
101
|
+
CASE WHEN COALESCE(G.FLGENABLED, 1) = 1 THEN M.CODMNU END AS codice_menu,
|
|
102
|
+
RM.TIPABI AS tipo_abilitazione,
|
|
103
|
+
M.DESMNU AS descrizione_menu,
|
|
104
|
+
M.NOTE AS note
|
|
105
|
+
FROM UTENTI_RUOLI RU
|
|
106
|
+
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
107
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
108
|
+
LEFT JOIN MENU M
|
|
109
|
+
ON RM.CODMNU = M.CODMNU
|
|
110
|
+
AND M.FLGENABLED = 1
|
|
111
|
+
LEFT JOIN MENU_GRP G
|
|
112
|
+
ON G.CODGRP = M.CODGRP
|
|
113
|
+
WHERE RU.CODUTE = ?
|
|
112
114
|
`;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
115
|
+
const ruoliResult = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, queryRuoli, [codiceUtente]))
|
|
116
|
+
.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
117
|
+
return this.assembleRoles(ruoliResult);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
/** Costruisce l'albero ruoli/menu a partire dalle righe (riusato da lettura singola e batch). */
|
|
121
|
+
assembleRoles(ruoliResult) {
|
|
122
|
+
const ruoliMap = new Map();
|
|
123
|
+
for (const row of ruoliResult) {
|
|
124
|
+
const codiceRuolo = Number(row.codiceRuolo);
|
|
125
|
+
const descrizioneRuolo = typeof row.descrizioneRuolo === 'string' ? row.descrizioneRuolo.trim() : '';
|
|
126
|
+
const codiceMenu = typeof row.codiceMenu === 'string' ? row.codiceMenu : undefined;
|
|
127
|
+
const descrizioneMenu = typeof row.descrizioneMenu === 'string' ? row.descrizioneMenu : undefined;
|
|
128
|
+
const tipoAbilitazione = Number(row.tipoAbilitazione);
|
|
129
|
+
if (!ruoliMap.has(codiceRuolo)) {
|
|
130
|
+
ruoliMap.set(codiceRuolo, {
|
|
131
|
+
codiceRuolo,
|
|
132
|
+
descrizioneRuolo,
|
|
133
|
+
menu: []
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
if (codiceMenu && descrizioneMenu) {
|
|
137
|
+
ruoliMap.get(codiceRuolo).menu.push({
|
|
138
|
+
codiceRuolo,
|
|
139
|
+
codiceMenu,
|
|
140
|
+
tipoAbilitazione,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return Array.from(ruoliMap.values());
|
|
145
|
+
}
|
|
146
|
+
/** Regola di composizione storica: grant diretti prevalgono, i ruoli si sommano per livello massimo. */
|
|
147
|
+
composeGrants(abilitazioni, ruoli, isSuperAdmin, allActiveMenus) {
|
|
148
|
+
const grantsMap = new Map();
|
|
149
|
+
for (const abilitazione of abilitazioni) {
|
|
150
|
+
grantsMap.set(abilitazione.codiceMenu, abilitazione);
|
|
151
|
+
}
|
|
152
|
+
const directMenuCodes = new Set(abilitazioni.map(grant => grant.codiceMenu));
|
|
153
|
+
for (const ruolo of ruoli) {
|
|
154
|
+
for (const menu of ruolo.menu) {
|
|
155
|
+
const existing = grantsMap.get(menu.codiceMenu);
|
|
156
|
+
if (!directMenuCodes.has(menu.codiceMenu) &&
|
|
157
|
+
(!existing || Number(menu.tipoAbilitazione) > Number(existing.tipoAbilitazione))) {
|
|
158
|
+
grantsMap.set(menu.codiceMenu, menu);
|
|
131
159
|
}
|
|
132
160
|
}
|
|
133
|
-
|
|
134
|
-
|
|
161
|
+
}
|
|
162
|
+
return isSuperAdmin ? allActiveMenus : Array.from(grantsMap.values());
|
|
135
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* API legacy per salvare grant dalla struttura storica menu/gruppi.
|
|
166
|
+
* Sostituisce tutti i grant diretti dell'utente; per le nuove integrazioni preferire `assignPermissionsToUser`.
|
|
167
|
+
*/
|
|
136
168
|
addAbilitazioni(codiceUtente, menuAbilitazioni) {
|
|
137
169
|
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
-
const deleteQuery = `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`;
|
|
139
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, deleteQuery, [codiceUtente]);
|
|
140
170
|
const abilitazioniToInsert = menuAbilitazioni
|
|
141
|
-
.flatMap(menuGrp => menuGrp.menu)
|
|
171
|
+
.flatMap(menuGrp => { var _a; return (_a = menuGrp.menu) !== null && _a !== void 0 ? _a : []; })
|
|
142
172
|
.filter(menu => menu.flgChk)
|
|
143
173
|
.map(menu => [codiceUtente, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
144
174
|
const insertQuery = `UPDATE OR INSERT INTO ABILITAZIONI (CODUTE, CODMNU, TIPABI) VALUES (?, ?, ?)`;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
175
|
+
// Delete + insert atomici: un errore a metà non lascia l'utente senza abilitazioni.
|
|
176
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
177
|
+
{ query: `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`, params: [codiceUtente] },
|
|
178
|
+
...abilitazioniToInsert.map(params => ({ query: insertQuery, params })),
|
|
179
|
+
]);
|
|
148
180
|
});
|
|
149
181
|
}
|
|
182
|
+
/** Rimuove tutti i grant diretti, senza toccare ruoli o menu ereditati dai ruoli. */
|
|
150
183
|
resetAbilitazioni(codiceUtente) {
|
|
151
184
|
return __awaiter(this, void 0, void 0, function* () {
|
|
152
185
|
const query = "DELETE FROM ABILITAZIONI WHERE CODUTE = ?";
|
|
153
186
|
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, query, [codiceUtente]);
|
|
154
187
|
});
|
|
155
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Crea o aggiorna un ruolo. In aggiornamento la lista `role.menu` sostituisce integralmente i menu del ruolo.
|
|
191
|
+
* Validare i codici menu nel chiamante quando si usano dati non provenienti dalla console o dalle API Accessi.
|
|
192
|
+
*/
|
|
156
193
|
updateOrInsertRole(role_1) {
|
|
157
194
|
return __awaiter(this, arguments, void 0, function* (role, codiceRuolo = null) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
195
|
+
// Ruolo, sostituzione menu e inserimenti in un'unica transazione: niente ruoli senza menu in caso di errore.
|
|
196
|
+
yield Orm_1.Orm.withTransaction(this.accessiOptions.databaseOptions, (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
var _a;
|
|
198
|
+
let resolvedCodiceRuolo = codiceRuolo;
|
|
199
|
+
if (resolvedCodiceRuolo == null) {
|
|
200
|
+
const createdRoleResult = yield Orm_1.Orm.transactionQuery(transaction, `INSERT INTO RUOLI (DESRUO) VALUES (?) RETURNING CODRUO`, [role.descrizioneRuolo]);
|
|
201
|
+
const createdRole = (Array.isArray(createdRoleResult) ? createdRoleResult[0] : createdRoleResult);
|
|
202
|
+
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;
|
|
203
|
+
const parsedCodiceRuolo = typeof rawCodiceRuolo === 'number'
|
|
204
|
+
? rawCodiceRuolo
|
|
205
|
+
: Number.parseInt(`${rawCodiceRuolo !== null && rawCodiceRuolo !== void 0 ? rawCodiceRuolo : ''}`, 10);
|
|
206
|
+
if (Number.isNaN(parsedCodiceRuolo)) {
|
|
207
|
+
throw new Error('Creazione ruolo non riuscita: impossibile recuperare CODRUO.');
|
|
208
|
+
}
|
|
209
|
+
resolvedCodiceRuolo = parsedCodiceRuolo;
|
|
170
210
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
const createRoleMenuQuery = `INSERT INTO RUOLI_MNU (CODRUO, CODMNU, TIPABI) VALUES (?, ?, ?)`;
|
|
184
|
-
for (const menu of role.menu) {
|
|
185
|
-
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, createRoleMenuQuery, [codiceRuolo, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
186
|
-
}
|
|
211
|
+
else {
|
|
212
|
+
yield Orm_1.Orm.transactionQuery(transaction, `UPDATE RUOLI SET DESRUO = ? WHERE CODRUO = ?`, [role.descrizioneRuolo, resolvedCodiceRuolo]);
|
|
213
|
+
yield Orm_1.Orm.transactionQuery(transaction, `DELETE FROM RUOLI_MNU WHERE CODRUO = ?`, [resolvedCodiceRuolo]);
|
|
214
|
+
}
|
|
215
|
+
if (resolvedCodiceRuolo === null) {
|
|
216
|
+
throw new Error('Operazione ruolo non riuscita: codice ruolo non valorizzato.');
|
|
217
|
+
}
|
|
218
|
+
for (const menu of role.menu) {
|
|
219
|
+
yield Orm_1.Orm.transactionQuery(transaction, `INSERT INTO RUOLI_MNU (CODRUO, CODMNU, TIPABI) VALUES (?, ?, ?)`, [resolvedCodiceRuolo, menu.codiceMenu, menu.tipoAbilitazione]);
|
|
220
|
+
}
|
|
221
|
+
}));
|
|
187
222
|
});
|
|
188
223
|
}
|
|
224
|
+
/** Restituisce il catalogo ruoli con ogni associazione menu e livello, inclusi ruoli senza menu. */
|
|
189
225
|
getRolesWithMenus() {
|
|
190
226
|
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const query = `
|
|
192
|
-
SELECT
|
|
193
|
-
R.CODRUO AS codice_ruolo,
|
|
194
|
-
R.DESRUO AS descrizione_ruolo,
|
|
195
|
-
M.CODMNU AS codice_menu,
|
|
196
|
-
M.DESMNU AS descrizione_menu,
|
|
197
|
-
M.NOTE AS note,
|
|
198
|
-
RM.TIPABI AS tipo_abilitazione
|
|
199
|
-
FROM RUOLI R
|
|
200
|
-
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
201
|
-
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU
|
|
202
|
-
ORDER BY R.CODRUO, M.CODMNU
|
|
227
|
+
const query = `
|
|
228
|
+
SELECT
|
|
229
|
+
R.CODRUO AS codice_ruolo,
|
|
230
|
+
R.DESRUO AS descrizione_ruolo,
|
|
231
|
+
M.CODMNU AS codice_menu,
|
|
232
|
+
M.DESMNU AS descrizione_menu,
|
|
233
|
+
M.NOTE AS note,
|
|
234
|
+
RM.TIPABI AS tipo_abilitazione
|
|
235
|
+
FROM RUOLI R
|
|
236
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
237
|
+
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU
|
|
238
|
+
ORDER BY R.CODRUO, M.CODMNU
|
|
203
239
|
`;
|
|
204
|
-
|
|
205
|
-
|
|
240
|
+
const result = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []))
|
|
241
|
+
.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
206
242
|
const ruoliMap = new Map();
|
|
207
243
|
for (const row of result) {
|
|
208
|
-
const
|
|
244
|
+
const codiceRuolo = Number(row.codiceRuolo);
|
|
245
|
+
const descrizioneRuolo = typeof row.descrizioneRuolo === 'string' ? row.descrizioneRuolo.trim() : '';
|
|
246
|
+
const codiceMenu = typeof row.codiceMenu === 'string' ? row.codiceMenu : undefined;
|
|
247
|
+
const rawTipoAbilitazione = row.tipoAbilitazione;
|
|
209
248
|
if (!ruoliMap.has(codiceRuolo)) {
|
|
210
249
|
ruoliMap.set(codiceRuolo, {
|
|
211
250
|
codiceRuolo,
|
|
212
|
-
descrizioneRuolo
|
|
251
|
+
descrizioneRuolo,
|
|
213
252
|
menu: []
|
|
214
253
|
});
|
|
215
254
|
}
|
|
216
|
-
const abilitationValue = typeof
|
|
217
|
-
?
|
|
218
|
-
: Number.parseInt(`${
|
|
255
|
+
const abilitationValue = typeof rawTipoAbilitazione === 'number'
|
|
256
|
+
? rawTipoAbilitazione
|
|
257
|
+
: Number.parseInt(`${rawTipoAbilitazione !== null && rawTipoAbilitazione !== void 0 ? rawTipoAbilitazione : ''}`, 10);
|
|
219
258
|
if (!codiceMenu || Number.isNaN(abilitationValue) || abilitationValue <= Dtos_1.TipoAbilitazione.NESSUNA) {
|
|
220
259
|
continue;
|
|
221
260
|
}
|
|
222
261
|
ruoliMap.get(codiceRuolo).menu.push({
|
|
223
|
-
codiceRuolo
|
|
224
|
-
codiceMenu
|
|
262
|
+
codiceRuolo,
|
|
263
|
+
codiceMenu,
|
|
225
264
|
tipoAbilitazione: abilitationValue,
|
|
226
265
|
});
|
|
227
266
|
}
|
|
228
267
|
return Array.from(ruoliMap.values());
|
|
229
268
|
});
|
|
230
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Sostituisce l'intera lista di ruoli dell'utente con codici univoci e verificati.
|
|
272
|
+
* Non modifica i grant diretti: il calcolo effettivo li unisce in `getUserRolesAndGrants`.
|
|
273
|
+
*/
|
|
231
274
|
assignRolesToUser(codiceUtente, roles) {
|
|
232
275
|
return __awaiter(this, void 0, void 0, function* () {
|
|
233
276
|
const userExistsQuery = `SELECT COUNT(*) FROM UTENTI WHERE CODUTE = ?`;
|
|
@@ -246,12 +289,13 @@ let PermissionService = class PermissionService {
|
|
|
246
289
|
})),
|
|
247
290
|
];
|
|
248
291
|
if (normalizedRoles.length > 0) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
292
|
+
// Un'unica query IN invece di N count: stessa validazione, meno round-trip.
|
|
293
|
+
const placeholders = normalizedRoles.map(() => '?').join(', ');
|
|
294
|
+
const existingRolesResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODRUO FROM RUOLI WHERE CODRUO IN (${placeholders})`, normalizedRoles);
|
|
295
|
+
const existingRoles = this.extractIntegerColumn(existingRolesResult, 'CODRUO');
|
|
296
|
+
const missingRole = normalizedRoles.find((codiceRuolo) => !existingRoles.has(codiceRuolo));
|
|
297
|
+
if (missingRole !== undefined) {
|
|
298
|
+
throw new Error(`Il ruolo con codice ${missingRole} non esiste.`);
|
|
255
299
|
}
|
|
256
300
|
}
|
|
257
301
|
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queriesWithParams);
|
|
@@ -262,6 +306,10 @@ let PermissionService = class PermissionService {
|
|
|
262
306
|
}
|
|
263
307
|
});
|
|
264
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* Sostituisce tutti i grant diretti dell'utente. I ruoli rimangono invariati e i loro grant sono aggiunti
|
|
311
|
+
* solo nel risultato effettivo; un grant diretto dello stesso menu ha precedenza nella composizione.
|
|
312
|
+
*/
|
|
265
313
|
assignPermissionsToUser(codiceUtente, permissions) {
|
|
266
314
|
return __awaiter(this, void 0, void 0, function* () {
|
|
267
315
|
const userExistsQuery = `SELECT COUNT(*) FROM UTENTI WHERE CODUTE = ?`;
|
|
@@ -287,12 +335,14 @@ let PermissionService = class PermissionService {
|
|
|
287
335
|
})),
|
|
288
336
|
];
|
|
289
337
|
if (normalizedPermissions.length > 0) {
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
338
|
+
// Un'unica query IN invece di N count: stessa validazione, meno round-trip.
|
|
339
|
+
const menuCodes = normalizedPermissions.map((permission) => permission.codiceMenu);
|
|
340
|
+
const placeholders = menuCodes.map(() => '?').join(', ');
|
|
341
|
+
const existingMenusResult = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT CODMNU FROM MENU WHERE CODMNU IN (${placeholders})`, menuCodes);
|
|
342
|
+
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 : ''); }));
|
|
343
|
+
const missingMenu = menuCodes.find((codiceMenu) => !existingMenus.has(codiceMenu));
|
|
344
|
+
if (missingMenu !== undefined) {
|
|
345
|
+
throw new Error(`Il menu con codice ${missingMenu} non esiste.`);
|
|
296
346
|
}
|
|
297
347
|
}
|
|
298
348
|
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, queriesWithParams);
|
|
@@ -303,79 +353,85 @@ let PermissionService = class PermissionService {
|
|
|
303
353
|
}
|
|
304
354
|
});
|
|
305
355
|
}
|
|
356
|
+
/** Elimina fisicamente ruolo, associazioni menu e assegnazioni utente. Operazione amministrativa irreversibile. */
|
|
306
357
|
deleteRole(codiceRuolo) {
|
|
307
358
|
return __awaiter(this, void 0, void 0, function* () {
|
|
308
359
|
const existsQuery = `SELECT COUNT(*) FROM RUOLI WHERE CODRUO = ?`;
|
|
309
|
-
|
|
310
|
-
if (result
|
|
360
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, existsQuery, [codiceRuolo]);
|
|
361
|
+
if (this.getCountFromResult(result) === 0) {
|
|
311
362
|
throw new Error(`Il ruolo con codice ${codiceRuolo} non esiste.`);
|
|
312
363
|
}
|
|
313
|
-
|
|
314
|
-
yield Orm_1.Orm.
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
364
|
+
// Le tre delete sono atomiche: nessun ruolo orfano se una fallisce.
|
|
365
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
366
|
+
{ query: `DELETE FROM RUOLI_MNU WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
367
|
+
{ query: `DELETE FROM UTENTI_RUOLI WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
368
|
+
{ query: `DELETE FROM RUOLI WHERE CODRUO = ?`, params: [codiceRuolo] },
|
|
369
|
+
]);
|
|
319
370
|
});
|
|
320
371
|
}
|
|
372
|
+
/** Restituisce solo menu abilitati; per il catalogo amministrativo usare `getGroupsWithMenus(true)`. */
|
|
321
373
|
getMenus() {
|
|
322
374
|
return __awaiter(this, void 0, void 0, function* () {
|
|
323
|
-
const query = `
|
|
324
|
-
SELECT
|
|
325
|
-
M.CODMNU AS codiceMenu,
|
|
326
|
-
M.DESMNU AS descrizioneMenu,
|
|
327
|
-
M.CODGRP AS codiceGruppo,
|
|
328
|
-
G.DESGRP AS descrizioneGruppo,
|
|
329
|
-
M.ICON AS icona,
|
|
330
|
-
M.CODTIP AS tipo,
|
|
331
|
-
M.PAGINA AS pagina,
|
|
332
|
-
M.NOTE AS note
|
|
333
|
-
FROM MENU M
|
|
334
|
-
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
335
|
-
WHERE M.FLGENABLED = 1
|
|
336
|
-
ORDER BY G.CODGRP, M.CODMNU
|
|
375
|
+
const query = `
|
|
376
|
+
SELECT
|
|
377
|
+
M.CODMNU AS codiceMenu,
|
|
378
|
+
M.DESMNU AS descrizioneMenu,
|
|
379
|
+
M.CODGRP AS codiceGruppo,
|
|
380
|
+
G.DESGRP AS descrizioneGruppo,
|
|
381
|
+
M.ICON AS icona,
|
|
382
|
+
M.CODTIP AS tipo,
|
|
383
|
+
M.PAGINA AS pagina,
|
|
384
|
+
M.NOTE AS note
|
|
385
|
+
FROM MENU M
|
|
386
|
+
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
387
|
+
WHERE M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1
|
|
388
|
+
ORDER BY G.CODGRP, M.CODMNU
|
|
337
389
|
`;
|
|
338
390
|
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []);
|
|
339
391
|
return result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
340
392
|
});
|
|
341
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Restituisce il catalogo ordinato per gruppo e menu. `includeDisabled` e riservato a console e amministrazione:
|
|
396
|
+
* i flussi applicativi di autorizzazione devono usare il comportamento predefinito, che nasconde voci disabilitate.
|
|
397
|
+
*/
|
|
342
398
|
getGroupsWithMenus() {
|
|
343
399
|
return __awaiter(this, arguments, void 0, function* (includeDisabled = false) {
|
|
344
400
|
const filtersClause = includeDisabled
|
|
345
401
|
? ''
|
|
346
402
|
: 'WHERE M.FLGENABLED = 1 AND (G.FLGENABLED IS NULL OR G.FLGENABLED = 1)';
|
|
347
|
-
const query = `
|
|
348
|
-
SELECT
|
|
349
|
-
M.CODMNU AS codice_menu,
|
|
350
|
-
M.DESMNU AS descrizione_menu,
|
|
351
|
-
M.CODGRP AS codice_gruppo,
|
|
352
|
-
G.DESGRP AS descrizione_gruppo,
|
|
353
|
-
M.ICON AS icona,
|
|
354
|
-
M.CODTIP AS tipo,
|
|
355
|
-
M.PAGINA AS pagina,
|
|
356
|
-
M.NOTE AS note,
|
|
357
|
-
G.ORDINE AS ordine_gruppo,
|
|
358
|
-
M.ORDINE as ordine_menu,
|
|
359
|
-
M.FLGENABLED AS menu_enabled,
|
|
360
|
-
G.FLGENABLED AS group_enabled
|
|
361
|
-
FROM MENU M
|
|
362
|
-
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
363
|
-
${filtersClause}
|
|
364
|
-
ORDER BY G.CODGRP, M.CODMNU
|
|
403
|
+
const query = `
|
|
404
|
+
SELECT
|
|
405
|
+
M.CODMNU AS codice_menu,
|
|
406
|
+
M.DESMNU AS descrizione_menu,
|
|
407
|
+
M.CODGRP AS codice_gruppo,
|
|
408
|
+
G.DESGRP AS descrizione_gruppo,
|
|
409
|
+
M.ICON AS icona,
|
|
410
|
+
M.CODTIP AS tipo,
|
|
411
|
+
M.PAGINA AS pagina,
|
|
412
|
+
M.NOTE AS note,
|
|
413
|
+
G.ORDINE AS ordine_gruppo,
|
|
414
|
+
M.ORDINE as ordine_menu,
|
|
415
|
+
M.FLGENABLED AS menu_enabled,
|
|
416
|
+
G.FLGENABLED AS group_enabled
|
|
417
|
+
FROM MENU M
|
|
418
|
+
LEFT JOIN MENU_GRP G ON M.CODGRP = G.CODGRP
|
|
419
|
+
${filtersClause}
|
|
420
|
+
ORDER BY G.CODGRP, M.CODMNU
|
|
365
421
|
`;
|
|
366
422
|
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []);
|
|
367
423
|
const groupMap = new Map();
|
|
368
|
-
result.forEach(row => {
|
|
369
|
-
var _a, _b;
|
|
424
|
+
result.forEach((row) => {
|
|
425
|
+
var _a, _b, _c;
|
|
370
426
|
const converted = Utilities_1.RestUtilities.convertKeysToCamelCase(row);
|
|
371
|
-
const
|
|
427
|
+
const { menuEnabled, groupEnabled } = converted, menuBase = __rest(converted, ["menuEnabled", "groupEnabled"]);
|
|
372
428
|
const normalizedGroupKey = (_a = menuBase.codiceGruppo) !== null && _a !== void 0 ? _a : '__UNGROUPED__';
|
|
373
|
-
const groupEnabledFlag = groupEnabled
|
|
429
|
+
const groupEnabledFlag = groupEnabled == null ? true : Number(groupEnabled) === 1 || groupEnabled === true;
|
|
374
430
|
const menuEnabledFlag = menuEnabled === undefined ? true : Number(menuEnabled) === 1 || menuEnabled === true;
|
|
375
431
|
if (!groupMap.has(normalizedGroupKey)) {
|
|
376
432
|
groupMap.set(normalizedGroupKey, {
|
|
377
433
|
codiceGruppo: (_b = menuBase.codiceGruppo) !== null && _b !== void 0 ? _b : normalizedGroupKey,
|
|
378
|
-
descrizioneGruppo: menuBase.descrizioneGruppo,
|
|
434
|
+
descrizioneGruppo: (_c = menuBase.descrizioneGruppo) !== null && _c !== void 0 ? _c : '',
|
|
379
435
|
ordineGruppo: menuBase.ordineGruppo,
|
|
380
436
|
enabled: groupEnabledFlag,
|
|
381
437
|
menus: [],
|
|
@@ -394,34 +450,317 @@ let PermissionService = class PermissionService {
|
|
|
394
450
|
return groupsArray;
|
|
395
451
|
});
|
|
396
452
|
}
|
|
453
|
+
// -----------------------------------------------------------------------
|
|
454
|
+
// Cataloghi di configurazione: CRUD di menu, gruppi, tipi menu.
|
|
455
|
+
// `table` e `column` sono sempre costanti interne, mai input utente: i
|
|
456
|
+
// valori sono parametrizzati, quindi non esiste superficie di SQL injection.
|
|
457
|
+
// -----------------------------------------------------------------------
|
|
458
|
+
countWhere(table, column, value) {
|
|
459
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
460
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT COUNT(*) FROM ${table} WHERE ${column} = ?`, [value]);
|
|
461
|
+
return this.getCountFromResult(result);
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
assertMenuGroupExists(codiceGruppo) {
|
|
465
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
466
|
+
if ((yield this.countWhere('MENU_GRP', 'CODGRP', codiceGruppo)) === 0) {
|
|
467
|
+
throw new common_1.BadRequestException(`Il gruppo menu ${codiceGruppo} non esiste.`);
|
|
468
|
+
}
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
assertMenuTypeExists(codiceTipo) {
|
|
472
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
473
|
+
if ((yield this.countWhere('MENU_TIPI', 'CODTIP', codiceTipo)) === 0) {
|
|
474
|
+
throw new common_1.BadRequestException(`Il tipo menu ${codiceTipo} non esiste.`);
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
/** Catalogo completo dei tipi menu, usato dagli editor di configurazione. */
|
|
479
|
+
getMenuTypes() {
|
|
480
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
481
|
+
const query = `SELECT CODTIP AS codice_tipo, DESTIP AS descrizione_tipo FROM MENU_TIPI ORDER BY CODTIP`;
|
|
482
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []);
|
|
483
|
+
return result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
createMenuType(input) {
|
|
487
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
488
|
+
var _a;
|
|
489
|
+
if ((yield this.countWhere('MENU_TIPI', 'CODTIP', input.codiceTipo)) > 0) {
|
|
490
|
+
throw new common_1.BadRequestException(`Il tipo menu ${input.codiceTipo} esiste gia.`);
|
|
491
|
+
}
|
|
492
|
+
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]);
|
|
493
|
+
});
|
|
494
|
+
}
|
|
495
|
+
updateMenuType(codiceTipo, input) {
|
|
496
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
497
|
+
yield this.assertMenuTypeExists(codiceTipo);
|
|
498
|
+
if (input.descrizioneTipo === undefined)
|
|
499
|
+
return;
|
|
500
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU_TIPI SET DESTIP = ? WHERE CODTIP = ?`, [input.descrizioneTipo, codiceTipo]);
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
/** Elimina un tipo menu solo se nessun menu lo utilizza (la FK lo impedirebbe comunque). */
|
|
504
|
+
deleteMenuType(codiceTipo) {
|
|
505
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
506
|
+
yield this.assertMenuTypeExists(codiceTipo);
|
|
507
|
+
const used = yield this.countWhere('MENU', 'CODTIP', codiceTipo);
|
|
508
|
+
if (used > 0) {
|
|
509
|
+
throw new common_1.BadRequestException(`Impossibile eliminare il tipo ${codiceTipo}: ${used} menu lo utilizzano.`);
|
|
510
|
+
}
|
|
511
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `DELETE FROM MENU_TIPI WHERE CODTIP = ?`, [codiceTipo]);
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
createMenuGroup(input) {
|
|
515
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
516
|
+
var _a, _b, _c;
|
|
517
|
+
if ((yield this.countWhere('MENU_GRP', 'CODGRP', input.codiceGruppo)) > 0) {
|
|
518
|
+
throw new common_1.BadRequestException(`Il gruppo menu ${input.codiceGruppo} esiste gia.`);
|
|
519
|
+
}
|
|
520
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `INSERT INTO MENU_GRP (CODGRP, DESGRP, FLGENABLED, ORDINE, NOMECAMPO) VALUES (?, ?, ?, ?, ?)`, [
|
|
521
|
+
input.codiceGruppo,
|
|
522
|
+
(_a = input.descrizioneGruppo) !== null && _a !== void 0 ? _a : null,
|
|
523
|
+
input.enabled === false ? 0 : 1,
|
|
524
|
+
(_b = input.ordineGruppo) !== null && _b !== void 0 ? _b : 0,
|
|
525
|
+
(_c = input.nomeCampo) !== null && _c !== void 0 ? _c : null,
|
|
526
|
+
]);
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
updateMenuGroup(codiceGruppo, input) {
|
|
530
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
531
|
+
yield this.assertMenuGroupExists(codiceGruppo);
|
|
532
|
+
const sets = [];
|
|
533
|
+
const params = [];
|
|
534
|
+
if (input.descrizioneGruppo !== undefined) {
|
|
535
|
+
sets.push('DESGRP = ?');
|
|
536
|
+
params.push(input.descrizioneGruppo);
|
|
537
|
+
}
|
|
538
|
+
if (input.ordineGruppo !== undefined) {
|
|
539
|
+
sets.push('ORDINE = ?');
|
|
540
|
+
params.push(input.ordineGruppo);
|
|
541
|
+
}
|
|
542
|
+
if (input.enabled !== undefined) {
|
|
543
|
+
sets.push('FLGENABLED = ?');
|
|
544
|
+
params.push(input.enabled ? 1 : 0);
|
|
545
|
+
}
|
|
546
|
+
if (input.nomeCampo !== undefined) {
|
|
547
|
+
sets.push('NOMECAMPO = ?');
|
|
548
|
+
params.push(input.nomeCampo);
|
|
549
|
+
}
|
|
550
|
+
if (sets.length === 0)
|
|
551
|
+
return;
|
|
552
|
+
params.push(codiceGruppo);
|
|
553
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU_GRP SET ${sets.join(', ')} WHERE CODGRP = ?`, params);
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
/** Elimina un gruppo solo se non contiene menu, per non lasciare menu orfani. */
|
|
557
|
+
deleteMenuGroup(codiceGruppo) {
|
|
558
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
559
|
+
yield this.assertMenuGroupExists(codiceGruppo);
|
|
560
|
+
const used = yield this.countWhere('MENU', 'CODGRP', codiceGruppo);
|
|
561
|
+
if (used > 0) {
|
|
562
|
+
throw new common_1.BadRequestException(`Impossibile eliminare il gruppo ${codiceGruppo}: contiene ${used} menu.`);
|
|
563
|
+
}
|
|
564
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `DELETE FROM MENU_GRP WHERE CODGRP = ?`, [codiceGruppo]);
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
createMenu(input) {
|
|
568
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
569
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
570
|
+
if ((yield this.countWhere('MENU', 'CODMNU', input.codiceMenu)) > 0) {
|
|
571
|
+
throw new common_1.BadRequestException(`Il menu ${input.codiceMenu} esiste gia.`);
|
|
572
|
+
}
|
|
573
|
+
yield this.assertMenuGroupExists(input.codiceGruppo);
|
|
574
|
+
if (input.tipo)
|
|
575
|
+
yield this.assertMenuTypeExists(input.tipo);
|
|
576
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `INSERT INTO MENU (CODMNU, DESMNU, CODGRP, FLGENABLED, ICON, ORDINE, CODTIP, PAGINA, RIFMENU, NOTE)
|
|
577
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, [
|
|
578
|
+
input.codiceMenu,
|
|
579
|
+
(_a = input.descrizioneMenu) !== null && _a !== void 0 ? _a : null,
|
|
580
|
+
input.codiceGruppo,
|
|
581
|
+
input.enabled === false ? 0 : 1,
|
|
582
|
+
(_b = input.icona) !== null && _b !== void 0 ? _b : null,
|
|
583
|
+
(_c = input.ordineMenu) !== null && _c !== void 0 ? _c : null,
|
|
584
|
+
(_d = input.tipo) !== null && _d !== void 0 ? _d : null,
|
|
585
|
+
(_e = input.pagina) !== null && _e !== void 0 ? _e : null,
|
|
586
|
+
(_f = input.rifMenu) !== null && _f !== void 0 ? _f : null,
|
|
587
|
+
(_g = input.note) !== null && _g !== void 0 ? _g : null,
|
|
588
|
+
]);
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
updateMenu(codiceMenu, input) {
|
|
592
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
593
|
+
if ((yield this.countWhere('MENU', 'CODMNU', codiceMenu)) === 0) {
|
|
594
|
+
throw new common_1.BadRequestException(`Il menu ${codiceMenu} non esiste.`);
|
|
595
|
+
}
|
|
596
|
+
if (input.codiceGruppo !== undefined)
|
|
597
|
+
yield this.assertMenuGroupExists(input.codiceGruppo);
|
|
598
|
+
if (input.tipo)
|
|
599
|
+
yield this.assertMenuTypeExists(input.tipo);
|
|
600
|
+
const sets = [];
|
|
601
|
+
const params = [];
|
|
602
|
+
if (input.descrizioneMenu !== undefined) {
|
|
603
|
+
sets.push('DESMNU = ?');
|
|
604
|
+
params.push(input.descrizioneMenu);
|
|
605
|
+
}
|
|
606
|
+
if (input.codiceGruppo !== undefined) {
|
|
607
|
+
sets.push('CODGRP = ?');
|
|
608
|
+
params.push(input.codiceGruppo);
|
|
609
|
+
}
|
|
610
|
+
if (input.tipo !== undefined) {
|
|
611
|
+
sets.push('CODTIP = ?');
|
|
612
|
+
params.push(input.tipo || null);
|
|
613
|
+
}
|
|
614
|
+
if (input.icona !== undefined) {
|
|
615
|
+
sets.push('ICON = ?');
|
|
616
|
+
params.push(input.icona);
|
|
617
|
+
}
|
|
618
|
+
if (input.pagina !== undefined) {
|
|
619
|
+
sets.push('PAGINA = ?');
|
|
620
|
+
params.push(input.pagina);
|
|
621
|
+
}
|
|
622
|
+
if (input.ordineMenu !== undefined) {
|
|
623
|
+
sets.push('ORDINE = ?');
|
|
624
|
+
params.push(input.ordineMenu);
|
|
625
|
+
}
|
|
626
|
+
if (input.enabled !== undefined) {
|
|
627
|
+
sets.push('FLGENABLED = ?');
|
|
628
|
+
params.push(input.enabled ? 1 : 0);
|
|
629
|
+
}
|
|
630
|
+
if (input.rifMenu !== undefined) {
|
|
631
|
+
sets.push('RIFMENU = ?');
|
|
632
|
+
params.push(input.rifMenu);
|
|
633
|
+
}
|
|
634
|
+
if (input.note !== undefined) {
|
|
635
|
+
sets.push('NOTE = ?');
|
|
636
|
+
params.push(input.note);
|
|
637
|
+
}
|
|
638
|
+
if (sets.length === 0)
|
|
639
|
+
return;
|
|
640
|
+
params.push(codiceMenu);
|
|
641
|
+
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, `UPDATE MENU SET ${sets.join(', ')} WHERE CODMNU = ?`, params);
|
|
642
|
+
});
|
|
643
|
+
}
|
|
644
|
+
/** Elimina menu, grant utente e associazioni ruolo in un'unica transazione. */
|
|
645
|
+
deleteMenu(codiceMenu) {
|
|
646
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
647
|
+
if ((yield this.countWhere('MENU', 'CODMNU', codiceMenu)) === 0) {
|
|
648
|
+
throw new common_1.BadRequestException(`Il menu ${codiceMenu} non esiste.`);
|
|
649
|
+
}
|
|
650
|
+
yield Orm_1.Orm.executeMultiple(this.accessiOptions.databaseOptions, [
|
|
651
|
+
{ query: `DELETE FROM ABILITAZIONI WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
652
|
+
{ query: `DELETE FROM RUOLI_MNU WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
653
|
+
{ query: `DELETE FROM MENU WHERE CODMNU = ?`, params: [codiceMenu] },
|
|
654
|
+
]);
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* Calcola l'autorizzazione effettiva: grant diretti e grant dei ruoli sono uniti per codice menu.
|
|
659
|
+
* Per compatibilita storica un grant diretto prevale su quello del ruolo; i superutenti ricevono tutti i menu attivi.
|
|
660
|
+
*/
|
|
397
661
|
getUserRolesAndGrants(codiceUtente) {
|
|
398
662
|
return __awaiter(this, void 0, void 0, function* () {
|
|
663
|
+
var _a;
|
|
399
664
|
const codiceUtenteQuery = "SELECT FLGSUPER as flag_super FROM UTENTI_CONFIG WHERE CODUTE = ?";
|
|
400
|
-
|
|
665
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, codiceUtenteQuery, [codiceUtente]);
|
|
401
666
|
if (!result || result.length == 0)
|
|
402
667
|
throw new Error("Nessun utente trovato con il codice utente " + codiceUtente);
|
|
403
|
-
|
|
404
|
-
const isSuperAdmin = result[0].flagSuper;
|
|
668
|
+
const isSuperAdmin = this.isSuperFlag((_a = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0]) === null || _a === void 0 ? void 0 : _a.flagSuper);
|
|
405
669
|
const abilitazioni = yield this.getUserDirectPermissions(codiceUtente);
|
|
406
670
|
const ruoli = yield this.getUserRoles(codiceUtente);
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
671
|
+
const grants = this.composeGrants(abilitazioni, ruoli, isSuperAdmin, isSuperAdmin ? yield this.getAllActiveMenusAsGrants() : []);
|
|
672
|
+
return { abilitazioni, ruoli, grants };
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
isSuperFlag(value) {
|
|
676
|
+
return value === true || value === 1 || value === '1';
|
|
677
|
+
}
|
|
678
|
+
/**
|
|
679
|
+
* Versione batch di `getUserRolesAndGrants`: esegue un numero costante di query per N utenti
|
|
680
|
+
* (invece di N set di query) e restituisce mappa per codice utente. Stessa composizione della
|
|
681
|
+
* lettura singola.
|
|
682
|
+
*/
|
|
683
|
+
getUsersRolesAndGrants(codiciUtente) {
|
|
684
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
685
|
+
var _a, _b;
|
|
686
|
+
const result = new Map();
|
|
687
|
+
const ids = Array.from(new Set(codiciUtente.filter((id) => Number.isInteger(id) && id > 0)));
|
|
688
|
+
if (ids.length === 0) {
|
|
689
|
+
return result;
|
|
690
|
+
}
|
|
691
|
+
const placeholders = ids.map(() => '?').join(', ');
|
|
692
|
+
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);
|
|
693
|
+
const superUsers = new Set();
|
|
694
|
+
for (const row of superRows) {
|
|
695
|
+
if (this.isSuperFlag(row.flagSuper)) {
|
|
696
|
+
superUsers.add(Number(row.codiceUtente));
|
|
419
697
|
}
|
|
420
698
|
}
|
|
421
|
-
const
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
699
|
+
const permissionRows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT
|
|
700
|
+
A.CODUTE AS codice_utente,
|
|
701
|
+
A.CODMNU AS codice_menu,
|
|
702
|
+
A.TIPABI AS tipo_abilitazione,
|
|
703
|
+
M.DESMNU AS descrizione_menu,
|
|
704
|
+
G.DESGRP AS descrizione_gruppo,
|
|
705
|
+
G.CODGRP AS codice_gruppo,
|
|
706
|
+
M.ICON AS icona,
|
|
707
|
+
M.CODTIP AS tipo,
|
|
708
|
+
M.PAGINA AS pagina,
|
|
709
|
+
M.NOTE AS note
|
|
710
|
+
FROM ABILITAZIONI A
|
|
711
|
+
INNER JOIN MENU M ON A.CODMNU = M.CODMNU
|
|
712
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
713
|
+
WHERE A.CODUTE IN (${placeholders}) AND M.FLGENABLED = 1 AND COALESCE(G.FLGENABLED, 1) = 1`, ids)).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
714
|
+
const roleRows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `SELECT
|
|
715
|
+
RU.CODUTE AS codice_utente,
|
|
716
|
+
R.CODRUO AS codice_ruolo,
|
|
717
|
+
R.DESRUO AS descrizione_ruolo,
|
|
718
|
+
CASE WHEN COALESCE(G.FLGENABLED, 1) = 1 THEN M.CODMNU END AS codice_menu,
|
|
719
|
+
RM.TIPABI AS tipo_abilitazione,
|
|
720
|
+
M.DESMNU AS descrizione_menu,
|
|
721
|
+
M.NOTE AS note
|
|
722
|
+
FROM UTENTI_RUOLI RU
|
|
723
|
+
INNER JOIN RUOLI R ON RU.CODRUO = R.CODRUO
|
|
724
|
+
LEFT JOIN RUOLI_MNU RM ON R.CODRUO = RM.CODRUO
|
|
725
|
+
LEFT JOIN MENU M ON RM.CODMNU = M.CODMNU AND M.FLGENABLED = 1
|
|
726
|
+
LEFT JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
|
|
727
|
+
WHERE RU.CODUTE IN (${placeholders})`, ids)).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
728
|
+
const allActiveMenus = superUsers.size > 0 ? yield this.getAllActiveMenusAsGrants() : [];
|
|
729
|
+
const permissionsByUser = new Map();
|
|
730
|
+
for (const row of permissionRows) {
|
|
731
|
+
const { codiceUtente } = row, grant = __rest(row, ["codiceUtente"]);
|
|
732
|
+
const key = Number(codiceUtente);
|
|
733
|
+
const bucket = permissionsByUser.get(key);
|
|
734
|
+
if (bucket) {
|
|
735
|
+
bucket.push(grant);
|
|
736
|
+
}
|
|
737
|
+
else {
|
|
738
|
+
permissionsByUser.set(key, [grant]);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
const rolesByUser = new Map();
|
|
742
|
+
for (const row of roleRows) {
|
|
743
|
+
const { codiceUtente } = row, roleRow = __rest(row, ["codiceUtente"]);
|
|
744
|
+
const key = Number(codiceUtente);
|
|
745
|
+
const bucket = rolesByUser.get(key);
|
|
746
|
+
if (bucket) {
|
|
747
|
+
bucket.push(roleRow);
|
|
748
|
+
}
|
|
749
|
+
else {
|
|
750
|
+
rolesByUser.set(key, [roleRow]);
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
for (const id of ids) {
|
|
754
|
+
const abilitazioni = (_a = permissionsByUser.get(id)) !== null && _a !== void 0 ? _a : [];
|
|
755
|
+
const ruoli = this.assembleRoles((_b = rolesByUser.get(id)) !== null && _b !== void 0 ? _b : []);
|
|
756
|
+
const isSuperAdmin = superUsers.has(id);
|
|
757
|
+
result.set(id, {
|
|
758
|
+
abilitazioni,
|
|
759
|
+
ruoli,
|
|
760
|
+
grants: this.composeGrants(abilitazioni, ruoli, isSuperAdmin, isSuperAdmin ? allActiveMenus : []),
|
|
761
|
+
});
|
|
762
|
+
}
|
|
763
|
+
return result;
|
|
425
764
|
});
|
|
426
765
|
}
|
|
427
766
|
};
|