emilsoftware-utilities 2.0.0-dev.5 → 2.0.0-dev.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/README.MD +199 -38
  2. package/dist/ContractGenerator.d.ts +4 -3
  3. package/dist/ContractGenerator.js +15 -5
  4. package/dist/ContractGenerator.js.map +1 -1
  5. package/dist/DailyFileTransport.d.ts +21 -0
  6. package/dist/DailyFileTransport.js +74 -0
  7. package/dist/DailyFileTransport.js.map +1 -0
  8. package/dist/DatabaseUpdater.d.ts +1 -1
  9. package/dist/DatabaseUpdater.js +32 -29
  10. package/dist/DatabaseUpdater.js.map +1 -1
  11. package/dist/EmilsoftwareModule.d.ts +6 -0
  12. package/dist/EmilsoftwareModule.js.map +1 -1
  13. package/dist/ExecutionTimeLogger.d.ts +2 -2
  14. package/dist/ExecutionTimeLogger.js +5 -4
  15. package/dist/ExecutionTimeLogger.js.map +1 -1
  16. package/dist/Logger.d.ts +22 -11
  17. package/dist/Logger.js +132 -119
  18. package/dist/Logger.js.map +1 -1
  19. package/dist/Orm.d.ts +32 -12
  20. package/dist/Orm.js +194 -153
  21. package/dist/Orm.js.map +1 -1
  22. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  23. package/dist/Utilities.d.ts +18 -8
  24. package/dist/Utilities.js +143 -38
  25. package/dist/Utilities.js.map +1 -1
  26. package/dist/accessi-module/AccessiModule.d.ts +116 -1
  27. package/dist/accessi-module/AccessiModule.js +38 -5
  28. package/dist/accessi-module/AccessiModule.js.map +1 -1
  29. package/dist/accessi-module/Console/accessiFetch.d.ts +16 -0
  30. package/dist/accessi-module/Console/accessiFetch.js +87 -0
  31. package/dist/accessi-module/Console/accessiFetch.js.map +1 -0
  32. package/dist/accessi-module/Console/console.css +681 -0
  33. package/dist/accessi-module/Console/console.d.ts +1 -0
  34. package/dist/accessi-module/Console/console.js +3814 -0
  35. package/dist/accessi-module/Console/console.js.map +1 -0
  36. package/dist/accessi-module/Console/generated/accessiApi.d.ts +632 -0
  37. package/dist/accessi-module/Console/generated/accessiApi.js +589 -0
  38. package/dist/accessi-module/Console/generated/accessiApi.js.map +1 -0
  39. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.d.ts +39 -0
  40. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js +3 -0
  41. package/dist/accessi-module/Console/generated/model/abilitazioneMenu.js.map +1 -0
  42. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.d.ts +16 -0
  43. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js +17 -0
  44. package/dist/accessi-module/Console/generated/model/abilitazioneMenuTipoAbilitazione.js.map +1 -0
  45. package/dist/accessi-module/Console/generated/model/actionResponse.d.ts +12 -0
  46. package/dist/accessi-module/Console/generated/model/actionResponse.js +9 -0
  47. package/dist/accessi-module/Console/generated/model/actionResponse.js.map +1 -0
  48. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.d.ts +14 -0
  49. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js +3 -0
  50. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResponse.js.map +1 -0
  51. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.d.ts +10 -0
  52. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js +9 -0
  53. package/dist/accessi-module/Console/generated/model/adminBootstrapStatusResult.js.map +1 -0
  54. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.d.ts +11 -0
  55. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js +3 -0
  56. package/dist/accessi-module/Console/generated/model/assignPermissionsToUserRequest.js.map +1 -0
  57. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.d.ts +10 -0
  58. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js +9 -0
  59. package/dist/accessi-module/Console/generated/model/assignRolesToUserRequest.js.map +1 -0
  60. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.d.ts +10 -0
  61. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js +3 -0
  62. package/dist/accessi-module/Console/generated/model/authenticatedTokenPayloadDto.js.map +1 -0
  63. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.d.ts +19 -0
  64. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js +9 -0
  65. package/dist/accessi-module/Console/generated/model/authenticatedUserPayloadDto.js.map +1 -0
  66. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.d.ts +17 -0
  67. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js +9 -0
  68. package/dist/accessi-module/Console/generated/model/bootstrapAdminRequest.js.map +1 -0
  69. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.d.ts +14 -0
  70. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js +3 -0
  71. package/dist/accessi-module/Console/generated/model/bootstrapAdminResponse.js.map +1 -0
  72. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.d.ts +13 -0
  73. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js +9 -0
  74. package/dist/accessi-module/Console/generated/model/bootstrapAdminResultDto.js.map +1 -0
  75. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.d.ts +14 -0
  76. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js +9 -0
  77. package/dist/accessi-module/Console/generated/model/confirmResetPasswordRequest.js.map +1 -0
  78. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.d.ts +10 -0
  79. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js +9 -0
  80. package/dist/accessi-module/Console/generated/model/consoleEntryExchangeRequest.js.map +1 -0
  81. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.d.ts +14 -0
  82. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js +3 -0
  83. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResponse.js.map +1 -0
  84. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.d.ts +10 -0
  85. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js +3 -0
  86. package/dist/accessi-module/Console/generated/model/consoleEntrySessionResult.js.map +1 -0
  87. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.d.ts +14 -0
  88. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js +3 -0
  89. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResponse.js.map +1 -0
  90. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.d.ts +12 -0
  91. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js +9 -0
  92. package/dist/accessi-module/Console/generated/model/consoleEntryTicketResult.js.map +1 -0
  93. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.d.ts +12 -0
  94. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js +9 -0
  95. package/dist/accessi-module/Console/generated/model/consoleEntryTokenResult.js.map +1 -0
  96. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.d.ts +13 -0
  97. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js +9 -0
  98. package/dist/accessi-module/Console/generated/model/createFederatedIdentityRequest.js.map +1 -0
  99. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.d.ts +13 -0
  100. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js +9 -0
  101. package/dist/accessi-module/Console/generated/model/createFederatedProviderRequest.js.map +1 -0
  102. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.d.ts +18 -0
  103. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js +3 -0
  104. package/dist/accessi-module/Console/generated/model/createFederatedUserRequest.js.map +1 -0
  105. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.d.ts +23 -0
  106. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js +3 -0
  107. package/dist/accessi-module/Console/generated/model/createFilterTypeRequest.js.map +1 -0
  108. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.d.ts +14 -0
  109. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js +15 -0
  110. package/dist/accessi-module/Console/generated/model/createFilterTypeRequestFlgEnabled.js.map +1 -0
  111. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.d.ts +22 -0
  112. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js +9 -0
  113. package/dist/accessi-module/Console/generated/model/createMenuGroupRequest.js.map +1 -0
  114. package/dist/accessi-module/Console/generated/model/createMenuRequest.d.ts +52 -0
  115. package/dist/accessi-module/Console/generated/model/createMenuRequest.js +9 -0
  116. package/dist/accessi-module/Console/generated/model/createMenuRequest.js.map +1 -0
  117. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.d.ts +18 -0
  118. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js +9 -0
  119. package/dist/accessi-module/Console/generated/model/createMenuTypeRequest.js.map +1 -0
  120. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.d.ts +16 -0
  121. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js +9 -0
  122. package/dist/accessi-module/Console/generated/model/createServiceTokenRequest.js.map +1 -0
  123. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.d.ts +14 -0
  124. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js +3 -0
  125. package/dist/accessi-module/Console/generated/model/createServiceTokenResponse.js.map +1 -0
  126. package/dist/accessi-module/Console/generated/model/errorResponse.d.ts +18 -0
  127. package/dist/accessi-module/Console/generated/model/errorResponse.js +9 -0
  128. package/dist/accessi-module/Console/generated/model/errorResponse.js.map +1 -0
  129. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.d.ts +14 -0
  130. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js +3 -0
  131. package/dist/accessi-module/Console/generated/model/federatedIdentityListResponse.js.map +1 -0
  132. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.d.ts +14 -0
  133. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js +3 -0
  134. package/dist/accessi-module/Console/generated/model/federatedIdentityResponse.js.map +1 -0
  135. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.d.ts +23 -0
  136. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js +9 -0
  137. package/dist/accessi-module/Console/generated/model/federatedIdentityResponseDto.js.map +1 -0
  138. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.d.ts +14 -0
  139. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js +3 -0
  140. package/dist/accessi-module/Console/generated/model/federatedProviderListResponse.js.map +1 -0
  141. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.d.ts +14 -0
  142. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js +3 -0
  143. package/dist/accessi-module/Console/generated/model/federatedProviderResponse.js.map +1 -0
  144. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.d.ts +13 -0
  145. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js +9 -0
  146. package/dist/accessi-module/Console/generated/model/federatedProviderResponseDto.js.map +1 -0
  147. package/dist/accessi-module/Console/generated/model/filtriUtente.d.ts +32 -0
  148. package/dist/accessi-module/Console/generated/model/filtriUtente.js +9 -0
  149. package/dist/accessi-module/Console/generated/model/filtriUtente.js.map +1 -0
  150. package/dist/accessi-module/Console/generated/model/getFiltriResponse.d.ts +14 -0
  151. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js +3 -0
  152. package/dist/accessi-module/Console/generated/model/getFiltriResponse.js.map +1 -0
  153. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.d.ts +12 -0
  154. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js +9 -0
  155. package/dist/accessi-module/Console/generated/model/getFiltriUtenteParams.js.map +1 -0
  156. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.d.ts +14 -0
  157. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js +3 -0
  158. package/dist/accessi-module/Console/generated/model/getFiltriUtenteResponse.js.map +1 -0
  159. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.d.ts +12 -0
  160. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js +9 -0
  161. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusParams.js.map +1 -0
  162. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.d.ts +14 -0
  163. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js +3 -0
  164. package/dist/accessi-module/Console/generated/model/getGroupsWithMenusResponse.js.map +1 -0
  165. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.d.ts +14 -0
  166. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js +3 -0
  167. package/dist/accessi-module/Console/generated/model/getMenuTypesResponse.js.map +1 -0
  168. package/dist/accessi-module/Console/generated/model/getMenusResponse.d.ts +14 -0
  169. package/dist/accessi-module/Console/generated/model/getMenusResponse.js +3 -0
  170. package/dist/accessi-module/Console/generated/model/getMenusResponse.js.map +1 -0
  171. package/dist/accessi-module/Console/generated/model/getRolesResponse.d.ts +14 -0
  172. package/dist/accessi-module/Console/generated/model/getRolesResponse.js +3 -0
  173. package/dist/accessi-module/Console/generated/model/getRolesResponse.js.map +1 -0
  174. package/dist/accessi-module/Console/generated/model/getSchemaResponse.d.ts +14 -0
  175. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js +3 -0
  176. package/dist/accessi-module/Console/generated/model/getSchemaResponse.js.map +1 -0
  177. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.d.ts +12 -0
  178. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js +9 -0
  179. package/dist/accessi-module/Console/generated/model/getServiceTokensParams.js.map +1 -0
  180. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.d.ts +14 -0
  181. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js +3 -0
  182. package/dist/accessi-module/Console/generated/model/getServiceTokensResponse.js.map +1 -0
  183. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.d.ts +10 -0
  184. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js +9 -0
  185. package/dist/accessi-module/Console/generated/model/getUserByTokenRequest.js.map +1 -0
  186. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.d.ts +14 -0
  187. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js +3 -0
  188. package/dist/accessi-module/Console/generated/model/getUserByTokenResponse.js.map +1 -0
  189. package/dist/accessi-module/Console/generated/model/getUsersParams.d.ts +32 -0
  190. package/dist/accessi-module/Console/generated/model/getUsersParams.js +9 -0
  191. package/dist/accessi-module/Console/generated/model/getUsersParams.js.map +1 -0
  192. package/dist/accessi-module/Console/generated/model/getUsersResponse.d.ts +14 -0
  193. package/dist/accessi-module/Console/generated/model/getUsersResponse.js +3 -0
  194. package/dist/accessi-module/Console/generated/model/getUsersResponse.js.map +1 -0
  195. package/dist/accessi-module/Console/generated/model/getUsersResult.d.ts +17 -0
  196. package/dist/accessi-module/Console/generated/model/getUsersResult.js +3 -0
  197. package/dist/accessi-module/Console/generated/model/getUsersResult.js.map +1 -0
  198. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.d.ts +12 -0
  199. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js +9 -0
  200. package/dist/accessi-module/Console/generated/model/getUsersResultExtensionFields.js.map +1 -0
  201. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.d.ts +19 -0
  202. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js +3 -0
  203. package/dist/accessi-module/Console/generated/model/groupWithMenusEntity.js.map +1 -0
  204. package/dist/accessi-module/Console/generated/model/index.d.ts +108 -0
  205. package/dist/accessi-module/Console/generated/model/index.js +125 -0
  206. package/dist/accessi-module/Console/generated/model/index.js.map +1 -0
  207. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.d.ts +30 -0
  208. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js +9 -0
  209. package/dist/accessi-module/Console/generated/model/issuedServiceTokenDto.js.map +1 -0
  210. package/dist/accessi-module/Console/generated/model/loginRequest.d.ts +12 -0
  211. package/dist/accessi-module/Console/generated/model/loginRequest.js +9 -0
  212. package/dist/accessi-module/Console/generated/model/loginRequest.js.map +1 -0
  213. package/dist/accessi-module/Console/generated/model/loginResponse.d.ts +14 -0
  214. package/dist/accessi-module/Console/generated/model/loginResponse.js +3 -0
  215. package/dist/accessi-module/Console/generated/model/loginResponse.js.map +1 -0
  216. package/dist/accessi-module/Console/generated/model/loginResult.d.ts +32 -0
  217. package/dist/accessi-module/Console/generated/model/loginResult.js +3 -0
  218. package/dist/accessi-module/Console/generated/model/loginResult.js.map +1 -0
  219. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.d.ts +12 -0
  220. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js +9 -0
  221. package/dist/accessi-module/Console/generated/model/loginResultExtensionFields.js.map +1 -0
  222. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.d.ts +13 -0
  223. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js +14 -0
  224. package/dist/accessi-module/Console/generated/model/loginResultPasswordRequired.js.map +1 -0
  225. package/dist/accessi-module/Console/generated/model/menuEntity.d.ts +32 -0
  226. package/dist/accessi-module/Console/generated/model/menuEntity.js +9 -0
  227. package/dist/accessi-module/Console/generated/model/menuEntity.js.map +1 -0
  228. package/dist/accessi-module/Console/generated/model/menuTypeEntity.d.ts +12 -0
  229. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js +9 -0
  230. package/dist/accessi-module/Console/generated/model/menuTypeEntity.js.map +1 -0
  231. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.d.ts +12 -0
  232. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js +9 -0
  233. package/dist/accessi-module/Console/generated/model/passwordExpiredResponse.js.map +1 -0
  234. package/dist/accessi-module/Console/generated/model/permission.d.ts +12 -0
  235. package/dist/accessi-module/Console/generated/model/permission.js +9 -0
  236. package/dist/accessi-module/Console/generated/model/permission.js.map +1 -0
  237. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.d.ts +51 -0
  238. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js +9 -0
  239. package/dist/accessi-module/Console/generated/model/publicRegisterRequest.js.map +1 -0
  240. package/dist/accessi-module/Console/generated/model/registerRequest.d.ts +62 -0
  241. package/dist/accessi-module/Console/generated/model/registerRequest.js +3 -0
  242. package/dist/accessi-module/Console/generated/model/registerRequest.js.map +1 -0
  243. package/dist/accessi-module/Console/generated/model/registerResponse.d.ts +14 -0
  244. package/dist/accessi-module/Console/generated/model/registerResponse.js +3 -0
  245. package/dist/accessi-module/Console/generated/model/registerResponse.js.map +1 -0
  246. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.d.ts +13 -0
  247. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js +9 -0
  248. package/dist/accessi-module/Console/generated/model/resendTwoFactorRequest.js.map +1 -0
  249. package/dist/accessi-module/Console/generated/model/role.d.ts +15 -0
  250. package/dist/accessi-module/Console/generated/model/role.js +3 -0
  251. package/dist/accessi-module/Console/generated/model/role.js.map +1 -0
  252. package/dist/accessi-module/Console/generated/model/ruoliMenu.d.ts +15 -0
  253. package/dist/accessi-module/Console/generated/model/ruoliMenu.js +3 -0
  254. package/dist/accessi-module/Console/generated/model/ruoliMenu.js.map +1 -0
  255. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.d.ts +16 -0
  256. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js +17 -0
  257. package/dist/accessi-module/Console/generated/model/ruoliMenuTipoAbilitazione.js.map +1 -0
  258. package/dist/accessi-module/Console/generated/model/schemaDdlResult.d.ts +20 -0
  259. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js +3 -0
  260. package/dist/accessi-module/Console/generated/model/schemaDdlResult.js.map +1 -0
  261. package/dist/accessi-module/Console/generated/model/schemaDdlSection.d.ts +12 -0
  262. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js +9 -0
  263. package/dist/accessi-module/Console/generated/model/schemaDdlSection.js.map +1 -0
  264. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.d.ts +12 -0
  265. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js +9 -0
  266. package/dist/accessi-module/Console/generated/model/sendResetPasswordEmailRequest.js.map +1 -0
  267. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.d.ts +12 -0
  268. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js +9 -0
  269. package/dist/accessi-module/Console/generated/model/serveResetPasswordPageParams.js.map +1 -0
  270. package/dist/accessi-module/Console/generated/model/serviceTokenDto.d.ts +28 -0
  271. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js +9 -0
  272. package/dist/accessi-module/Console/generated/model/serviceTokenDto.js.map +1 -0
  273. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.d.ts +10 -0
  274. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js +9 -0
  275. package/dist/accessi-module/Console/generated/model/setPasswordLoginPolicyRequest.js.map +1 -0
  276. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.d.ts +13 -0
  277. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js +3 -0
  278. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDto.js.map +1 -0
  279. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.d.ts +18 -0
  280. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js +19 -0
  281. package/dist/accessi-module/Console/generated/model/setStatoRegistrazioneDtoStatoRegistrazione.js.map +1 -0
  282. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.d.ts +14 -0
  283. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js +9 -0
  284. package/dist/accessi-module/Console/generated/model/setUserPasswordRequest.js.map +1 -0
  285. package/dist/accessi-module/Console/generated/model/status.d.ts +12 -0
  286. package/dist/accessi-module/Console/generated/model/status.js +9 -0
  287. package/dist/accessi-module/Console/generated/model/status.js.map +1 -0
  288. package/dist/accessi-module/Console/generated/model/tipoFiltro.d.ts +23 -0
  289. package/dist/accessi-module/Console/generated/model/tipoFiltro.js +3 -0
  290. package/dist/accessi-module/Console/generated/model/tipoFiltro.js.map +1 -0
  291. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.d.ts +14 -0
  292. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js +15 -0
  293. package/dist/accessi-module/Console/generated/model/tipoFiltroFlgEnabled.js.map +1 -0
  294. package/dist/accessi-module/Console/generated/model/tokenResult.d.ts +15 -0
  295. package/dist/accessi-module/Console/generated/model/tokenResult.js +3 -0
  296. package/dist/accessi-module/Console/generated/model/tokenResult.js.map +1 -0
  297. package/dist/accessi-module/Console/generated/model/tokenResultType.d.ts +14 -0
  298. package/dist/accessi-module/Console/generated/model/tokenResultType.js +15 -0
  299. package/dist/accessi-module/Console/generated/model/tokenResultType.js.map +1 -0
  300. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.d.ts +18 -0
  301. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js +3 -0
  302. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDto.js.map +1 -0
  303. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.d.ts +10 -0
  304. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js +14 -0
  305. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoMethod.js.map +1 -0
  306. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.d.ts +13 -0
  307. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js +14 -0
  308. package/dist/accessi-module/Console/generated/model/twoFactorChallengeDtoTwoFactorRequired.js.map +1 -0
  309. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.d.ts +10 -0
  310. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js +9 -0
  311. package/dist/accessi-module/Console/generated/model/updateEnabledStatusRequest.js.map +1 -0
  312. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.d.ts +11 -0
  313. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js +9 -0
  314. package/dist/accessi-module/Console/generated/model/updateFederatedIdentityRequest.js.map +1 -0
  315. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.d.ts +12 -0
  316. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js +9 -0
  317. package/dist/accessi-module/Console/generated/model/updateFederatedProviderRequest.js.map +1 -0
  318. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.d.ts +21 -0
  319. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js +3 -0
  320. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequest.js.map +1 -0
  321. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.d.ts +14 -0
  322. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js +15 -0
  323. package/dist/accessi-module/Console/generated/model/updateFilterTypeRequestFlgEnabled.js.map +1 -0
  324. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.d.ts +17 -0
  325. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js +9 -0
  326. package/dist/accessi-module/Console/generated/model/updateMenuGroupRequest.js.map +1 -0
  327. package/dist/accessi-module/Console/generated/model/updateMenuRequest.d.ts +47 -0
  328. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js +9 -0
  329. package/dist/accessi-module/Console/generated/model/updateMenuRequest.js.map +1 -0
  330. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.d.ts +13 -0
  331. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js +9 -0
  332. package/dist/accessi-module/Console/generated/model/updateMenuTypeRequest.js.map +1 -0
  333. package/dist/accessi-module/Console/generated/model/userDto.d.ts +88 -0
  334. package/dist/accessi-module/Console/generated/model/userDto.js +3 -0
  335. package/dist/accessi-module/Console/generated/model/userDto.js.map +1 -0
  336. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.d.ts +18 -0
  337. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js +19 -0
  338. package/dist/accessi-module/Console/generated/model/userDtoStatoRegistrazione.js.map +1 -0
  339. package/dist/accessi-module/Console/generated/model/userGrantsDto.d.ts +16 -0
  340. package/dist/accessi-module/Console/generated/model/userGrantsDto.js +3 -0
  341. package/dist/accessi-module/Console/generated/model/userGrantsDto.js.map +1 -0
  342. package/dist/accessi-module/Console/generated/model/userGrantsResponse.d.ts +14 -0
  343. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js +3 -0
  344. package/dist/accessi-module/Console/generated/model/userGrantsResponse.js.map +1 -0
  345. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.d.ts +18 -0
  346. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js +9 -0
  347. package/dist/accessi-module/Console/generated/model/verifyTwoFactorRequest.js.map +1 -0
  348. package/dist/accessi-module/Console/help.d.ts +13 -0
  349. package/dist/accessi-module/Console/help.js +471 -0
  350. package/dist/accessi-module/Console/help.js.map +1 -0
  351. package/dist/accessi-module/Console/index.html +153 -0
  352. package/dist/accessi-module/Console/wiki.d.ts +52 -0
  353. package/dist/accessi-module/Console/wiki.js +742 -0
  354. package/dist/accessi-module/Console/wiki.js.map +1 -0
  355. package/dist/accessi-module/Controllers/AccessiConsoleController.d.ts +18 -0
  356. package/dist/accessi-module/Controllers/AccessiConsoleController.js +111 -0
  357. package/dist/accessi-module/Controllers/AccessiConsoleController.js.map +1 -0
  358. package/dist/accessi-module/Controllers/AuthController.d.ts +13 -6
  359. package/dist/accessi-module/Controllers/AuthController.js +185 -82
  360. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  361. package/dist/accessi-module/Controllers/ConfiguratorController.d.ts +1 -5
  362. package/dist/accessi-module/Controllers/ConfiguratorController.js +26 -44
  363. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  364. package/dist/accessi-module/Controllers/ConsoleEntryController.d.ts +14 -0
  365. package/dist/accessi-module/Controllers/ConsoleEntryController.js +128 -0
  366. package/dist/accessi-module/Controllers/ConsoleEntryController.js.map +1 -0
  367. package/dist/accessi-module/Controllers/EmailController.d.ts +4 -6
  368. package/dist/accessi-module/Controllers/EmailController.js +12 -14
  369. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  370. package/dist/accessi-module/Controllers/FiltriController.d.ts +12 -4
  371. package/dist/accessi-module/Controllers/FiltriController.js +144 -6
  372. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  373. package/dist/accessi-module/Controllers/PermissionController.d.ts +20 -2
  374. package/dist/accessi-module/Controllers/PermissionController.js +344 -53
  375. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  376. package/dist/accessi-module/Controllers/SchemaController.d.ts +9 -0
  377. package/dist/accessi-module/Controllers/SchemaController.js +79 -0
  378. package/dist/accessi-module/Controllers/SchemaController.js.map +1 -0
  379. package/dist/accessi-module/Controllers/ServiceTokenController.d.ts +23 -0
  380. package/dist/accessi-module/Controllers/ServiceTokenController.js +176 -0
  381. package/dist/accessi-module/Controllers/ServiceTokenController.js.map +1 -0
  382. package/dist/accessi-module/Controllers/UserController.d.ts +20 -5
  383. package/dist/accessi-module/Controllers/UserController.js +331 -32
  384. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  385. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  386. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +16 -8
  387. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  388. package/dist/accessi-module/Dtos/AdminBootstrapDtos.d.ts +26 -0
  389. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js +100 -0
  390. package/dist/accessi-module/Dtos/AdminBootstrapDtos.js.map +1 -0
  391. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +0 -1
  392. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  393. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +1 -2
  394. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  395. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.d.ts +13 -0
  396. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js +70 -0
  397. package/dist/accessi-module/Dtos/AuthenticatedUserPayloadDto.js.map +1 -0
  398. package/dist/accessi-module/Dtos/BaseResponse.d.ts +22 -0
  399. package/dist/accessi-module/Dtos/BaseResponse.js +106 -1
  400. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  401. package/dist/accessi-module/Dtos/CatalogDtos.d.ts +64 -0
  402. package/dist/accessi-module/Dtos/CatalogDtos.js +322 -0
  403. package/dist/accessi-module/Dtos/CatalogDtos.js.map +1 -0
  404. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.d.ts +3 -0
  405. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js +31 -0
  406. package/dist/accessi-module/Dtos/ConfirmResetPasswordRequest.js.map +1 -0
  407. package/dist/accessi-module/Dtos/ConsoleEntryDtos.d.ts +24 -0
  408. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js +77 -0
  409. package/dist/accessi-module/Dtos/ConsoleEntryDtos.js.map +1 -0
  410. package/dist/accessi-module/Dtos/FederatedIdentityDtos.d.ts +69 -0
  411. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js +236 -0
  412. package/dist/accessi-module/Dtos/FederatedIdentityDtos.js.map +1 -0
  413. package/dist/accessi-module/Dtos/FiltriUtente.js +5 -1
  414. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  415. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  416. package/dist/accessi-module/Dtos/GetMenusResponse.js +1 -1
  417. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  418. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  419. package/dist/accessi-module/Dtos/GetUserByTokenRequest.d.ts +3 -0
  420. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js +26 -0
  421. package/dist/accessi-module/Dtos/GetUserByTokenRequest.js.map +1 -0
  422. package/dist/accessi-module/Dtos/GetUserByTokenResponse.d.ts +5 -0
  423. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js +27 -0
  424. package/dist/accessi-module/Dtos/GetUserByTokenResponse.js.map +1 -0
  425. package/dist/accessi-module/Dtos/GetUsersResponse.d.ts +1 -1
  426. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  427. package/dist/accessi-module/Dtos/LoginRequest.d.ts +1 -1
  428. package/dist/accessi-module/Dtos/LoginRequest.js +3 -2
  429. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  430. package/dist/accessi-module/Dtos/LoginResponse.d.ts +6 -2
  431. package/dist/accessi-module/Dtos/LoginResponse.js +20 -7
  432. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  433. package/dist/accessi-module/Dtos/MenuItem.js +1 -0
  434. package/dist/accessi-module/Dtos/Permission.d.ts +1 -0
  435. package/dist/accessi-module/Dtos/Permission.js +1 -0
  436. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  437. package/dist/accessi-module/Dtos/PublicRegisterRequest.d.ts +5 -0
  438. package/dist/accessi-module/Dtos/PublicRegisterRequest.js +15 -0
  439. package/dist/accessi-module/Dtos/PublicRegisterRequest.js.map +1 -0
  440. package/dist/accessi-module/Dtos/RegisterRequest.d.ts +2 -4
  441. package/dist/accessi-module/Dtos/RegisterRequest.js +17 -27
  442. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  443. package/dist/accessi-module/Dtos/RegisterResponse.d.ts +1 -1
  444. package/dist/accessi-module/Dtos/RegisterResponse.js +3 -3
  445. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  446. package/dist/accessi-module/Dtos/Role.d.ts +4 -0
  447. package/dist/accessi-module/Dtos/Role.js +4 -0
  448. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  449. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  450. package/dist/accessi-module/Dtos/SchemaDtos.d.ts +19 -0
  451. package/dist/accessi-module/Dtos/SchemaDtos.js +84 -0
  452. package/dist/accessi-module/Dtos/SchemaDtos.js.map +1 -0
  453. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.d.ts +4 -0
  454. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js +36 -0
  455. package/dist/accessi-module/Dtos/SendResetPasswordEmailRequest.js.map +1 -0
  456. package/dist/accessi-module/Dtos/ServiceToken.d.ts +34 -0
  457. package/dist/accessi-module/Dtos/ServiceToken.js +128 -0
  458. package/dist/accessi-module/Dtos/ServiceToken.js.map +1 -0
  459. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  460. package/dist/accessi-module/Dtos/SetUserPasswordRequest.d.ts +4 -0
  461. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js +32 -0
  462. package/dist/accessi-module/Dtos/SetUserPasswordRequest.js.map +1 -0
  463. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  464. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +4 -0
  465. package/dist/accessi-module/Dtos/TipoAbilitazione.js +4 -0
  466. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  467. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  468. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  469. package/dist/accessi-module/Dtos/TwoFactorDtos.d.ts +13 -0
  470. package/dist/accessi-module/Dtos/TwoFactorDtos.js +60 -0
  471. package/dist/accessi-module/Dtos/TwoFactorDtos.js.map +1 -0
  472. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  473. package/dist/accessi-module/Dtos/UserDto.d.ts +9 -4
  474. package/dist/accessi-module/Dtos/UserDto.js +37 -22
  475. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  476. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  477. package/dist/accessi-module/Dtos/UserGrantsResponse.d.ts +5 -0
  478. package/dist/accessi-module/Dtos/UserGrantsResponse.js +27 -0
  479. package/dist/accessi-module/Dtos/UserGrantsResponse.js.map +1 -0
  480. package/dist/accessi-module/Dtos/index.d.ts +13 -0
  481. package/dist/accessi-module/Dtos/index.js +13 -0
  482. package/dist/accessi-module/Dtos/index.js.map +1 -1
  483. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.d.ts +33 -0
  484. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js +106 -0
  485. package/dist/accessi-module/Services/AdminBootstrapService/AdminBootstrapService.js.map +1 -0
  486. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +46 -5
  487. package/dist/accessi-module/Services/AuthService/AuthService.js +204 -50
  488. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  489. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.d.ts +3 -1
  490. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js +5 -1
  491. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  492. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +9 -2
  493. package/dist/accessi-module/Services/EmailService/EmailService.js +47 -22
  494. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  495. package/dist/accessi-module/Services/FiltriService/FiltriService.d.ts +18 -3
  496. package/dist/accessi-module/Services/FiltriService/FiltriService.js +92 -16
  497. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  498. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +77 -2
  499. package/dist/accessi-module/Services/PermissionService/PermissionService.js +603 -206
  500. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  501. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.d.ts +36 -0
  502. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js +125 -0
  503. package/dist/accessi-module/Services/SchemaExportService/SchemaExportService.js.map +1 -0
  504. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.d.ts +75 -0
  505. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js +265 -0
  506. package/dist/accessi-module/Services/ServiceTokenService/ServiceTokenService.js.map +1 -0
  507. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.d.ts +27 -0
  508. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js +175 -0
  509. package/dist/accessi-module/Services/TwoFactorService/TwoFactorService.js.map +1 -0
  510. package/dist/accessi-module/Services/UserService/UserService.d.ts +66 -5
  511. package/dist/accessi-module/Services/UserService/UserService.js +507 -334
  512. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  513. package/dist/accessi-module/Views/reset-password.html +229 -213
  514. package/dist/accessi-module/accessiRuntime.d.ts +45 -0
  515. package/dist/accessi-module/accessiRuntime.js +39 -0
  516. package/dist/accessi-module/accessiRuntime.js.map +1 -0
  517. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.d.ts +83 -0
  518. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js +360 -0
  519. package/dist/accessi-module/database-updates/AccessiCatalogMigrator.js.map +1 -0
  520. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.d.ts +58 -10
  521. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +506 -179
  522. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  523. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.d.ts +5 -0
  524. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js +79 -0
  525. package/dist/accessi-module/database-updates/accessiOptionsFromEnv.js.map +1 -0
  526. package/dist/accessi-module/database-updates/accessiSchema.d.ts +67 -0
  527. package/dist/accessi-module/database-updates/accessiSchema.js +124 -0
  528. package/dist/accessi-module/database-updates/accessiSchema.js.map +1 -0
  529. package/dist/accessi-module/database-updates/optionalColumns.d.ts +7 -0
  530. package/dist/accessi-module/database-updates/optionalColumns.js +58 -0
  531. package/dist/accessi-module/database-updates/optionalColumns.js.map +1 -0
  532. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.d.ts +1 -0
  533. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js +69 -0
  534. package/dist/accessi-module/database-updates/runAccessiCatalogMigrations.js.map +1 -0
  535. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js +15 -53
  536. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  537. package/dist/accessi-module/federated-auth/FederatedAuthController.d.ts +33 -0
  538. package/dist/accessi-module/federated-auth/FederatedAuthController.js +373 -0
  539. package/dist/accessi-module/federated-auth/FederatedAuthController.js.map +1 -0
  540. package/dist/accessi-module/federated-auth/FederatedAuthService.d.ts +102 -0
  541. package/dist/accessi-module/federated-auth/FederatedAuthService.js +461 -0
  542. package/dist/accessi-module/federated-auth/FederatedAuthService.js.map +1 -0
  543. package/dist/accessi-module/federated-auth/FederatedAuthTypes.d.ts +53 -0
  544. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js +3 -0
  545. package/dist/accessi-module/federated-auth/FederatedAuthTypes.js.map +1 -0
  546. package/dist/accessi-module/index.d.ts +29 -0
  547. package/dist/accessi-module/index.js +90 -20
  548. package/dist/accessi-module/index.js.map +1 -1
  549. package/dist/accessi-module/jwt/jwt.strategy.d.ts +1 -1
  550. package/dist/accessi-module/jwt/jwt.strategy.js +16 -7
  551. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  552. package/dist/accessi-module/middleware/accessiRequirements.d.ts +23 -1
  553. package/dist/accessi-module/middleware/accessiRequirements.js +7 -0
  554. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  555. package/dist/accessi-module/middleware/authenticateGen.d.ts +16 -1
  556. package/dist/accessi-module/middleware/authenticateGen.js +63 -25
  557. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  558. package/dist/accessi-module/security/AccessiHttpExceptionFilter.d.ts +12 -0
  559. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js +77 -0
  560. package/dist/accessi-module/security/AccessiHttpExceptionFilter.js.map +1 -0
  561. package/dist/accessi-module/security/accessControl.d.ts +48 -2
  562. package/dist/accessi-module/security/accessControl.js +84 -8
  563. package/dist/accessi-module/security/accessControl.js.map +1 -1
  564. package/dist/accessi-module/security/accessiValidation.d.ts +9 -0
  565. package/dist/accessi-module/security/accessiValidation.js +41 -0
  566. package/dist/accessi-module/security/accessiValidation.js.map +1 -0
  567. package/dist/accessi-module/security/adminBootstrap.d.ts +8 -0
  568. package/dist/accessi-module/security/adminBootstrap.js +41 -0
  569. package/dist/accessi-module/security/adminBootstrap.js.map +1 -0
  570. package/dist/accessi-module/security/authenticatedToken.d.ts +16 -2
  571. package/dist/accessi-module/security/authenticatedToken.js +31 -4
  572. package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
  573. package/dist/accessi-module/security/consoleEntry.d.ts +16 -0
  574. package/dist/accessi-module/security/consoleEntry.js +50 -0
  575. package/dist/accessi-module/security/consoleEntry.js.map +1 -0
  576. package/dist/accessi-module/security/emailConfiguration.d.ts +20 -0
  577. package/dist/accessi-module/security/emailConfiguration.js +41 -0
  578. package/dist/accessi-module/security/emailConfiguration.js.map +1 -0
  579. package/dist/accessi-module/security/passwordPolicy.d.ts +21 -0
  580. package/dist/accessi-module/security/passwordPolicy.js +71 -0
  581. package/dist/accessi-module/security/passwordPolicy.js.map +1 -0
  582. package/dist/accessi-module/security/passwordResetToken.d.ts +13 -3
  583. package/dist/accessi-module/security/passwordResetToken.js +13 -5
  584. package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
  585. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +3 -3
  586. package/dist/accessi-module/security/publicAuthRateLimit.js +32 -8
  587. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
  588. package/dist/accessi-module/security/serviceTokenGuard.d.ts +25 -0
  589. package/dist/accessi-module/security/serviceTokenGuard.js +85 -0
  590. package/dist/accessi-module/security/serviceTokenGuard.js.map +1 -0
  591. package/dist/accessi-module/security/serviceTokenRateLimit.d.ts +8 -0
  592. package/dist/accessi-module/security/serviceTokenRateLimit.js +49 -0
  593. package/dist/accessi-module/security/serviceTokenRateLimit.js.map +1 -0
  594. package/dist/accessi-module/startupLog.d.ts +6 -0
  595. package/dist/accessi-module/startupLog.js +25 -0
  596. package/dist/accessi-module/startupLog.js.map +1 -0
  597. package/dist/allegati-module/AllegatiModule.d.ts +12 -1
  598. package/dist/allegati-module/AllegatiModule.js +11 -1
  599. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  600. package/dist/allegati-module/Controllers/AllegatiController.d.ts +2 -1
  601. package/dist/allegati-module/Controllers/AllegatiController.js +23 -15
  602. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  603. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  604. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  605. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  606. package/dist/allegati-module/Dtos/index.js.map +1 -1
  607. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  608. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  609. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  610. package/dist/allegati-module/Services/AllegatiService/AllegatiService.d.ts +10 -3
  611. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +150 -101
  612. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  613. package/dist/allegati-module/index.js.map +1 -1
  614. package/dist/allegati-module/security/allegatiAuthorizationGuard.d.ts +14 -0
  615. package/dist/allegati-module/security/allegatiAuthorizationGuard.js +70 -0
  616. package/dist/allegati-module/security/allegatiAuthorizationGuard.js.map +1 -0
  617. package/dist/autobind.d.ts +10 -3
  618. package/dist/autobind.js +24 -9
  619. package/dist/autobind.js.map +1 -1
  620. package/dist/emilsoftware-utilities-2.0.0-dev.50.tgz +0 -0
  621. package/dist/firebird-compat.d.ts +27 -6
  622. package/dist/firebird-compat.js +150 -135
  623. package/dist/firebird-compat.js.map +1 -1
  624. package/dist/index.d.ts +2 -2
  625. package/dist/index.js +2 -2
  626. package/dist/index.js.map +1 -1
  627. package/dist/initEmilsoftwareModule.js +35 -9
  628. package/dist/initEmilsoftwareModule.js.map +1 -1
  629. package/dist/scripts/generateAccessiOpenApi.d.ts +1 -0
  630. package/dist/scripts/generateAccessiOpenApi.js +57 -0
  631. package/dist/scripts/generateAccessiOpenApi.js.map +1 -0
  632. package/dist/scripts/generateAccessiWiki.d.ts +1 -0
  633. package/dist/scripts/generateAccessiWiki.js +131 -0
  634. package/dist/scripts/generateAccessiWiki.js.map +1 -0
  635. package/dist/swagger/SwaggerConfig.d.ts +7 -1
  636. package/dist/swagger/SwaggerConfig.js +23 -8
  637. package/dist/swagger/SwaggerConfig.js.map +1 -1
  638. package/package.json +105 -83
@@ -1 +1 @@
1
- {"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/UserController.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Body,\r\n Controller,\r\n Delete,\r\n Get,\r\n HttpException,\r\n HttpStatus,\r\n Param,\r\n ParseBoolPipe,\r\n ParseIntPipe,\r\n Patch,\r\n Post,\r\n Put,\r\n Query,\r\n Inject,\r\n Req,\r\n Res,\r\n UseGuards,\r\n} from '@nestjs/common';\r\nimport { Request, Response } from 'express';\r\nimport {\r\n ApiBearerAuth,\r\n ApiBody,\r\n ApiCreatedResponse,\r\n ApiOperation,\r\n ApiParam,\r\n ApiQuery,\r\n ApiResponse,\r\n ApiTags,\r\n} from '@nestjs/swagger';\r\nimport { join } from 'path';\r\nimport { Logger } from '../../Logger';\r\nimport { RestUtilities } from '../../Utilities';\r\nimport { AccessiOptions } from '../AccessiModule';\r\nimport { GetUsersResponse } from '../Dtos/GetUsersResponse';\r\nimport { RegisterRequest } from '../Dtos/RegisterRequest';\r\nimport { RegisterResponse } from '../Dtos/RegisterResponse';\r\nimport { SetStatoRegistrazioneDto } from '../Dtos/SetStatoRegistrazione';\r\nimport { UserDto } from '../Dtos/UserDto';\r\nimport { EmailService } from '../Services/EmailService/EmailService';\r\nimport { UserService } from '../Services/UserService/UserService';\r\nimport { JwtSimpleGuard } from '../jwt/jwt.strategy';\r\nimport {\r\n checkPublicAuthRateLimit,\r\n sendPublicAuthRateLimitExceeded,\r\n} from '../security/publicAuthRateLimit';\r\nimport {\r\n ensureSelfOrSuperUser,\r\n ensureSuperUser,\r\n getAuthenticatedAccessiUser,\r\n hasPrivilegedUserChanges,\r\n} from '../security/accessControl';\r\n\r\n@ApiTags('User')\r\n@Controller('accessi/user')\r\nexport class UserController {\r\n private readonly logger = new Logger(UserController.name);\r\n\r\n constructor(\r\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\r\n private readonly userService: UserService,\r\n private readonly emailService: EmailService,\r\n ) {}\r\n\r\n private sendControllerError(res: Response, error: unknown) {\r\n const status =\r\n error instanceof HttpException ? error.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR;\r\n return RestUtilities.sendErrorMessage(res, error, UserController.name, status);\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Serve la pagina di reset password',\r\n operationId: 'serveResetPasswordPageUser',\r\n })\r\n @ApiParam({\r\n name: 'token',\r\n description: 'Token per il reset della password',\r\n required: true,\r\n })\r\n @Get('reset-password/:token')\r\n async serveResetPasswordPage(@Res() res: Response, @Param('token') token: string) {\r\n return res.sendFile(join(__dirname, '..', 'Views', 'reset-password.html'));\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Recupera la lista degli utenti',\r\n operationId: 'getUsers',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: 'Lista utenti recuperata con successo',\r\n type: GetUsersResponse,\r\n })\r\n @ApiResponse({ status: 401, description: 'Credenziali non valide' })\r\n @ApiQuery({\r\n name: 'email',\r\n required: false,\r\n description: \"Email dell'utente da cercare\",\r\n })\r\n @ApiQuery({\r\n name: 'codiceUtente',\r\n required: false,\r\n description: \"Codice dell'utente da cercare\",\r\n })\r\n @ApiQuery({\r\n name: 'includeExtensionFields',\r\n required: false,\r\n description: 'Includi extension fields',\r\n })\r\n @ApiQuery({\r\n name: 'includeGrants',\r\n required: false,\r\n description: 'Includi permessi',\r\n })\r\n @ApiBearerAuth()\r\n @UseGuards(JwtSimpleGuard)\r\n @Get('get-users')\r\n async getUsers(\r\n @Req() request: Request,\r\n @Res() res: Response,\r\n @Query('email') email?: string,\r\n @Query('codiceUtente') codiceUtente?: number,\r\n @Query('includeExtensionFields', new ParseBoolPipe({ optional: true }))\r\n includeExtensionFields?: boolean,\r\n @Query('includeGrants', new ParseBoolPipe({ optional: true }))\r\n includeGrants?: boolean,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono consultare gli utenti.',\r\n );\r\n\r\n const filters = { email, codiceUtente };\r\n const options = {\r\n includeExtensionFields: includeExtensionFields ?? true,\r\n includeGrants: includeGrants ?? true,\r\n };\r\n\r\n const users = await this.userService.getUsers(filters, options);\r\n return RestUtilities.sendBaseResponse(res, users);\r\n } catch (error) {\r\n this.logger.error('Errore durante il recupero degli utenti: ', error);\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Elimina un utente',\r\n operationId: 'deleteUser',\r\n description: 'Imposta lo stato di un utente a eliminato senza rimuovere i record.',\r\n })\r\n @ApiParam({\r\n name: 'codiceUtente',\r\n description: \"Codice identificativo dell'utente da eliminare\",\r\n required: true,\r\n example: '123',\r\n })\r\n @ApiResponse({ status: 200, description: 'Utente eliminato con successo' })\r\n @ApiResponse({\r\n status: 400,\r\n description: 'Errore nei parametri della richiesta',\r\n })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @ApiBearerAuth()\r\n @UseGuards(JwtSimpleGuard)\r\n @Delete('delete-user/:codiceUtente')\r\n async deleteUser(\r\n @Req() request: Request,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono eliminare utenti.',\r\n );\r\n\r\n await this.userService.deleteUser(codiceUtente);\r\n return RestUtilities.sendOKMessage(res, \"L'utente e' stato eliminato con successo.\");\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Imposta lo stato di registrazione di un utente',\r\n operationId: 'setStatoRegistrazione',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: 'Stato registrazione aggiornato con successo',\r\n })\r\n @ApiResponse({\r\n status: 400,\r\n description: 'Errore nei parametri della richiesta',\r\n })\r\n @ApiResponse({\r\n status: 500,\r\n description: 'Errore interno del server',\r\n })\r\n @ApiBody({ type: SetStatoRegistrazioneDto })\r\n @ApiBearerAuth()\r\n @UseGuards(JwtSimpleGuard)\r\n @Post('set-stato')\r\n async setStatoRegistrazione(\r\n @Req() request: Request,\r\n @Body() body: SetStatoRegistrazioneDto,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono modificare lo stato di registrazione.',\r\n );\r\n\r\n const { codiceUtente, statoRegistrazione } = body;\r\n if (!codiceUtente) throw new Error('Il codice utente e\\' obbligatorio.');\r\n if (statoRegistrazione === undefined) {\r\n throw new Error('Lo stato registrazione e\\' obbligatorio.');\r\n }\r\n\r\n await this.userService.setStato(codiceUtente, statoRegistrazione);\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `Lo stato dell'utente ${codiceUtente} e' stato aggiornato a ${statoRegistrazione}.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Registra un nuovo utente',\r\n operationId: 'register',\r\n })\r\n @ApiBody({\r\n type: RegisterRequest,\r\n description: \"Dati necessari per la registrazione dell'utente\",\r\n })\r\n @ApiCreatedResponse({\r\n description:\r\n 'Utente registrato con successo. Restituisce il codice utente e invia una mail di reset password.',\r\n type: RegisterResponse,\r\n })\r\n @ApiResponse({\r\n status: HttpStatus.BAD_REQUEST,\r\n description: 'Errore nella registrazione.',\r\n })\r\n @ApiResponse({\r\n status: HttpStatus.INTERNAL_SERVER_ERROR,\r\n description: 'Errore interno del server durante la registrazione o l\\'invio email.',\r\n })\r\n @Post('register')\r\n async register(\r\n @Req() request: Request,\r\n @Body() registrationData: RegisterRequest,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n const rateLimitDecision = checkPublicAuthRateLimit(\r\n this.accessiOptions,\r\n 'register',\r\n request,\r\n [registrationData?.email],\r\n );\r\n if (!rateLimitDecision.allowed) {\r\n return sendPublicAuthRateLimitExceeded(res, rateLimitDecision.retryAfterSeconds);\r\n }\r\n\r\n const codiceUtente = await this.userService.register(registrationData, {\r\n allowPrivilegedFields: false,\r\n });\r\n\r\n await this.emailService.sendPasswordResetEmail(registrationData.email);\r\n return RestUtilities.sendBaseResponse(res, codiceUtente);\r\n } catch (error) {\r\n const status =\r\n error instanceof HttpException ? error.getStatus() : HttpStatus.BAD_REQUEST;\r\n return RestUtilities.sendErrorMessage(res, error, UserController.name, status);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Aggiorna un utente esistente',\r\n operationId: 'updateUtente',\r\n })\r\n @ApiParam({\r\n name: 'codiceUtente',\r\n description: \"Codice identificativo dell'utente da aggiornare\",\r\n required: true,\r\n example: '123',\r\n })\r\n @ApiBody({\r\n type: UserDto,\r\n description: \"Dati aggiornati dell'utente\",\r\n })\r\n @ApiResponse({\r\n status: HttpStatus.OK,\r\n description: 'Utente aggiornato con successo',\r\n })\r\n @ApiResponse({ status: 400, description: \"Errore nell'aggiornamento\" })\r\n @ApiBearerAuth()\r\n @UseGuards(JwtSimpleGuard)\r\n @Put('update-user/:codiceUtente')\r\n async updateUtente(\r\n @Req() request: Request,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Body() user: UserDto,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n const authenticatedUser = getAuthenticatedAccessiUser(request);\r\n const isPrivilegedUpdate = hasPrivilegedUserChanges(user);\r\n\r\n if (isPrivilegedUpdate) {\r\n ensureSuperUser(\r\n authenticatedUser,\r\n 'Solo gli amministratori possono modificare ruoli, permessi o flag privilegiati.',\r\n );\r\n } else {\r\n ensureSelfOrSuperUser(\r\n authenticatedUser,\r\n codiceUtente,\r\n 'Puoi modificare solo il tuo profilo.',\r\n );\r\n }\r\n\r\n if (user.codiceUtente !== undefined && user.codiceUtente !== codiceUtente) {\r\n throw new Error('Il codice utente nel body non coincide con quello del path.');\r\n }\r\n\r\n await this.userService.updateUser(codiceUtente, user, {\r\n allowPrivilegedChanges: authenticatedUser.flagSuper,\r\n });\r\n\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `L'utente ${codiceUtente} e' stato aggiornato con successo.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Imposta il consenso GDPR per un utente',\r\n operationId: 'setGdpr',\r\n })\r\n @ApiParam({\r\n name: 'codiceUtente',\r\n description: \"Codice identificativo dell'utente che accetta il GDPR\",\r\n required: true,\r\n example: '123',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: 'Consenso GDPR impostato con successo',\r\n })\r\n @ApiResponse({ status: 400, description: 'Errore nella richiesta' })\r\n @ApiBearerAuth()\r\n @UseGuards(JwtSimpleGuard)\r\n @Patch('set-gdpr/:codiceUtente')\r\n async setGdpr(\r\n @Req() request: Request,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSelfOrSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n codiceUtente,\r\n 'Puoi impostare il GDPR solo sul tuo utente.',\r\n );\r\n\r\n await this.userService.setGdpr(codiceUtente);\r\n return RestUtilities.sendOKMessage(res, `L'utente ${codiceUtente} ha accettato il GDPR.`);\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UserController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/UserController.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n BadRequestException,\n Body,\n Controller,\n Delete,\n Get,\n HttpException,\n HttpStatus,\n NotFoundException,\n Param,\n ParseBoolPipe,\n ParseIntPipe,\n Patch,\n Post,\n Put,\n Query,\n Inject,\n Req,\n Res,\n UseGuards,\n} from '@nestjs/common';\nimport { Request, Response } from 'express';\nimport {\n ApiBearerAuth,\n ApiBody,\n ApiCreatedResponse,\n ApiOperation,\n ApiParam,\n ApiQuery,\n ApiResponse,\n ApiTags,\n} from '@nestjs/swagger';\nimport { join } from 'path';\nimport { Logger } from '../../Logger';\nimport { RestUtilities } from '../../Utilities';\nimport type { AccessiOptions } from '../AccessiModule';\nimport { ActionResponse, ErrorResponse } from '../Dtos/BaseResponse';\nimport { GetUsersResponse } from '../Dtos/GetUsersResponse';\nimport { PublicRegisterRequest } from '../Dtos/PublicRegisterRequest';\nimport { RegisterResponse } from '../Dtos/RegisterResponse';\nimport { RegisterRequest } from '../Dtos/RegisterRequest';\nimport { SetStatoRegistrazioneDto } from '../Dtos/SetStatoRegistrazione';\nimport { SetUserPasswordRequest } from '../Dtos/SetUserPasswordRequest';\nimport { UserDto } from '../Dtos/UserDto';\nimport { AuthService } from '../Services/AuthService/AuthService';\nimport { EmailService } from '../Services/EmailService/EmailService';\nimport { UserService } from '../Services/UserService/UserService';\nimport { JwtSimpleGuard } from '../jwt/jwt.strategy';\nimport {\n checkPublicAuthRateLimit,\n sendPublicAuthRateLimitExceeded,\n} from '../security/publicAuthRateLimit';\nimport {\n ensureAdmin,\n ensureCanManageTargetUser,\n ensurePrivilegeFlagChanges,\n ensureSelfOrSuperUser,\n ensureUserManagement,\n getAuthenticatedAccessiUser,\n hasPrivilegedUserChanges,\n} from '../security/accessControl';\nimport type { AuthenticatedAccessiUser } from '../security/accessControl';\nimport { assertEmailConfigured } from '../security/emailConfiguration';\nimport { StatoRegistrazione } from '../Dtos/StatoRegistrazione';\n\n@ApiTags('User')\n@Controller('accessi/user')\n/**\n * Gestione utenti: la registrazione pubblica e opt-in, mentre creazione, stato e profili privilegiati\n * richiedono un superutente Accessi. Le API restituiscono sempre il wrapper `BaseResponse` storico.\n */\nexport class UserController {\n private readonly logger = new Logger(UserController.name);\n\n constructor(\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\n private readonly userService: UserService,\n private readonly emailService: EmailService,\n private readonly authService: AuthService,\n ) {}\n\n private sendControllerError(res: Response, error: unknown) {\n // Lo status viene derivato centralmente da RestUtilities (HttpException o 500).\n return RestUtilities.sendErrorMessage(res, error, UserController.name);\n }\n\n /**\n * Verifica che il target esista e che l'attore possa gestirlo (rango attore >=\n * rango target: ADMIN > SUPER > utente). Restituisce lo snapshot corrente del\n * target, così i chiamanti possono controllare se e' admin.\n */\n private async ensureManageableTarget(\n actor: AuthenticatedAccessiUser,\n codiceUtente: number,\n ) {\n const target = await this.userService.getAuthenticatedUserSnapshot(codiceUtente);\n if (!target) {\n throw new NotFoundException(`Nessun utente con codice ${codiceUtente}.`);\n }\n ensureCanManageTargetUser(actor, target);\n return target;\n }\n\n @ApiOperation({\n summary: 'Serve la pagina di reset password',\n operationId: 'serveResetPasswordPageUser',\n })\n @ApiParam({\n name: 'token',\n description: 'Token per il reset della password',\n required: true,\n })\n @Get('reset-password/:token')\n async serveResetPasswordPage(@Res() res: Response, @Param('token') _token: string) {\n return res.sendFile(join(__dirname, '..', 'Views', 'reset-password.html'));\n }\n\n @ApiOperation({\n summary: 'Recupera la lista degli utenti',\n operationId: 'getUsers',\n })\n @ApiResponse({\n status: 200,\n description: 'Lista utenti recuperata con successo',\n type: GetUsersResponse,\n })\n @ApiResponse({ status: 401, description: 'Credenziali non valide', type: ErrorResponse })\n @ApiResponse({ status: 403, description: 'Operazione non autorizzata', type: ErrorResponse })\n @ApiResponse({ status: 500, description: 'Errore interno del server', type: ErrorResponse })\n @ApiQuery({\n name: 'email',\n required: false,\n description: \"Email dell'utente da cercare\",\n type: String,\n })\n @ApiQuery({\n name: 'codiceUtente',\n required: false,\n description: \"Codice dell'utente da cercare\",\n type: Number,\n })\n @ApiQuery({\n name: 'includeExtensionFields',\n required: false,\n description: 'Includi extension fields',\n type: Boolean,\n })\n @ApiQuery({\n name: 'includeGrants',\n required: false,\n description: 'Includi permessi',\n type: Boolean,\n })\n @ApiQuery({\n name: 'limit',\n required: false,\n description: 'Numero massimo di utenti restituiti (1-1000). Omesso = tutti.',\n type: Number,\n })\n @ApiQuery({\n name: 'offset',\n required: false,\n description: 'Numero di utenti da saltare (paginazione).',\n type: Number,\n })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Get('get-users')\n async getUsers(\n @Req() request: Request,\n @Res() res: Response,\n @Query('email') email?: string,\n @Query('codiceUtente', new ParseIntPipe({ optional: true })) codiceUtente?: number,\n @Query('includeExtensionFields', new ParseBoolPipe({ optional: true }))\n includeExtensionFields?: boolean,\n @Query('includeGrants', new ParseBoolPipe({ optional: true }))\n includeGrants?: boolean,\n @Query('limit', new ParseIntPipe({ optional: true })) limit?: number,\n @Query('offset', new ParseIntPipe({ optional: true })) offset?: number,\n ) {\n try {\n ensureUserManagement(\n getAuthenticatedAccessiUser(request),\n 'Solo gli amministratori possono consultare gli utenti.',\n );\n\n const filters = { email, codiceUtente, limit, offset };\n const options = {\n includeExtensionFields: includeExtensionFields ?? true,\n includeGrants: includeGrants ?? true,\n };\n\n const users = await this.userService.getUsers(filters, options);\n const total = await this.userService.countUsers({ email, codiceUtente });\n res.setHeader('X-Total-Count', String(total));\n return RestUtilities.sendBaseResponse(res, users);\n } catch (error) {\n this.logger.error('Errore durante il recupero degli utenti: ', error);\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Elimina un utente',\n operationId: 'deleteUser',\n description: 'Imposta lo stato di un utente a eliminato senza rimuovere i record.',\n })\n @ApiParam({\n name: 'codiceUtente',\n description: \"Codice identificativo dell'utente da eliminare\",\n required: true,\n example: 123,\n })\n @ApiResponse({ status: 200, description: 'Utente eliminato con successo', type: ActionResponse })\n @ApiResponse({\n status: 400,\n description: 'Errore nei parametri della richiesta',\n type: ErrorResponse,\n })\n @ApiResponse({ status: 500, description: 'Errore interno del server', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Delete('delete-user/:codiceUtente')\n async deleteUser(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(\n authenticatedUser,\n 'Solo gli amministratori possono eliminare utenti.',\n );\n\n const target = await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n if (target.flagAdmin) {\n await this.userService.assertNotLastActiveAdmin(codiceUtente);\n }\n\n await this.userService.deleteUser(codiceUtente);\n return RestUtilities.sendOKMessage(res, \"L'utente e' stato eliminato con successo.\");\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Elimina definitivamente un utente',\n operationId: 'deleteUserPermanently',\n description: 'Rimuove l utente e tutti i record collegati. Operazione distruttiva riservata agli admin.',\n })\n @ApiParam({\n name: 'codiceUtente',\n description: \"Codice identificativo dell'utente da eliminare definitivamente\",\n required: true,\n example: 123,\n })\n @ApiResponse({ status: 200, description: 'Utente eliminato definitivamente', type: ActionResponse })\n @ApiResponse({ status: 400, description: 'Errore nei parametri della richiesta', type: ErrorResponse })\n @ApiResponse({ status: 403, description: 'Operazione non autorizzata', type: ErrorResponse })\n @ApiResponse({ status: 404, description: 'Utente non trovato', type: ErrorResponse })\n @ApiResponse({ status: 500, description: 'Errore interno del server', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Delete('delete-user-permanent/:codiceUtente')\n async deleteUserPermanently(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureAdmin(\n authenticatedUser,\n 'Solo gli admin possono eliminare definitivamente un utente.',\n );\n\n if (authenticatedUser.codiceUtente === codiceUtente) {\n throw new BadRequestException('Non puoi eliminare definitivamente il tuo stesso utente.');\n }\n\n const target = await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n if (target.flagAdmin) {\n await this.userService.assertNotLastActiveAdmin(codiceUtente);\n }\n\n await this.userService.deleteUserPermanently(codiceUtente);\n return RestUtilities.sendOKMessage(res, \"L'utente e' stato eliminato definitivamente.\");\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Forza l invio dell email di reset password a un utente',\n operationId: 'forcePasswordReset',\n description: 'Riservato al superutente. Richiede un servizio email configurato; altrimenti risponde con ACCESSI_EMAIL_NOT_CONFIGURED.',\n })\n @ApiParam({ name: 'codiceUtente', description: 'Codice identificativo dell utente', required: true, example: 123, type: Number })\n @ApiResponse({ status: 200, description: 'Email di reset inviata', type: ActionResponse })\n @ApiResponse({ status: 400, description: 'Servizio email non configurato', type: ErrorResponse })\n @ApiResponse({ status: 404, description: 'Utente non trovato', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Post('force-password-reset/:codiceUtente')\n async forcePasswordReset(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(\n authenticatedUser,\n 'Solo gli amministratori possono forzare il reset password.',\n );\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n await this.userService.forcePasswordReset(codiceUtente);\n return RestUtilities.sendOKMessage(res, `Email di reset inviata all utente ${codiceUtente}.`);\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Forza il reset password per tutti gli utenti con password legacy',\n operationId: 'forcePasswordResetLegacy',\n description: 'Riservato al superutente. Invia l email di reset a tutti gli utenti la cui password non e ancora nel formato moderno. Richiede un servizio email configurato.',\n })\n @ApiResponse({ status: 200, description: 'Email di reset inviate', type: ActionResponse })\n @ApiResponse({ status: 400, description: 'Servizio email non configurato', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Post('force-password-reset-legacy')\n async forcePasswordResetLegacy(@Req() request: Request, @Res() res: Response) {\n try {\n ensureUserManagement(\n getAuthenticatedAccessiUser(request),\n 'Solo gli amministratori possono forzare il reset password.',\n );\n const sent = await this.userService.forcePasswordResetForLegacyPasswords();\n return RestUtilities.sendOKMessage(res, `Email di reset inviata a ${sent} utenti con password legacy.`);\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Imposta direttamente la password di un utente',\n operationId: 'setUserPassword',\n description: 'Riservato agli amministratori. Hasha la password, aggiorna la scadenza secondo la policy e non invia email.',\n })\n @ApiParam({ name: 'codiceUtente', description: 'Codice identificativo dell utente', required: true, example: 123, type: Number })\n @ApiBody({ type: SetUserPasswordRequest })\n @ApiResponse({ status: 200, description: 'Password aggiornata', type: ActionResponse })\n @ApiResponse({ status: 400, description: 'Password non valida', type: ErrorResponse })\n @ApiResponse({ status: 403, description: 'Operazione non autorizzata', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Post('set-password/:codiceUtente')\n async setUserPassword(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Body() body: SetUserPasswordRequest,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(\n authenticatedUser,\n 'Solo gli amministratori possono impostare la password di un utente.',\n );\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n\n await this.authService.setPassword(codiceUtente, body.newPassword);\n return RestUtilities.sendOKMessage(res, `Password dell utente ${codiceUtente} aggiornata.`);\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Imposta lo stato di registrazione di un utente',\n operationId: 'setStatoRegistrazione',\n })\n @ApiResponse({\n status: 200,\n description: 'Stato registrazione aggiornato con successo',\n type: ActionResponse,\n })\n @ApiResponse({\n status: 400,\n description: 'Errore nei parametri della richiesta',\n type: ErrorResponse,\n })\n @ApiResponse({\n status: 500,\n description: 'Errore interno del server',\n type: ErrorResponse,\n })\n @ApiBody({ type: SetStatoRegistrazioneDto })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Post('set-stato')\n async setStatoRegistrazione(\n @Req() request: Request,\n @Body() body: SetStatoRegistrazioneDto,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(\n authenticatedUser,\n 'Solo gli amministratori possono modificare lo stato di registrazione.',\n );\n\n const { codiceUtente, statoRegistrazione } = body;\n if (!codiceUtente) throw new BadRequestException('Il codice utente e\\' obbligatorio.');\n if (statoRegistrazione === undefined) {\n throw new BadRequestException('Lo stato registrazione e\\' obbligatorio.');\n }\n\n const target = await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n const disabling = statoRegistrazione === StatoRegistrazione.DELETE\n || statoRegistrazione === StatoRegistrazione.BLOCC;\n if (target.flagAdmin && disabling) {\n await this.userService.assertNotLastActiveAdmin(codiceUtente);\n }\n\n await this.userService.setStato(codiceUtente, statoRegistrazione);\n return RestUtilities.sendOKMessage(\n res,\n `Lo stato dell'utente ${codiceUtente} e' stato aggiornato a ${statoRegistrazione}.`,\n );\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Registra un nuovo utente',\n description: 'Disponibile soltanto quando publicRegistration.enabled e true. Per utenti SSO usare il provisioning master nel tag Federated authentication.',\n operationId: 'register',\n })\n @ApiBody({\n type: PublicRegisterRequest,\n description: \"Dati necessari per la registrazione dell'utente\",\n })\n @ApiCreatedResponse({\n description:\n 'Utente registrato con successo. Restituisce il codice utente e invia una mail di reset password.',\n type: RegisterResponse,\n })\n @ApiResponse({\n status: HttpStatus.BAD_REQUEST,\n description: 'Errore nella registrazione.',\n type: ErrorResponse,\n })\n @ApiResponse({\n status: HttpStatus.INTERNAL_SERVER_ERROR,\n description: 'Errore interno del server durante la registrazione o l\\'invio email.',\n type: ErrorResponse,\n })\n @Post('register')\n async register(\n @Req() request: Request,\n @Body() registrationData: PublicRegisterRequest,\n @Res() res: Response,\n ) {\n try {\n if (this.accessiOptions.publicRegistration?.enabled !== true) {\n throw new HttpException(\n 'La registrazione pubblica e disabilitata. Un amministratore deve creare l utente.',\n HttpStatus.FORBIDDEN,\n );\n }\n\n const rateLimitDecision = checkPublicAuthRateLimit(\n this.accessiOptions,\n 'register',\n request,\n [registrationData?.email],\n );\n if (!rateLimitDecision.allowed) {\n return sendPublicAuthRateLimitExceeded(res, rateLimitDecision.retryAfterSeconds);\n }\n\n assertEmailConfigured(this.accessiOptions);\n\n const codiceUtente = await this.userService.register(registrationData, {\n allowPrivilegedFields: false,\n });\n\n try {\n await this.emailService.sendPasswordResetEmail(registrationData.email);\n } catch (emailError) {\n try {\n await this.userService.deleteUserPermanently(codiceUtente);\n } catch (rollbackError) {\n this.logger.error(`Rollback registrazione utente ${codiceUtente} non riuscita: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`);\n }\n throw new BadRequestException({\n code: 'ACCESSI_USER_INVITE_EMAIL_FAILED',\n message: `Registrazione non completata: invio email non riuscito (${emailError instanceof Error ? emailError.message : String(emailError)}). Riprova piu tardi.`,\n });\n }\n return RestUtilities.sendBaseResponse(res, codiceUtente, HttpStatus.CREATED);\n } catch (error) {\n const status =\n error instanceof HttpException ? error.getStatus() : HttpStatus.BAD_REQUEST;\n return RestUtilities.sendErrorMessage(res, error, UserController.name, status);\n }\n }\n\n @ApiOperation({ summary: 'Crea un utente locale da amministrazione', operationId: 'createManagedUser', description: 'Riservato a superutente. Crea un utente in attesa di impostazione password e invia la mail di reset.' })\n @ApiBody({ type: RegisterRequest })\n @ApiCreatedResponse({ type: RegisterResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Post('create-managed-user')\n async createManagedUser(@Req() request: Request, @Body() registrationData: RegisterRequest, @Res() res: Response) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureUserManagement(authenticatedUser, 'Solo gli amministratori possono creare utenti.');\n ensurePrivilegeFlagChanges(authenticatedUser, registrationData);\n\n // Fail-fast prima di scrivere: senza SMTP non si crea un utente orfano.\n assertEmailConfigured(this.accessiOptions);\n\n const codiceUtente = await this.userService.register(registrationData, { allowPrivilegedFields: true });\n try {\n await this.emailService.sendPasswordResetEmail(registrationData.email, registrationData.htmlMail);\n } catch (emailError) {\n // L'invio e' esterno: se fallisce annulliamo la creazione per non lasciare un utente\n // senza password e senza email di invito (rollback best-effort).\n try {\n await this.userService.deleteUserPermanently(codiceUtente);\n } catch (rollbackError) {\n this.logger.error(`Rollback creazione utente ${codiceUtente} non riuscita: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`);\n }\n throw new BadRequestException({\n code: 'ACCESSI_USER_INVITE_EMAIL_FAILED',\n message: `Utente non creato: invio email di invito non riuscito (${emailError instanceof Error ? emailError.message : String(emailError)}). Riprova oppure crea l utente e imposta la password manualmente.`,\n });\n }\n return RestUtilities.sendBaseResponse(res, codiceUtente, HttpStatus.CREATED);\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Aggiorna un utente esistente',\n operationId: 'updateUtente',\n })\n @ApiParam({\n name: 'codiceUtente',\n description: \"Codice identificativo dell'utente da aggiornare\",\n required: true,\n example: 123,\n })\n @ApiBody({\n type: UserDto,\n description: \"Dati aggiornati dell'utente\",\n })\n @ApiResponse({\n status: HttpStatus.OK,\n description: 'Utente aggiornato con successo',\n type: ActionResponse,\n })\n @ApiResponse({ status: 400, description: \"Errore nell'aggiornamento\", type: ErrorResponse })\n @ApiResponse({ status: 403, description: 'Operazione non autorizzata', type: ErrorResponse })\n @ApiResponse({ status: 500, description: 'Errore interno del server', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Put('update-user/:codiceUtente')\n async updateUtente(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Body() user: UserDto,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n const isPrivilegedUpdate = hasPrivilegedUserChanges(user);\n const isSelf = authenticatedUser.codiceUtente === codiceUtente;\n\n // ADMIN > SUPER: un superutente non puo' toccare un admin. Self sempre consentito.\n if (!isSelf) {\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n }\n\n if (isPrivilegedUpdate) {\n ensureUserManagement(\n authenticatedUser,\n 'Solo gli amministratori possono modificare ruoli, permessi o flag privilegiati.',\n );\n ensurePrivilegeFlagChanges(authenticatedUser, user);\n if (user.flagAdmin === false) {\n await this.userService.assertNotLastActiveAdmin(codiceUtente);\n }\n } else {\n ensureSelfOrSuperUser(\n authenticatedUser,\n codiceUtente,\n 'Puoi modificare solo il tuo profilo.',\n );\n }\n\n if (user.codiceUtente !== undefined && user.codiceUtente !== codiceUtente) {\n throw new BadRequestException('Il codice utente nel body non coincide con quello del path.');\n }\n\n await this.userService.updateUser(codiceUtente, user, {\n allowPrivilegedChanges: authenticatedUser.flagSuper || authenticatedUser.flagAdmin,\n });\n\n return RestUtilities.sendOKMessage(\n res,\n `L'utente ${codiceUtente} e' stato aggiornato con successo.`,\n );\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n\n @ApiOperation({\n summary: 'Imposta il consenso GDPR per un utente',\n operationId: 'setGdpr',\n })\n @ApiParam({\n name: 'codiceUtente',\n description: \"Codice identificativo dell'utente che accetta il GDPR\",\n required: true,\n example: 123,\n })\n @ApiResponse({\n status: 200,\n description: 'Consenso GDPR impostato con successo',\n type: ActionResponse,\n })\n @ApiResponse({ status: 400, description: 'Errore nella richiesta', type: ErrorResponse })\n @ApiResponse({ status: 403, description: 'Operazione non autorizzata', type: ErrorResponse })\n @ApiBearerAuth()\n @UseGuards(JwtSimpleGuard)\n @Patch('set-gdpr/:codiceUtente')\n async setGdpr(\n @Req() request: Request,\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\n @Res() res: Response,\n ) {\n try {\n const authenticatedUser = getAuthenticatedAccessiUser(request);\n ensureSelfOrSuperUser(\n authenticatedUser,\n codiceUtente,\n 'Puoi impostare il GDPR solo sul tuo utente.',\n );\n if (authenticatedUser.codiceUtente !== codiceUtente) {\n await this.ensureManageableTarget(authenticatedUser, codiceUtente);\n }\n\n await this.userService.setGdpr(codiceUtente);\n return RestUtilities.sendOKMessage(res, `L'utente ${codiceUtente} ha accettato il GDPR.`);\n } catch (error) {\n return this.sendControllerError(res, error);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Abilitazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Abilitazione.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAsD;AACtD,qDAAuE;AAEvE,MAAa,YAAY;CA2BxB;AA3BD,oCA2BC;AAlBC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IAC3D,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;;kDAC5D;AASrB;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC;;gDAC5D;AAQnB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,mCAAgB;QACtB,OAAO,EAAE,mCAAgB,CAAC,OAAO;KAClC,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;sDAC5C","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\r\nimport { IsString, IsNotEmpty, Length, IsEnum } from \"class-validator\";\r\n\r\nexport class Abilitazione {\r\n\r\n @ApiProperty({\r\n description: 'Codice univoco dell\\'utente',\r\n example: 'USR12345'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"Il codice utente è obbligatorio.\" })\r\n @Length(5, 20, { message: \"Il codice utente deve essere tra 5 e 20 caratteri.\" })\r\n codiceUtente: number;\r\n\r\n @ApiProperty({\r\n description: 'Codice univoco del menu',\r\n example: 'MENU_001'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"Il codice menu è obbligatorio.\" })\r\n @Length(3, 20, { message: \"Il codice menu deve essere tra 3 e 20 caratteri.\" })\r\n codiceMenu: string;\r\n\r\n @ApiProperty({\r\n description: 'Tipo di abilitazione',\r\n enum: TipoAbilitazione,\r\n example: TipoAbilitazione.LETTURA\r\n })\r\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non è valido.\" })\r\n tipoAbilitazione: TipoAbilitazione;\r\n}"]}
1
+ {"version":3,"file":"Abilitazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Abilitazione.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAsD;AACtD,qDAAuE;AAEvE,MAAa,YAAY;CA2BxB;AA3BD,oCA2BC;AAlBC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IAC3D,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;;kDAC3D;AAStB;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC;;gDAC3D;AAQpB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,mCAAgB;QACtB,OAAO,EAAE,mCAAgB,CAAC,OAAO;KAClC,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;sDAC3C","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\nimport { IsString, IsNotEmpty, Length, IsEnum } from \"class-validator\";\n\nexport class Abilitazione {\n\n @ApiProperty({\n description: 'Codice univoco dell\\'utente',\n example: 'USR12345'\n })\n @IsString()\n @IsNotEmpty({ message: \"Il codice utente è obbligatorio.\" })\n @Length(5, 20, { message: \"Il codice utente deve essere tra 5 e 20 caratteri.\" })\n codiceUtente!: number;\n\n @ApiProperty({\n description: 'Codice univoco del menu',\n example: 'MENU_001'\n })\n @IsString()\n @IsNotEmpty({ message: \"Il codice menu è obbligatorio.\" })\n @Length(3, 20, { message: \"Il codice menu deve essere tra 3 e 20 caratteri.\" })\n codiceMenu!: string;\n\n @ApiProperty({\n description: 'Tipo di abilitazione',\n enum: TipoAbilitazione,\n example: TipoAbilitazione.LETTURA\n })\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non è valido.\" })\n tipoAbilitazione!: TipoAbilitazione;\n}"]}
@@ -65,37 +65,45 @@ __decorate([
65
65
  __decorate([
66
66
  (0, swagger_1.ApiPropertyOptional)({
67
67
  description: 'Nome dell\'icona associata al menu',
68
- example: 'people'
68
+ type: String,
69
+ example: 'people',
70
+ nullable: true
69
71
  }),
70
72
  (0, class_validator_1.IsString)(),
71
73
  (0, class_validator_1.IsOptional)(),
72
- __metadata("design:type", String)
74
+ __metadata("design:type", Object)
73
75
  ], AbilitazioneMenu.prototype, "icona", void 0);
74
76
  __decorate([
75
77
  (0, swagger_1.ApiPropertyOptional)({
76
78
  description: 'Tipo di menu',
77
- example: 'M'
79
+ type: String,
80
+ example: 'M',
81
+ nullable: true
78
82
  }),
79
83
  (0, class_validator_1.IsString)(),
80
84
  (0, class_validator_1.IsOptional)(),
81
- __metadata("design:type", String)
85
+ __metadata("design:type", Object)
82
86
  ], AbilitazioneMenu.prototype, "tipo", void 0);
83
87
  __decorate([
84
88
  (0, swagger_1.ApiPropertyOptional)({
85
89
  description: 'Percorso della pagina associata al menu',
86
- example: '/lista-clienti'
90
+ type: String,
91
+ example: '/lista-clienti',
92
+ nullable: true
87
93
  }),
88
94
  (0, class_validator_1.IsString)(),
89
95
  (0, class_validator_1.IsOptional)(),
90
- __metadata("design:type", String)
96
+ __metadata("design:type", Object)
91
97
  ], AbilitazioneMenu.prototype, "pagina", void 0);
92
98
  __decorate([
93
99
  (0, swagger_1.ApiPropertyOptional)({
94
100
  description: 'Nota informativa associata al menu',
95
- example: 'Visibile solo dopo abilitazione'
101
+ type: String,
102
+ example: 'Visibile solo dopo abilitazione',
103
+ nullable: true
96
104
  }),
97
105
  (0, class_validator_1.IsString)(),
98
106
  (0, class_validator_1.IsOptional)(),
99
- __metadata("design:type", String)
107
+ __metadata("design:type", Object)
100
108
  ], AbilitazioneMenu.prototype, "note", void 0);
101
109
  //# sourceMappingURL=AbilitazioneMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbilitazioneMenu.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AbilitazioneMenu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAsD;AACtD,qDAAmF;AAEnF,MAAa,gBAAgB;CA0E5B;AA1ED,4CA0EC;AAjEC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC;;oDAC5D;AAQnB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,mCAAgB;QACtB,OAAO,EAAE,mCAAgB,CAAC,SAAS;KACpC,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;0DAC3C;AAQpC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,eAAe;KACzB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;yDAC1C;AAQzB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,iBAAiB;KAC3B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;2DAC1C;AAQ3B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,GAAG;KACb,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;;sDACtC;AAQtB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,QAAQ;KAClB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACS;AAQtB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,GAAG;KACb,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ;AAQrB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACU;AAQvB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,iCAAiC;KAC3C,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from \"@nestjs/swagger\";\r\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\r\nimport { IsEnum, IsNotEmpty, IsString, Length, IsOptional } from \"class-validator\";\r\n\r\nexport class AbilitazioneMenu {\r\n \r\n @ApiProperty({\r\n description: 'Codice univoco del menu',\r\n example: 'MNUELENCOCLIENTI'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"Il codice menu è obbligatorio.\" })\r\n @Length(3, 20, { message: \"Il codice menu deve essere tra 3 e 20 caratteri.\" })\r\n codiceMenu: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Tipo di abilitazione',\r\n enum: TipoAbilitazione,\r\n example: TipoAbilitazione.SCRITTURA\r\n })\r\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non è valido.\" })\r\n tipoAbilitazione?: TipoAbilitazione;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Descrizione del menu',\r\n example: 'Lista Clienti'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"La descrizione del menu è obbligatoria.\" })\r\n descrizioneMenu?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Descrizione del gruppo a cui appartiene il menu',\r\n example: 'Amministrazione'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"La descrizione del gruppo è obbligatoria.\" })\r\n descrizioneGruppo?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Codice univoco del gruppo a cui appartiene il menu',\r\n example: 'C'\r\n })\r\n @IsString()\r\n @IsNotEmpty({ message: \"Il codice gruppo è obbligatorio.\" })\r\n codiceGruppo?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Nome dell\\'icona associata al menu',\r\n example: 'people'\r\n })\r\n @IsString()\r\n @IsOptional()\r\n icona?: string | null;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Tipo di menu',\r\n example: 'M'\r\n })\r\n @IsString()\r\n @IsOptional()\r\n tipo?: string | null;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Percorso della pagina associata al menu',\r\n example: '/lista-clienti'\r\n })\r\n @IsString()\r\n @IsOptional()\r\n pagina?: string | null;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Nota informativa associata al menu',\r\n example: 'Visibile solo dopo abilitazione'\r\n })\r\n @IsString()\r\n @IsOptional()\r\n note?: string | null;\r\n}\r\n"]}
1
+ {"version":3,"file":"AbilitazioneMenu.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AbilitazioneMenu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAsD;AACtD,qDAAmF;AAEnF,MAAa,gBAAgB;CAkF5B;AAlFD,4CAkFC;AAzEC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,kBAAkB;KAC5B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC;;oDAC3D;AAQpB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,IAAI,EAAE,mCAAgB;QACtB,OAAO,EAAE,mCAAgB,CAAC,SAAS;KACpC,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;0DAC3C;AAQpC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,eAAe;KACzB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;yDAC1C;AAQzB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,iBAAiB;KAC3B,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;2DAC1C;AAQ3B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,GAAG;KACb,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;;sDACtC;AAUtB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACS;AAUtB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,cAAc;QAC3B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ;AAUrB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yCAAyC;QACtD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;gDACU;AAUvB;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iCAAiC;QAC1C,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from \"@nestjs/swagger\";\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\nimport { IsEnum, IsNotEmpty, IsString, Length, IsOptional } from \"class-validator\";\n\nexport class AbilitazioneMenu {\n \n @ApiProperty({\n description: 'Codice univoco del menu',\n example: 'MNUELENCOCLIENTI'\n })\n @IsString()\n @IsNotEmpty({ message: \"Il codice menu è obbligatorio.\" })\n @Length(3, 20, { message: \"Il codice menu deve essere tra 3 e 20 caratteri.\" })\n codiceMenu!: string;\n\n @ApiPropertyOptional({\n description: 'Tipo di abilitazione',\n enum: TipoAbilitazione,\n example: TipoAbilitazione.SCRITTURA\n })\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non è valido.\" })\n tipoAbilitazione?: TipoAbilitazione;\n\n @ApiPropertyOptional({\n description: 'Descrizione del menu',\n example: 'Lista Clienti'\n })\n @IsString()\n @IsNotEmpty({ message: \"La descrizione del menu è obbligatoria.\" })\n descrizioneMenu?: string;\n\n @ApiPropertyOptional({\n description: 'Descrizione del gruppo a cui appartiene il menu',\n example: 'Amministrazione'\n })\n @IsString()\n @IsNotEmpty({ message: \"La descrizione del gruppo è obbligatoria.\" })\n descrizioneGruppo?: string;\n\n @ApiPropertyOptional({\n description: 'Codice univoco del gruppo a cui appartiene il menu',\n example: 'C'\n })\n @IsString()\n @IsNotEmpty({ message: \"Il codice gruppo è obbligatorio.\" })\n codiceGruppo?: string;\n\n @ApiPropertyOptional({\n description: 'Nome dell\\'icona associata al menu',\n type: String,\n example: 'people',\n nullable: true\n })\n @IsString()\n @IsOptional()\n icona?: string | null;\n\n @ApiPropertyOptional({\n description: 'Tipo di menu',\n type: String,\n example: 'M',\n nullable: true\n })\n @IsString()\n @IsOptional()\n tipo?: string | null;\n\n @ApiPropertyOptional({\n description: 'Percorso della pagina associata al menu',\n type: String,\n example: '/lista-clienti',\n nullable: true\n })\n @IsString()\n @IsOptional()\n pagina?: string | null;\n\n @ApiPropertyOptional({\n description: 'Nota informativa associata al menu',\n type: String,\n example: 'Visibile solo dopo abilitazione',\n nullable: true\n })\n @IsString()\n @IsOptional()\n note?: string | null;\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { BaseResponse } from './BaseResponse';
2
+ /** Richiesta di bootstrap del primo admin: il token e quello stampato nel log di avvio. */
3
+ export declare class BootstrapAdminRequest {
4
+ token: string;
5
+ email: string;
6
+ nome?: string;
7
+ cognome?: string;
8
+ password?: string;
9
+ superUser?: boolean;
10
+ }
11
+ export declare class BootstrapAdminResultDto {
12
+ codiceUtente: number;
13
+ email: string;
14
+ password?: string;
15
+ passwordGenerated: boolean;
16
+ }
17
+ export declare class BootstrapAdminResponse extends BaseResponse {
18
+ Result: BootstrapAdminResultDto;
19
+ }
20
+ /** Stato del bootstrap admin: la console mostra la sezione solo se abilitato. */
21
+ export declare class AdminBootstrapStatusResult {
22
+ enabled: boolean;
23
+ }
24
+ export declare class AdminBootstrapStatusResponse extends BaseResponse {
25
+ Result: AdminBootstrapStatusResult;
26
+ }
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AdminBootstrapStatusResponse = exports.AdminBootstrapStatusResult = exports.BootstrapAdminResponse = exports.BootstrapAdminResultDto = exports.BootstrapAdminRequest = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ const BaseResponse_1 = require("./BaseResponse");
17
+ /** Richiesta di bootstrap del primo admin: il token e quello stampato nel log di avvio. */
18
+ class BootstrapAdminRequest {
19
+ }
20
+ exports.BootstrapAdminRequest = BootstrapAdminRequest;
21
+ __decorate([
22
+ (0, swagger_1.ApiProperty)({ description: 'Token di bootstrap stampato nel log di avvio del backend.' }),
23
+ (0, class_validator_1.IsString)(),
24
+ __metadata("design:type", String)
25
+ ], BootstrapAdminRequest.prototype, "token", void 0);
26
+ __decorate([
27
+ (0, swagger_1.ApiProperty)({ example: 'admin@example.com' }),
28
+ (0, class_validator_1.IsString)(),
29
+ __metadata("design:type", String)
30
+ ], BootstrapAdminRequest.prototype, "email", void 0);
31
+ __decorate([
32
+ (0, swagger_1.ApiPropertyOptional)({ example: 'Mario' }),
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsString)(),
35
+ __metadata("design:type", String)
36
+ ], BootstrapAdminRequest.prototype, "nome", void 0);
37
+ __decorate([
38
+ (0, swagger_1.ApiPropertyOptional)({ example: 'Rossi' }),
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsString)(),
41
+ __metadata("design:type", String)
42
+ ], BootstrapAdminRequest.prototype, "cognome", void 0);
43
+ __decorate([
44
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Password da impostare. Se assente viene generata e restituita una sola volta.' }),
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ __metadata("design:type", String)
48
+ ], BootstrapAdminRequest.prototype, "password", void 0);
49
+ __decorate([
50
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Crea anche un superutente (tutte le abilitazioni). Default true.' }),
51
+ (0, class_validator_1.IsOptional)(),
52
+ (0, class_validator_1.IsBoolean)(),
53
+ __metadata("design:type", Boolean)
54
+ ], BootstrapAdminRequest.prototype, "superUser", void 0);
55
+ class BootstrapAdminResultDto {
56
+ }
57
+ exports.BootstrapAdminResultDto = BootstrapAdminResultDto;
58
+ __decorate([
59
+ (0, swagger_1.ApiProperty)({ example: 1 }),
60
+ __metadata("design:type", Number)
61
+ ], BootstrapAdminResultDto.prototype, "codiceUtente", void 0);
62
+ __decorate([
63
+ (0, swagger_1.ApiProperty)({ example: 'admin@example.com' }),
64
+ __metadata("design:type", String)
65
+ ], BootstrapAdminResultDto.prototype, "email", void 0);
66
+ __decorate([
67
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Password generata: presente solo se non e stata fornita nella richiesta.' }),
68
+ __metadata("design:type", String)
69
+ ], BootstrapAdminResultDto.prototype, "password", void 0);
70
+ __decorate([
71
+ (0, swagger_1.ApiProperty)({ example: true }),
72
+ __metadata("design:type", Boolean)
73
+ ], BootstrapAdminResultDto.prototype, "passwordGenerated", void 0);
74
+ class BootstrapAdminResponse extends BaseResponse_1.BaseResponse {
75
+ }
76
+ exports.BootstrapAdminResponse = BootstrapAdminResponse;
77
+ __decorate([
78
+ (0, swagger_1.ApiProperty)({ type: BootstrapAdminResultDto }),
79
+ (0, class_validator_1.ValidateNested)(),
80
+ (0, class_transformer_1.Type)(() => BootstrapAdminResultDto),
81
+ __metadata("design:type", BootstrapAdminResultDto)
82
+ ], BootstrapAdminResponse.prototype, "Result", void 0);
83
+ /** Stato del bootstrap admin: la console mostra la sezione solo se abilitato. */
84
+ class AdminBootstrapStatusResult {
85
+ }
86
+ exports.AdminBootstrapStatusResult = AdminBootstrapStatusResult;
87
+ __decorate([
88
+ (0, swagger_1.ApiProperty)({ example: false, description: 'True se adminBootstrap e abilitato in questa istanza.' }),
89
+ __metadata("design:type", Boolean)
90
+ ], AdminBootstrapStatusResult.prototype, "enabled", void 0);
91
+ class AdminBootstrapStatusResponse extends BaseResponse_1.BaseResponse {
92
+ }
93
+ exports.AdminBootstrapStatusResponse = AdminBootstrapStatusResponse;
94
+ __decorate([
95
+ (0, swagger_1.ApiProperty)({ type: AdminBootstrapStatusResult }),
96
+ (0, class_validator_1.ValidateNested)(),
97
+ (0, class_transformer_1.Type)(() => AdminBootstrapStatusResult),
98
+ __metadata("design:type", AdminBootstrapStatusResult)
99
+ ], AdminBootstrapStatusResponse.prototype, "Result", void 0);
100
+ //# sourceMappingURL=AdminBootstrapDtos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminBootstrapDtos.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AdminBootstrapDtos.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAAkF;AAClF,iDAA8C;AAE9C,2FAA2F;AAC3F,MAAa,qBAAqB;CA4BjC;AA5BD,sDA4BC;AAzBC;IAFC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,2DAA2D,EAAE,CAAC;IACzF,IAAA,0BAAQ,GAAE;;oDACI;AAIf;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC7C,IAAA,0BAAQ,GAAE;;oDACI;AAKf;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACzC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;mDACG;AAKd;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACzC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sDACM;AAKjB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,+EAA+E,EAAE,CAAC;IACrH,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uDACO;AAKlB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,kEAAkE,EAAE,CAAC;IACxG,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wDACQ;AAGtB,MAAa,uBAAuB;CAYnC;AAZD,0DAYC;AAVC;IADC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;6DACN;AAGtB;IADC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;;sDAC/B;AAGf;IADC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,0EAA0E,EAAE,CAAC;;yDAC/F;AAGlB;IADC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;kEACH;AAG9B,MAAa,sBAAuB,SAAQ,2BAAY;CAKvD;AALD,wDAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAC9C,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;8BAC3B,uBAAuB;sDAAC;AAGnC,iFAAiF;AACjF,MAAa,0BAA0B;CAGtC;AAHD,gEAGC;AADC;IADC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,uDAAuD,EAAE,CAAC;;2DACpF;AAGpB,MAAa,4BAA6B,SAAQ,2BAAY;CAK7D;AALD,oEAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;IACjD,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC;8BAC9B,0BAA0B;4DAAC","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsBoolean, IsOptional, IsString, ValidateNested } from 'class-validator';\nimport { BaseResponse } from './BaseResponse';\n\n/** Richiesta di bootstrap del primo admin: il token e quello stampato nel log di avvio. */\nexport class BootstrapAdminRequest {\n @ApiProperty({ description: 'Token di bootstrap stampato nel log di avvio del backend.' })\n @IsString()\n token!: string;\n\n @ApiProperty({ example: 'admin@example.com' })\n @IsString()\n email!: string;\n\n @ApiPropertyOptional({ example: 'Mario' })\n @IsOptional()\n @IsString()\n nome?: string;\n\n @ApiPropertyOptional({ example: 'Rossi' })\n @IsOptional()\n @IsString()\n cognome?: string;\n\n @ApiPropertyOptional({ description: 'Password da impostare. Se assente viene generata e restituita una sola volta.' })\n @IsOptional()\n @IsString()\n password?: string;\n\n @ApiPropertyOptional({ description: 'Crea anche un superutente (tutte le abilitazioni). Default true.' })\n @IsOptional()\n @IsBoolean()\n superUser?: boolean;\n}\n\nexport class BootstrapAdminResultDto {\n @ApiProperty({ example: 1 })\n codiceUtente!: number;\n\n @ApiProperty({ example: 'admin@example.com' })\n email!: string;\n\n @ApiPropertyOptional({ description: 'Password generata: presente solo se non e stata fornita nella richiesta.' })\n password?: string;\n\n @ApiProperty({ example: true })\n passwordGenerated!: boolean;\n}\n\nexport class BootstrapAdminResponse extends BaseResponse {\n @ApiProperty({ type: BootstrapAdminResultDto })\n @ValidateNested()\n @Type(() => BootstrapAdminResultDto)\n Result!: BootstrapAdminResultDto;\n}\n\n/** Stato del bootstrap admin: la console mostra la sezione solo se abilitato. */\nexport class AdminBootstrapStatusResult {\n @ApiProperty({ example: false, description: 'True se adminBootstrap e abilitato in questa istanza.' })\n enabled!: boolean;\n}\n\nexport class AdminBootstrapStatusResponse extends BaseResponse {\n @ApiProperty({ type: AdminBootstrapStatusResult })\n @ValidateNested()\n @Type(() => AdminBootstrapStatusResult)\n Result!: AdminBootstrapStatusResult;\n}\n"]}
@@ -27,7 +27,6 @@ __decorate([
27
27
  ]
28
28
  }),
29
29
  (0, class_validator_1.IsArray)({ message: 'Le abilitazioni devono essere un array.' }),
30
- (0, class_validator_1.ArrayNotEmpty)({ message: 'E necessario fornire almeno una abilitazione.' }),
31
30
  (0, class_validator_1.ValidateNested)({ each: true }),
32
31
  (0, class_transformer_1.Type)(() => Permission_1.Permission),
33
32
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"AssignPermissionsToUserRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AssignPermissionsToUserRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAyE;AACzE,6CAA0C;AAE1C,MAAa,8BAA8B;CAc1C;AAdD,wEAcC;AADG;IAZC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,CAAC,uBAAU,CAAC;QAClB,OAAO,EAAE;YACL,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE;YAC9C,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE;SACjD;KACJ,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAC/D,IAAA,+BAAa,EAAC,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;IAC3E,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAU,CAAC;;mEACG","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport { ArrayNotEmpty, IsArray, ValidateNested } from 'class-validator';\r\nimport { Permission } from './Permission';\r\n\r\nexport class AssignPermissionsToUserRequest {\r\n @ApiProperty({\r\n description: \"Lista delle abilitazioni da assegnare all'utente.\",\r\n type: [Permission],\r\n example: [\r\n { codiceMenu: \"MNU001\", tipoAbilitazione: 30 },\r\n { codiceMenu: \"MNU002\", tipoAbilitazione: 10 }\r\n ]\r\n })\r\n @IsArray({ message: 'Le abilitazioni devono essere un array.' })\r\n @ArrayNotEmpty({ message: 'E necessario fornire almeno una abilitazione.' })\r\n @ValidateNested({ each: true })\r\n @Type(() => Permission)\r\n permissions: Permission[];\r\n}\r\n"]}
1
+ {"version":3,"file":"AssignPermissionsToUserRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AssignPermissionsToUserRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAA0D;AAC1D,6CAA0C;AAE1C,MAAa,8BAA8B;CAa1C;AAbD,wEAaC;AADG;IAXC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,CAAC,uBAAU,CAAC;QAClB,OAAO,EAAE;YACL,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE;YAC9C,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAAE;SACjD;KACJ,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAC/D,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAU,CAAC;;mEACI","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, ValidateNested } from 'class-validator';\nimport { Permission } from './Permission';\n\nexport class AssignPermissionsToUserRequest {\n @ApiProperty({\n description: \"Lista delle abilitazioni da assegnare all'utente.\",\n type: [Permission],\n example: [\n { codiceMenu: \"MNU001\", tipoAbilitazione: 30 },\n { codiceMenu: \"MNU002\", tipoAbilitazione: 10 }\n ]\n })\n @IsArray({ message: 'Le abilitazioni devono essere un array.' })\n @ValidateNested({ each: true })\n @Type(() => Permission)\n permissions!: Permission[];\n}\n"]}
@@ -19,11 +19,10 @@ exports.AssignRolesToUserRequest = AssignRolesToUserRequest;
19
19
  __decorate([
20
20
  (0, swagger_1.ApiProperty)({
21
21
  description: "Lista dei codici dei ruoli da assegnare all'utente.",
22
- type: [String],
22
+ type: [Number],
23
23
  example: [1, 2, 3]
24
24
  }),
25
25
  (0, class_validator_1.IsArray)({ message: 'I ruoli devono essere un array.' }),
26
- (0, class_validator_1.ArrayNotEmpty)({ message: 'E necessario fornire almeno un ruolo.' }),
27
26
  (0, class_transformer_1.Type)(() => Number),
28
27
  (0, class_validator_1.IsInt)({ each: true, message: 'Ogni ruolo deve essere un intero.' }),
29
28
  __metadata("design:type", Array)
@@ -1 +1 @@
1
- {"version":3,"file":"AssignRolesToUserRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AssignRolesToUserRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAgE;AAEhE,MAAa,wBAAwB;CAWpC;AAXD,4DAWC;AADG;IATC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,qDAAqD;QAClE,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACrB,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACvD,IAAA,+BAAa,EAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IACnE,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;;uDACpD","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport { ArrayNotEmpty, IsArray, IsInt } from 'class-validator';\r\n\r\nexport class AssignRolesToUserRequest {\r\n @ApiProperty({\r\n description: \"Lista dei codici dei ruoli da assegnare all'utente.\",\r\n type: [String],\r\n example: [1, 2, 3]\r\n })\r\n @IsArray({ message: 'I ruoli devono essere un array.' })\r\n @ArrayNotEmpty({ message: 'E necessario fornire almeno un ruolo.' })\r\n @Type(() => Number)\r\n @IsInt({ each: true, message: 'Ogni ruolo deve essere un intero.' })\r\n roles: number[];\r\n}\r\n"]}
1
+ {"version":3,"file":"AssignRolesToUserRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AssignRolesToUserRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAiD;AAEjD,MAAa,wBAAwB;CAUpC;AAVD,4DAUC;AADG;IARC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,qDAAqD;QAClE,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACrB,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACvD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;;uDACnD","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsArray, IsInt } from 'class-validator';\n\nexport class AssignRolesToUserRequest {\n @ApiProperty({\n description: \"Lista dei codici dei ruoli da assegnare all'utente.\",\n type: [Number],\n example: [1, 2, 3]\n })\n @IsArray({ message: 'I ruoli devono essere un array.' })\n @Type(() => Number)\n @IsInt({ each: true, message: 'Ogni ruolo deve essere un intero.' })\n roles!: number[];\n}\n"]}
@@ -0,0 +1,13 @@
1
+ export declare class AuthenticatedUserPayloadDto {
2
+ codiceUtente: number;
3
+ email?: string;
4
+ flagSuper: boolean;
5
+ flagAdmin: boolean;
6
+ flagDueFattori?: boolean;
7
+ passwordlessLoginEnabled?: boolean;
8
+ passwordLoginEnabled?: boolean;
9
+ statoRegistrazione: number;
10
+ }
11
+ export declare class AuthenticatedTokenPayloadDto {
12
+ userData: AuthenticatedUserPayloadDto;
13
+ }
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthenticatedTokenPayloadDto = exports.AuthenticatedUserPayloadDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ class AuthenticatedUserPayloadDto {
16
+ }
17
+ exports.AuthenticatedUserPayloadDto = AuthenticatedUserPayloadDto;
18
+ __decorate([
19
+ (0, swagger_1.ApiProperty)({ example: 123 }),
20
+ (0, class_validator_1.IsInt)(),
21
+ (0, class_validator_1.Min)(1),
22
+ __metadata("design:type", Number)
23
+ ], AuthenticatedUserPayloadDto.prototype, "codiceUtente", void 0);
24
+ __decorate([
25
+ (0, swagger_1.ApiPropertyOptional)({ example: 'mario.rossi@dev.it' }),
26
+ (0, class_validator_1.IsOptional)(),
27
+ (0, class_validator_1.IsString)(),
28
+ __metadata("design:type", String)
29
+ ], AuthenticatedUserPayloadDto.prototype, "email", void 0);
30
+ __decorate([
31
+ (0, swagger_1.ApiProperty)({ example: false }),
32
+ (0, class_validator_1.IsBoolean)(),
33
+ __metadata("design:type", Boolean)
34
+ ], AuthenticatedUserPayloadDto.prototype, "flagSuper", void 0);
35
+ __decorate([
36
+ (0, swagger_1.ApiProperty)({ example: false }),
37
+ (0, class_validator_1.IsBoolean)(),
38
+ __metadata("design:type", Boolean)
39
+ ], AuthenticatedUserPayloadDto.prototype, "flagAdmin", void 0);
40
+ __decorate([
41
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Verifica email richiesta per questo utente.', default: false }),
42
+ (0, class_validator_1.IsOptional)(),
43
+ (0, class_validator_1.IsBoolean)(),
44
+ __metadata("design:type", Boolean)
45
+ ], AuthenticatedUserPayloadDto.prototype, "flagDueFattori", void 0);
46
+ __decorate([
47
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Accesso consentito con il solo codice email.', default: false }),
48
+ (0, class_validator_1.IsOptional)(),
49
+ (0, class_validator_1.IsBoolean)(),
50
+ __metadata("design:type", Boolean)
51
+ ], AuthenticatedUserPayloadDto.prototype, "passwordlessLoginEnabled", void 0);
52
+ __decorate([
53
+ (0, swagger_1.ApiPropertyOptional)({ description: 'Policy di login locale preesistente.', default: true }),
54
+ (0, class_validator_1.IsOptional)(),
55
+ (0, class_validator_1.IsBoolean)(),
56
+ __metadata("design:type", Boolean)
57
+ ], AuthenticatedUserPayloadDto.prototype, "passwordLoginEnabled", void 0);
58
+ __decorate([
59
+ (0, swagger_1.ApiProperty)({ example: 1 }),
60
+ (0, class_validator_1.IsInt)(),
61
+ __metadata("design:type", Number)
62
+ ], AuthenticatedUserPayloadDto.prototype, "statoRegistrazione", void 0);
63
+ class AuthenticatedTokenPayloadDto {
64
+ }
65
+ exports.AuthenticatedTokenPayloadDto = AuthenticatedTokenPayloadDto;
66
+ __decorate([
67
+ (0, swagger_1.ApiProperty)({ type: AuthenticatedUserPayloadDto }),
68
+ __metadata("design:type", AuthenticatedUserPayloadDto)
69
+ ], AuthenticatedTokenPayloadDto.prototype, "userData", void 0);
70
+ //# sourceMappingURL=AuthenticatedUserPayloadDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthenticatedUserPayloadDto.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/AuthenticatedUserPayloadDto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAA8E;AAE9E,MAAa,2BAA2B;CAqCvC;AArCD,kEAqCC;AAjCC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC7B,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;;iEACe;AAKtB;IAHC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IACtD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0DACI;AAIf;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/B,IAAA,2BAAS,GAAE;;8DACQ;AAIpB;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC/B,IAAA,2BAAS,GAAE;;8DACQ;AAKpB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,6CAA6C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnG,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;mEACa;AAKzB;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,8CAA8C,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACpG,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;6EACuB;AAKnC;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3F,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;yEACmB;AAI/B;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3B,IAAA,uBAAK,GAAE;;uEACoB;AAG9B,MAAa,4BAA4B;CAGxC;AAHD,oEAGC;AADC;IADC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;8BACxC,2BAA2B;8DAAC","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsBoolean, IsInt, IsOptional, IsString, Min } from 'class-validator';\n\nexport class AuthenticatedUserPayloadDto {\n @ApiProperty({ example: 123 })\n @IsInt()\n @Min(1)\n codiceUtente!: number;\n\n @ApiPropertyOptional({ example: 'mario.rossi@dev.it' })\n @IsOptional()\n @IsString()\n email?: string;\n\n @ApiProperty({ example: false })\n @IsBoolean()\n flagSuper!: boolean;\n\n @ApiProperty({ example: false })\n @IsBoolean()\n flagAdmin!: boolean;\n\n @ApiPropertyOptional({ description: 'Verifica email richiesta per questo utente.', default: false })\n @IsOptional()\n @IsBoolean()\n flagDueFattori?: boolean;\n\n @ApiPropertyOptional({ description: 'Accesso consentito con il solo codice email.', default: false })\n @IsOptional()\n @IsBoolean()\n passwordlessLoginEnabled?: boolean;\n\n @ApiPropertyOptional({ description: 'Policy di login locale preesistente.', default: true })\n @IsOptional()\n @IsBoolean()\n passwordLoginEnabled?: boolean;\n\n @ApiProperty({ example: 1 })\n @IsInt()\n statoRegistrazione!: number;\n}\n\nexport class AuthenticatedTokenPayloadDto {\n @ApiProperty({ type: AuthenticatedUserPayloadDto })\n userData!: AuthenticatedUserPayloadDto;\n}\n"]}
@@ -4,4 +4,26 @@ export declare class Status {
4
4
  }
5
5
  export declare abstract class BaseResponse {
6
6
  Status: Status;
7
+ Message?: string;
8
+ }
9
+ export declare class ActionResponse {
10
+ severity: string;
11
+ status: number;
12
+ statusCode: number;
13
+ message: string;
14
+ }
15
+ export declare class ErrorResponse {
16
+ severity: string;
17
+ status: number;
18
+ statusCode: number;
19
+ message: string;
20
+ code?: string;
21
+ error: string;
22
+ details?: string[];
23
+ }
24
+ export declare class PasswordExpiredResponse {
25
+ severity: string;
26
+ statusCode: number;
27
+ code: string;
28
+ message: string;
7
29
  }