emilsoftware-utilities 2.0.0-dev.23 → 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 +8 -2
- package/dist/DailyFileTransport.js +9 -2
- package/dist/DailyFileTransport.js.map +1 -1
- package/dist/DatabaseUpdater.js +32 -27
- 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 +3 -2
- package/dist/ExecutionTimeLogger.js.map +1 -1
- package/dist/Logger.d.ts +22 -9
- package/dist/Logger.js +131 -54
- 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 +12 -7
- package/dist/Utilities.js +57 -22
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi-module/AccessiModule.d.ts +9 -0
- package/dist/accessi-module/AccessiModule.js +12 -4
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Console/console.css +529 -281
- package/dist/accessi-module/Console/console.js +2081 -85
- package/dist/accessi-module/Console/console.js.map +1 -1
- package/dist/accessi-module/Console/generated/accessiApi.d.ts +167 -1
- package/dist/accessi-module/Console/generated/accessiApi.js +156 -2
- package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -1
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +20 -8
- package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -1
- 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/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/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/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/getUsersParams.d.ts +8 -0
- package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -1
- package/dist/accessi-module/Console/generated/model/index.d.ts +18 -0
- package/dist/accessi-module/Console/generated/model/index.js +18 -0
- package/dist/accessi-module/Console/generated/model/index.js.map +1 -1
- 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/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/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/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/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/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/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/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 +89 -21
- 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 +8 -1
- package/dist/accessi-module/Controllers/AccessiConsoleController.js +52 -15
- package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -3
- package/dist/accessi-module/Controllers/ConfiguratorController.js +6 -8
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/EmailController.d.ts +1 -1
- package/dist/accessi-module/Controllers/EmailController.js +1 -1
- 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 +92 -4
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +11 -0
- package/dist/accessi-module/Controllers/PermissionController.js +273 -8
- 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 +2 -2
- package/dist/accessi-module/Controllers/UserController.js +25 -9
- 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.map +1 -1
- package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -1
- 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/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.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.d.ts +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.js +1 -1
- 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.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js +2 -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.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.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.js.map +1 -1
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.js +4 -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 +2 -0
- package/dist/accessi-module/Dtos/index.js +2 -0
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +2 -2
- package/dist/accessi-module/Services/AuthService/AuthService.js +36 -36
- package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
- package/dist/accessi-module/Services/EmailService/EmailService.d.ts +2 -1
- package/dist/accessi-module/Services/EmailService/EmailService.js +20 -17
- package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +10 -3
- package/dist/accessi-module/Services/FiltriService/FiltriService.js +64 -6
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +44 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +508 -200
- 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.js +23 -27
- package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -1
- package/dist/accessi-module/Services/UserService/UserService.d.ts +10 -3
- package/dist/accessi-module/Services/UserService/UserService.js +241 -155
- 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 +8 -0
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +89 -55
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/accessiSchema.d.ts +1 -1
- package/dist/accessi-module/database-updates/accessiSchema.js +9 -1
- package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -1
- package/dist/accessi-module/database-updates/optionalColumns.d.ts +2 -0
- package/dist/accessi-module/database-updates/optionalColumns.js +33 -1
- package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -1
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +7 -2
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +1 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js +26 -0
- package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -1
- package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +6 -0
- package/dist/accessi-module/federated-auth/FederatedAuthService.js +28 -1
- package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -1
- package/dist/accessi-module/index.d.ts +4 -1
- package/dist/accessi-module/index.js +8 -2
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.js +8 -5
- package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.d.ts +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
- package/dist/accessi-module/middleware/authenticateGen.js +11 -7
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/accessControl.js +8 -3
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- package/dist/accessi-module/security/authenticatedToken.d.ts +1 -1
- package/dist/accessi-module/security/authenticatedToken.js +2 -1
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- package/dist/accessi-module/security/passwordResetToken.d.ts +9 -3
- package/dist/accessi-module/security/passwordResetToken.js +9 -5
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.d.ts +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.js +28 -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.map +1 -1
- 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 -92
- package/dist/emilsoftware-utilities-2.0.0-dev.23.tgz +0 -0
|
@@ -20,6 +20,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
24
|
+
var t = {};
|
|
25
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
26
|
+
t[p] = s[p];
|
|
27
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
28
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
29
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
30
|
+
t[p[i]] = s[p[i]];
|
|
31
|
+
}
|
|
32
|
+
return t;
|
|
33
|
+
};
|
|
23
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
35
|
exports.UserService = void 0;
|
|
25
36
|
const common_1 = require("@nestjs/common");
|
|
@@ -33,9 +44,8 @@ const EmailService_1 = require("../EmailService/EmailService");
|
|
|
33
44
|
const FiltriService_1 = require("../FiltriService/FiltriService");
|
|
34
45
|
const PermissionService_1 = require("../PermissionService/PermissionService");
|
|
35
46
|
let UserService = class UserService {
|
|
36
|
-
constructor(accessiOptions,
|
|
47
|
+
constructor(accessiOptions, _emailService, permissionService, filtriService) {
|
|
37
48
|
this.accessiOptions = accessiOptions;
|
|
38
|
-
this.emailService = emailService;
|
|
39
49
|
this.permissionService = permissionService;
|
|
40
50
|
this.filtriService = filtriService;
|
|
41
51
|
}
|
|
@@ -89,7 +99,7 @@ let UserService = class UserService {
|
|
|
89
99
|
}
|
|
90
100
|
const query = `SELECT FLGADMINCONFIG AS flag_admin_configurator FROM UTENTI_CONFIG WHERE CODUTE = ?`;
|
|
91
101
|
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, [codiceUtente]);
|
|
92
|
-
if (
|
|
102
|
+
if (result.length === 0) {
|
|
93
103
|
return false;
|
|
94
104
|
}
|
|
95
105
|
const mapped = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
@@ -105,19 +115,19 @@ let UserService = class UserService {
|
|
|
105
115
|
if (!codiceUtente || codiceUtente <= 0) {
|
|
106
116
|
return null;
|
|
107
117
|
}
|
|
108
|
-
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `
|
|
109
|
-
SELECT
|
|
110
|
-
U.CODUTE AS codice_utente,
|
|
111
|
-
U.USRNAME AS email,
|
|
112
|
-
U.STAREG AS stato_registrazione,
|
|
113
|
-
C.FLGSUPER AS flag_super,
|
|
114
|
-
C.FLGADMINCONFIG AS flag_admin_configurator
|
|
115
|
-
, C.FLG2FATT AS flag_due_fattori
|
|
116
|
-
, C.FLGPWDLESS AS passwordless_login_enabled
|
|
117
|
-
, COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
|
|
118
|
-
FROM UTENTI U
|
|
119
|
-
LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
120
|
-
WHERE U.CODUTE = ?
|
|
118
|
+
const result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, `
|
|
119
|
+
SELECT
|
|
120
|
+
U.CODUTE AS codice_utente,
|
|
121
|
+
U.USRNAME AS email,
|
|
122
|
+
U.STAREG AS stato_registrazione,
|
|
123
|
+
C.FLGSUPER AS flag_super,
|
|
124
|
+
C.FLGADMINCONFIG AS flag_admin_configurator
|
|
125
|
+
, C.FLG2FATT AS flag_due_fattori
|
|
126
|
+
, C.FLGPWDLESS AS passwordless_login_enabled
|
|
127
|
+
, COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled
|
|
128
|
+
FROM UTENTI U
|
|
129
|
+
LEFT JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
130
|
+
WHERE U.CODUTE = ?
|
|
121
131
|
`, [codiceUtente]);
|
|
122
132
|
const user = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase)[0];
|
|
123
133
|
if (!(user === null || user === void 0 ? void 0 : user.codiceUtente)) {
|
|
@@ -141,45 +151,54 @@ let UserService = class UserService {
|
|
|
141
151
|
*/
|
|
142
152
|
getUsers(filters, options) {
|
|
143
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
var _a, _b, _c, _d, _e;
|
|
144
155
|
try {
|
|
145
156
|
const configColumns = yield (0, optionalColumns_1.getTableColumns)(this.accessiOptions, 'UTENTI_CONFIG');
|
|
146
157
|
const filterColumns = yield (0, optionalColumns_1.getTableColumns)(this.accessiOptions, 'FILTRI');
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
G.
|
|
166
|
-
|
|
167
|
-
G.
|
|
168
|
-
G.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
${(0, optionalColumns_1.optionalColumn)(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
158
|
+
// Paginazione opzionale con limiti sani: il default resta "tutti gli utenti".
|
|
159
|
+
const limit = Number.isInteger(filters === null || filters === void 0 ? void 0 : filters.limit) && ((_a = filters === null || filters === void 0 ? void 0 : filters.limit) !== null && _a !== void 0 ? _a : 0) > 0
|
|
160
|
+
? Math.min(filters === null || filters === void 0 ? void 0 : filters.limit, 1000)
|
|
161
|
+
: undefined;
|
|
162
|
+
const offset = Number.isInteger(filters === null || filters === void 0 ? void 0 : filters.offset) && ((_b = filters === null || filters === void 0 ? void 0 : filters.offset) !== null && _b !== void 0 ? _b : 0) > 0
|
|
163
|
+
? Math.trunc(filters === null || filters === void 0 ? void 0 : filters.offset)
|
|
164
|
+
: 0;
|
|
165
|
+
const pagination = `${limit !== undefined ? ` FIRST ${limit}` : ''}${offset > 0 ? ` SKIP ${offset}` : ''}`;
|
|
166
|
+
let query = `
|
|
167
|
+
SELECT${pagination}
|
|
168
|
+
U.CODUTE as codice_utente,
|
|
169
|
+
U.USRNAME as email,
|
|
170
|
+
U.FLGGDPR as flag_gdpr,
|
|
171
|
+
U.DATGDPR as data_gdpr,
|
|
172
|
+
U.DATINS as data_inserimento,
|
|
173
|
+
U.DATSCAPWD as data_scadenza_password,
|
|
174
|
+
U.DATLASTLOGIN as data_last_login,
|
|
175
|
+
U.STAREG as stato_registrazione,
|
|
176
|
+
G.COGNOME as cognome,
|
|
177
|
+
G.NOME as nome,
|
|
178
|
+
G.AVATAR as avatar,
|
|
179
|
+
G.FLG2FATT as flag_due_fattori,
|
|
180
|
+
G.FLGPWDLESS as passwordless_login_enabled,
|
|
181
|
+
G.CODLINGUA as codice_lingua,
|
|
182
|
+
G.CELLULARE as cellulare,
|
|
183
|
+
G.FLGSUPER as flag_super,
|
|
184
|
+
G.FLGADMINCONFIG as flag_admin_configurator,
|
|
185
|
+
COALESCE(G.FLGPASSWORD, 1) as password_login_enabled,
|
|
186
|
+
G.PAGDEF as pagina_default,
|
|
187
|
+
G.JSON_METADATA as json_metadata,
|
|
188
|
+
${(0, optionalColumns_1.optionalColumn)(configColumns, 'RAGSOCCLI', 'G', 'rag_soc_cli', false)},
|
|
189
|
+
${(0, optionalColumns_1.optionalColumn)(configColumns, 'NUMMAC', 'G', 'nummac')},
|
|
190
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'NUMREP', 'F', 'num_rep', true)},
|
|
191
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'IDXPERS', 'F', 'idx_pers', true)},
|
|
192
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLISUPER', 'F', 'cod_cli_super', true)},
|
|
193
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODAGE', 'F', 'cod_age', true)},
|
|
194
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLICOL', 'F', 'cod_cli_col', true)},
|
|
195
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'CODCLIENTI', 'F', 'cod_clienti', false)},
|
|
196
|
+
F.TIPFIL AS tip_fil,
|
|
197
|
+
${(0, optionalColumns_1.optionalColumn)(filterColumns, 'IDXPOS', 'F', 'idx_postazione', true)}
|
|
198
|
+
FROM UTENTI U
|
|
199
|
+
INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE
|
|
200
|
+
LEFT JOIN FILTRI F ON F.CODUTE = U.CODUTE
|
|
201
|
+
WHERE 1=1
|
|
183
202
|
`;
|
|
184
203
|
const queryParams = [];
|
|
185
204
|
if (filters === null || filters === void 0 ? void 0 : filters.email) {
|
|
@@ -194,19 +213,25 @@ let UserService = class UserService {
|
|
|
194
213
|
let users = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, queryParams));
|
|
195
214
|
users = users.map(Utilities_1.RestUtilities.convertKeysToCamelCase).map(user => this.normalizeUserFlags(user));
|
|
196
215
|
const usersResponse = [];
|
|
216
|
+
// I campi estensione sono caricati una volta per tabella (non una per utente) in query IN
|
|
217
|
+
// suddivise in blocchi per non superare i limiti di parametri del driver.
|
|
218
|
+
const extensionFieldsByUser = (options === null || options === void 0 ? void 0 : options.includeExtensionFields)
|
|
219
|
+
? yield this.loadExtensionFieldsForUsers(users.map((user) => user.codiceUtente))
|
|
220
|
+
: undefined;
|
|
221
|
+
// I grant sono caricati in batch (query IN) invece che utente per utente.
|
|
222
|
+
const grantsByUser = (options === null || options === void 0 ? void 0 : options.includeGrants)
|
|
223
|
+
? yield this.permissionService.getUsersRolesAndGrants(users.map((user) => user.codiceUtente))
|
|
224
|
+
: undefined;
|
|
197
225
|
for (const user of users) {
|
|
198
226
|
let userGrants;
|
|
199
227
|
if (options === null || options === void 0 ? void 0 : options.includeGrants) {
|
|
200
|
-
userGrants =
|
|
228
|
+
userGrants = grantsByUser === null || grantsByUser === void 0 ? void 0 : grantsByUser.get(user.codiceUtente);
|
|
201
229
|
}
|
|
202
230
|
let extensionFields;
|
|
203
231
|
if (options === null || options === void 0 ? void 0 : options.includeExtensionFields) {
|
|
204
232
|
extensionFields = {};
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
for (const ext of this.accessiOptions.extensionFieldsOptions) {
|
|
208
|
-
const values = (yield Orm_1.Orm.query(ext.databaseOptions, `SELECT ${ext.tableFields.join(',')} FROM ${ext.tableName} WHERE ${ext.tableJoinFieldName} = ?`, [user.codiceUtente])).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
209
|
-
extensionFields[ext.objectKey] = values;
|
|
233
|
+
for (const ext of (_c = this.accessiOptions.extensionFieldsOptions) !== null && _c !== void 0 ? _c : []) {
|
|
234
|
+
extensionFields[ext.objectKey] = (_e = (_d = extensionFieldsByUser === null || extensionFieldsByUser === void 0 ? void 0 : extensionFieldsByUser.get(ext.objectKey)) === null || _d === void 0 ? void 0 : _d.get(user.codiceUtente)) !== null && _e !== void 0 ? _e : [];
|
|
210
235
|
}
|
|
211
236
|
}
|
|
212
237
|
usersResponse.push({
|
|
@@ -222,6 +247,67 @@ let UserService = class UserService {
|
|
|
222
247
|
}
|
|
223
248
|
});
|
|
224
249
|
}
|
|
250
|
+
/** Conteggio utenti con gli stessi filtri di `getUsers`, per la paginazione (header X-Total-Count). */
|
|
251
|
+
countUsers(filters) {
|
|
252
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
253
|
+
var _a, _b;
|
|
254
|
+
const conditions = [];
|
|
255
|
+
const params = [];
|
|
256
|
+
if (filters === null || filters === void 0 ? void 0 : filters.email) {
|
|
257
|
+
conditions.push('LOWER(U.USRNAME) = ?');
|
|
258
|
+
params.push(filters.email.trim().toLowerCase());
|
|
259
|
+
}
|
|
260
|
+
if (filters === null || filters === void 0 ? void 0 : filters.codiceUtente) {
|
|
261
|
+
conditions.push('U.CODUTE = ?');
|
|
262
|
+
params.push(filters.codiceUtente);
|
|
263
|
+
}
|
|
264
|
+
const query = `SELECT COUNT(*) AS TOTAL FROM UTENTI U INNER JOIN UTENTI_CONFIG G ON U.CODUTE = G.CODUTE WHERE 1=1 ${conditions.map((condition) => `AND ${condition}`).join(' ')}`;
|
|
265
|
+
const rows = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, params, false));
|
|
266
|
+
const row = rows[0];
|
|
267
|
+
return Number((_b = (_a = row === null || row === void 0 ? void 0 : row.TOTAL) !== null && _a !== void 0 ? _a : row === null || row === void 0 ? void 0 : row.total) !== null && _b !== void 0 ? _b : 0) || 0;
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
loadExtensionFieldsForUsers(codiceUtenti) {
|
|
271
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
272
|
+
var _a;
|
|
273
|
+
const byObjectKey = new Map();
|
|
274
|
+
const extensions = (_a = this.accessiOptions.extensionFieldsOptions) !== null && _a !== void 0 ? _a : [];
|
|
275
|
+
const uniqueCodes = Array.from(new Set(codiceUtenti));
|
|
276
|
+
for (const ext of extensions) {
|
|
277
|
+
const grouped = new Map();
|
|
278
|
+
for (const chunk of this.chunkArray(uniqueCodes, 500)) {
|
|
279
|
+
if (chunk.length === 0) {
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
const placeholders = chunk.map(() => '?').join(', ');
|
|
283
|
+
const rows = (yield Orm_1.Orm.query(ext.databaseOptions, `SELECT ${ext.tableJoinFieldName} AS __joinkey, ${ext.tableFields.join(', ')} FROM ${ext.tableName} WHERE ${ext.tableJoinFieldName} IN (${placeholders})`, chunk)).map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
284
|
+
for (const row of rows) {
|
|
285
|
+
const { __joinkey } = row, rest = __rest(row, ["__joinkey"]);
|
|
286
|
+
const key = Number(__joinkey);
|
|
287
|
+
if (!Number.isFinite(key)) {
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
const bucket = grouped.get(key);
|
|
291
|
+
if (bucket) {
|
|
292
|
+
bucket.push(rest);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
grouped.set(key, [rest]);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
byObjectKey.set(ext.objectKey, grouped);
|
|
300
|
+
}
|
|
301
|
+
return byObjectKey;
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
chunkArray(items, size) {
|
|
305
|
+
const chunks = [];
|
|
306
|
+
for (let index = 0; index < items.length; index += size) {
|
|
307
|
+
chunks.push(items.slice(index, index + size));
|
|
308
|
+
}
|
|
309
|
+
return chunks;
|
|
310
|
+
}
|
|
225
311
|
/** Cerca il codice interno per email normalizzata. Il chiamante deve gestire il caso senza righe. */
|
|
226
312
|
getCodiceUtenteByEmail(email) {
|
|
227
313
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -241,37 +327,36 @@ let UserService = class UserService {
|
|
|
241
327
|
getUserByEmail(email) {
|
|
242
328
|
return __awaiter(this, void 0, void 0, function* () {
|
|
243
329
|
const configColumns = yield (0, optionalColumns_1.getTableColumns)(this.accessiOptions, 'UTENTI_CONFIG');
|
|
244
|
-
const query = `
|
|
245
|
-
SELECT
|
|
246
|
-
U.CODUTE AS codice_utente,
|
|
247
|
-
U.USRNAME AS email,
|
|
248
|
-
U.FLGGDPR AS flag_gdpr,
|
|
249
|
-
U.DATSCAPWD as data_scadenza_password,
|
|
250
|
-
U.STAREG AS stato_registrazione,
|
|
251
|
-
C.COGNOME AS cognome,
|
|
252
|
-
C.NOME AS nome,
|
|
253
|
-
C.AVATAR AS avatar,
|
|
254
|
-
C.FLG2FATT AS flag_due_fattori,
|
|
255
|
-
C.FLGPWDLESS AS passwordless_login_enabled,
|
|
256
|
-
C.CODLINGUA AS codice_lingua,
|
|
257
|
-
C.CELLULARE AS cellulare,
|
|
258
|
-
C.FLGSUPER AS flag_super,
|
|
259
|
-
C.FLGADMINCONFIG AS flag_admin_configurator,
|
|
260
|
-
COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled,
|
|
261
|
-
C.PAGDEF AS pagina_default,
|
|
262
|
-
${(0, optionalColumns_1.optionalColumn)(configColumns, 'NUMMAC', 'C', 'nummac')},
|
|
263
|
-
${(0, optionalColumns_1.optionalColumn)(configColumns, 'RAGSOCCLI', 'C', 'rag_soc_cli', false)}
|
|
264
|
-
FROM UTENTI U
|
|
265
|
-
INNER JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
266
|
-
WHERE LOWER(U.USRNAME) = ?
|
|
330
|
+
const query = `
|
|
331
|
+
SELECT
|
|
332
|
+
U.CODUTE AS codice_utente,
|
|
333
|
+
U.USRNAME AS email,
|
|
334
|
+
U.FLGGDPR AS flag_gdpr,
|
|
335
|
+
U.DATSCAPWD as data_scadenza_password,
|
|
336
|
+
U.STAREG AS stato_registrazione,
|
|
337
|
+
C.COGNOME AS cognome,
|
|
338
|
+
C.NOME AS nome,
|
|
339
|
+
C.AVATAR AS avatar,
|
|
340
|
+
C.FLG2FATT AS flag_due_fattori,
|
|
341
|
+
C.FLGPWDLESS AS passwordless_login_enabled,
|
|
342
|
+
C.CODLINGUA AS codice_lingua,
|
|
343
|
+
C.CELLULARE AS cellulare,
|
|
344
|
+
C.FLGSUPER AS flag_super,
|
|
345
|
+
C.FLGADMINCONFIG AS flag_admin_configurator,
|
|
346
|
+
COALESCE(C.FLGPASSWORD, 1) AS password_login_enabled,
|
|
347
|
+
C.PAGDEF AS pagina_default,
|
|
348
|
+
${(0, optionalColumns_1.optionalColumn)(configColumns, 'NUMMAC', 'C', 'nummac')},
|
|
349
|
+
${(0, optionalColumns_1.optionalColumn)(configColumns, 'RAGSOCCLI', 'C', 'rag_soc_cli', false)}
|
|
350
|
+
FROM UTENTI U
|
|
351
|
+
INNER JOIN UTENTI_CONFIG C ON C.CODUTE = U.CODUTE
|
|
352
|
+
WHERE LOWER(U.USRNAME) = ?
|
|
267
353
|
`;
|
|
268
354
|
const utenti = (yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, [email]).then((results) => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase)));
|
|
269
|
-
|
|
355
|
+
const user = utenti[0];
|
|
356
|
+
if (!user)
|
|
270
357
|
return null;
|
|
271
|
-
const
|
|
272
|
-
if (
|
|
273
|
-
const user = utenti[0];
|
|
274
|
-
const filtro = filtriUtente[0];
|
|
358
|
+
const filtro = (yield this.filtriService.getFiltriUser(user.codiceUtente))[0];
|
|
359
|
+
if (filtro) {
|
|
275
360
|
const filterValues = {};
|
|
276
361
|
Object.entries(FiltriUtente_1.FILTRI_UTENTE_DB_MAPPING).forEach(([key]) => {
|
|
277
362
|
if (key in filtro) {
|
|
@@ -280,7 +365,7 @@ let UserService = class UserService {
|
|
|
280
365
|
});
|
|
281
366
|
Object.assign(user, filterValues);
|
|
282
367
|
}
|
|
283
|
-
return
|
|
368
|
+
return this.normalizeUserFlags(user);
|
|
284
369
|
});
|
|
285
370
|
}
|
|
286
371
|
insertUserFilters(codiceUtente, filterData) {
|
|
@@ -288,18 +373,13 @@ let UserService = class UserService {
|
|
|
288
373
|
yield this.filtriService.upsertFiltriUtente(codiceUtente, filterData);
|
|
289
374
|
});
|
|
290
375
|
}
|
|
291
|
-
executeInTransaction(operation) {
|
|
292
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
293
|
-
yield operation();
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
376
|
/**
|
|
297
377
|
* Crea utente, configurazione e filtri. La registrazione pubblica resta in stato `INVIO` e non puo
|
|
298
378
|
* impostare privilegi, ruoli o grant; soltanto flussi backend fidati possono usare `allowPrivilegedFields`.
|
|
299
379
|
*/
|
|
300
380
|
register(registrationData, options) {
|
|
301
381
|
return __awaiter(this, void 0, void 0, function* () {
|
|
302
|
-
var _a
|
|
382
|
+
var _a;
|
|
303
383
|
try {
|
|
304
384
|
const allowPrivilegedFields = (options === null || options === void 0 ? void 0 : options.allowPrivilegedFields) === true;
|
|
305
385
|
const normalizedEmail = this.normalizeEmail(registrationData.email);
|
|
@@ -319,71 +399,77 @@ let UserService = class UserService {
|
|
|
319
399
|
}
|
|
320
400
|
yield this.validateApplicationFields(registrationData);
|
|
321
401
|
yield this.ensureEmailIsAvailable(normalizedEmail);
|
|
322
|
-
const queryUtenti = `INSERT INTO UTENTI (USRNAME, STAREG) VALUES (?,?)`;
|
|
402
|
+
const queryUtenti = `INSERT INTO UTENTI (USRNAME, STAREG) VALUES (?,?) RETURNING CODUTE`;
|
|
323
403
|
// Public/local registrations keep the historic INVIO state; trusted master or SSO flows may opt into CONF.
|
|
324
404
|
const paramsUtenti = [normalizedEmail, (_a = options === null || options === void 0 ? void 0 : options.initialState) !== null && _a !== void 0 ? _a : StatoRegistrazione_1.StatoRegistrazione.INVIO];
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
const codiceUtente =
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
const optionalFields = [
|
|
335
|
-
{
|
|
336
|
-
key: 'cellulare',
|
|
337
|
-
dbField: 'CELLULARE',
|
|
338
|
-
transform: (v) => String(v),
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
key: 'avatar',
|
|
342
|
-
dbField: 'AVATAR',
|
|
343
|
-
transform: (v) => String(v),
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
key: 'flagDueFattori',
|
|
347
|
-
dbField: 'FLG2FATT',
|
|
348
|
-
transform: (v) => (v ? 1 : 0),
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
key: 'paginaDefault',
|
|
352
|
-
dbField: 'PAGDEF',
|
|
353
|
-
transform: (v) => String(v),
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
key: 'nummac',
|
|
357
|
-
dbField: 'NUMMAC',
|
|
358
|
-
transform: (v) => Number(v),
|
|
359
|
-
},
|
|
360
|
-
{
|
|
361
|
-
key: 'ragSocCli',
|
|
362
|
-
dbField: 'RAGSOCCLI',
|
|
363
|
-
transform: (v) => String(v),
|
|
364
|
-
},
|
|
365
|
-
];
|
|
366
|
-
if (allowPrivilegedFields) {
|
|
367
|
-
optionalFields.push({
|
|
368
|
-
key: 'flagSuper',
|
|
369
|
-
dbField: 'FLGSUPER',
|
|
370
|
-
transform: (v) => (v ? 1 : 0),
|
|
371
|
-
}, {
|
|
372
|
-
key: 'flagAdminConfigurator',
|
|
373
|
-
dbField: 'FLGADMINCONFIG',
|
|
374
|
-
transform: (v) => (v ? 1 : 0),
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
for (const field of optionalFields) {
|
|
378
|
-
const value = registrationData[field.key];
|
|
379
|
-
if (value !== undefined && value !== null) {
|
|
380
|
-
utentiConfigFields.push(field.dbField);
|
|
381
|
-
utentiConfigPlaceholders.push('?');
|
|
382
|
-
utentiConfigParams.push(field.transform ? field.transform(value) : value);
|
|
405
|
+
// Utente e configurazione sono creati in un'unica transazione; filtri e assegnazioni restano
|
|
406
|
+
// fuori perché delegati a servizi dedicati.
|
|
407
|
+
const codiceUtente = yield Orm_1.Orm.withTransaction(this.accessiOptions.databaseOptions, (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
408
|
+
var _a;
|
|
409
|
+
const insertedUsers = yield Orm_1.Orm.transactionQuery(transaction, queryUtenti, paramsUtenti);
|
|
410
|
+
const insertedUser = (Array.isArray(insertedUsers) ? insertedUsers[0] : insertedUsers);
|
|
411
|
+
const newCodiceUtente = Number((_a = insertedUser === null || insertedUser === void 0 ? void 0 : insertedUser.CODUTE) !== null && _a !== void 0 ? _a : insertedUser === null || insertedUser === void 0 ? void 0 : insertedUser.codute);
|
|
412
|
+
if (!newCodiceUtente) {
|
|
413
|
+
throw new Error('Creazione utente non riuscita: impossibile recuperare CODUTE.');
|
|
383
414
|
}
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
415
|
+
const utentiConfigFields = ['CODUTE', 'COGNOME', 'NOME'];
|
|
416
|
+
const utentiConfigPlaceholders = ['?', '?', '?'];
|
|
417
|
+
const utentiConfigParams = [newCodiceUtente, registrationData.cognome, registrationData.nome];
|
|
418
|
+
const optionalFields = [
|
|
419
|
+
{
|
|
420
|
+
key: 'cellulare',
|
|
421
|
+
dbField: 'CELLULARE',
|
|
422
|
+
transform: (v) => String(v),
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
key: 'avatar',
|
|
426
|
+
dbField: 'AVATAR',
|
|
427
|
+
transform: (v) => String(v),
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
key: 'flagDueFattori',
|
|
431
|
+
dbField: 'FLG2FATT',
|
|
432
|
+
transform: (v) => (v ? 1 : 0),
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
key: 'paginaDefault',
|
|
436
|
+
dbField: 'PAGDEF',
|
|
437
|
+
transform: (v) => String(v),
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
key: 'nummac',
|
|
441
|
+
dbField: 'NUMMAC',
|
|
442
|
+
transform: (v) => Number(v),
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
key: 'ragSocCli',
|
|
446
|
+
dbField: 'RAGSOCCLI',
|
|
447
|
+
transform: (v) => String(v),
|
|
448
|
+
},
|
|
449
|
+
];
|
|
450
|
+
if (allowPrivilegedFields) {
|
|
451
|
+
optionalFields.push({
|
|
452
|
+
key: 'flagSuper',
|
|
453
|
+
dbField: 'FLGSUPER',
|
|
454
|
+
transform: (v) => (v ? 1 : 0),
|
|
455
|
+
}, {
|
|
456
|
+
key: 'flagAdminConfigurator',
|
|
457
|
+
dbField: 'FLGADMINCONFIG',
|
|
458
|
+
transform: (v) => (v ? 1 : 0),
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
for (const field of optionalFields) {
|
|
462
|
+
const value = registrationData[field.key];
|
|
463
|
+
if (value !== undefined && value !== null) {
|
|
464
|
+
utentiConfigFields.push(field.dbField);
|
|
465
|
+
utentiConfigPlaceholders.push('?');
|
|
466
|
+
utentiConfigParams.push(field.transform ? field.transform(value) : value);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
const queryUtentiConfig = `INSERT INTO UTENTI_CONFIG (${utentiConfigFields.join(', ')}) VALUES (${utentiConfigPlaceholders.join(', ')})`;
|
|
470
|
+
yield Orm_1.Orm.transactionQuery(transaction, queryUtentiConfig, utentiConfigParams);
|
|
471
|
+
return newCodiceUtente;
|
|
472
|
+
}));
|
|
387
473
|
yield this.filtriService.upsertFiltriUtente(codiceUtente, registrationData);
|
|
388
474
|
if (allowPrivilegedFields && !!registrationData.roles && registrationData.roles.length > 0) {
|
|
389
475
|
yield this.permissionService.assignRolesToUser(codiceUtente, registrationData.roles);
|