emilsoftware-utilities 2.0.0-dev.1 → 2.0.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +38 -38
- package/dist/ContractGenerator.js.map +1 -1
- package/dist/DatabaseUpdater.js +24 -24
- package/dist/DatabaseUpdater.js.map +1 -1
- package/dist/EmilsoftwareModule.js.map +1 -1
- package/dist/ExecutionTimeLogger.js.map +1 -1
- package/dist/Logger.js.map +1 -1
- package/dist/Orm.d.ts +5 -0
- package/dist/Orm.js +149 -57
- package/dist/Orm.js.map +1 -1
- package/dist/RoutesLoggerMiddleware.js.map +1 -1
- package/dist/Utilities.d.ts +2 -2
- package/dist/Utilities.js +4 -0
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
- package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- package/dist/accessi-module/Controllers/UserController.js.map +1 -1
- package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
- package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/Permission.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
- package/dist/accessi-module/Dtos/Role.js.map +1 -1
- package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
- package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
- package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
- package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
- package/dist/accessi-module/Dtos/index.js.map +1 -1
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +1 -0
- package/dist/accessi-module/Services/AuthService/AuthService.js +12 -2
- package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
- package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
- package/dist/accessi-module/Services/EmailService/EmailService.js +11 -11
- package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.js +1 -1
- package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +87 -87
- package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
- package/dist/accessi-module/Services/UserService/UserService.js +65 -65
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +213 -213
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +25 -16
- package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
- package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
- package/dist/accessi-module/index.js +16 -1
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
- package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/accessControl.js.map +1 -1
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -1
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -1
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -1
- package/dist/allegati-module/AllegatiModule.js.map +1 -1
- package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
- package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
- package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
- package/dist/allegati-module/Dtos/index.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
- package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +49 -49
- package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
- package/dist/allegati-module/index.js.map +1 -1
- package/dist/autobind.js.map +1 -1
- package/dist/firebird-compat.d.ts +15 -0
- package/dist/firebird-compat.js +198 -0
- package/dist/firebird-compat.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +27 -1
- package/dist/index.js.map +1 -1
- package/dist/initEmilsoftwareModule.js.map +1 -1
- package/dist/swagger/SwaggerConfig.js.map +1 -1
- package/package.json +83 -83
- package/dist/emilsoftware-utilities-2.0.0-dev.1.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetUsersResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/GetUsersResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAiD;AACjD,yDAAyC;AACzC,iDAA8C;AAC9C,uCAAoC;AACpC,mDAAgD;AAGhD,MAAa,cAAc;CAc1B;AAdD,wCAcC;AAVC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAO,EAAE,CAAC;IAC1D,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAO,CAAC;8BACX,iBAAO;8CAAC;AAKjB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAAa,EAAE,CAAC;IAChF,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAa,CAAC;8BACb,6BAAa;kDAAC;AAG3B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDACzC;AAIxB,MAAa,gBAAiB,SAAQ,2BAAY;CAKjD;AALD,4CAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;IACvC,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC;;gDACF","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { ValidateNested } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { BaseResponse } from './BaseResponse';\nimport { UserDto } from './UserDto';\nimport { UserGrantsDto } from './UserGrantsDto';\n\n\nexport class GetUsersResult {\n @ApiProperty({ description: 'Dati utente', type: UserDto })\n @ValidateNested()\n @Type(() => UserDto)\n utente?: UserDto;\n\n @ApiProperty({ description: 'Abilitazioni e ruoli utente', type: UserGrantsDto })\n @ValidateNested()\n @Type(() => UserGrantsDto)\n userGrants?: UserGrantsDto;\n\n @ApiProperty({ description: 'Extension Fields', type: Object })\n extensionFields?: any;\n\n}\n\nexport class GetUsersResponse extends BaseResponse {\n @ApiProperty({ type: [GetUsersResult] })\n @ValidateNested({ each: true })\n @Type(() => GetUsersResult)\n Result: GetUsersResult[];\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"GetUsersResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/GetUsersResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAiD;AACjD,yDAAyC;AACzC,iDAA8C;AAC9C,uCAAoC;AACpC,mDAAgD;AAGhD,MAAa,cAAc;CAc1B;AAdD,wCAcC;AAVC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAO,EAAE,CAAC;IAC1D,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAO,CAAC;8BACX,iBAAO;8CAAC;AAKjB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAAa,EAAE,CAAC;IAChF,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAa,CAAC;8BACb,6BAAa;kDAAC;AAG3B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;uDACzC;AAIxB,MAAa,gBAAiB,SAAQ,2BAAY;CAKjD;AALD,4CAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;IACvC,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,cAAc,CAAC;;gDACF","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { ValidateNested } from 'class-validator';\r\nimport { Type } from 'class-transformer';\r\nimport { BaseResponse } from './BaseResponse';\r\nimport { UserDto } from './UserDto';\r\nimport { UserGrantsDto } from './UserGrantsDto';\r\n\r\n\r\nexport class GetUsersResult {\r\n @ApiProperty({ description: 'Dati utente', type: UserDto })\r\n @ValidateNested()\r\n @Type(() => UserDto)\r\n utente?: UserDto;\r\n\r\n @ApiProperty({ description: 'Abilitazioni e ruoli utente', type: UserGrantsDto })\r\n @ValidateNested()\r\n @Type(() => UserGrantsDto)\r\n userGrants?: UserGrantsDto;\r\n\r\n @ApiProperty({ description: 'Extension Fields', type: Object })\r\n extensionFields?: any;\r\n\r\n}\r\n\r\nexport class GetUsersResponse extends BaseResponse {\r\n @ApiProperty({ type: [GetUsersResult] })\r\n @ValidateNested({ each: true })\r\n @Type(() => GetUsersResult)\r\n Result: GetUsersResult[];\r\n}\r\n\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/LoginRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAmD;AAEnD,MAAa,YAAY;CAiBxB;AAjBD,oCAiBC;AATG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,aAAa;KACzB,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;2CAC1D;AAQd;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,iBAAiB;KAC7B,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IAC7D,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;;8CAC7D","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\nimport { IsString, Length } from \"class-validator\";\n\nexport class LoginRequest {\n \n @ApiProperty({\n description: 'Email dell\\'utente',\n example: 'mario.rossi'\n })\n @IsString({ message: \"L'email deve essere una stringa.\" })\n @Length(3, 50, { message: \"L'email deve essere tra 3 e 50 caratteri.\" })\n email: string;\n\n @ApiProperty({\n description: 'Password dell\\'utente',\n example: 'Str0ngP@ssw0rd!'\n })\n @IsString({ message: \"La password deve essere una stringa.\" })\n @Length(8, 100, { message: \"La password deve essere tra 8 e 100 caratteri.\" })\n password: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LoginRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/LoginRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAmD;AAEnD,MAAa,YAAY;CAiBxB;AAjBD,oCAiBC;AATG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,aAAa;KACzB,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;2CAC1D;AAQd;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,uBAAuB;QACpC,OAAO,EAAE,iBAAiB;KAC7B,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IAC7D,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;;8CAC7D","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\nimport { IsString, Length } from \"class-validator\";\r\n\r\nexport class LoginRequest {\r\n \r\n @ApiProperty({\r\n description: 'Email dell\\'utente',\r\n example: 'mario.rossi'\r\n })\r\n @IsString({ message: \"L'email deve essere una stringa.\" })\r\n @Length(3, 50, { message: \"L'email deve essere tra 3 e 50 caratteri.\" })\r\n email: string;\r\n\r\n @ApiProperty({\r\n description: 'Password dell\\'utente',\r\n example: 'Str0ngP@ssw0rd!'\r\n })\r\n @IsString({ message: \"La password deve essere una stringa.\" })\r\n @Length(8, 100, { message: \"La password deve essere tra 8 e 100 caratteri.\" })\r\n password: string;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/LoginResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,iDAA8C;AAC9C,iDAA8C;AAE9C,+CAA4C;AAC5C,uCAAoC;AACpC,yDAAyC;AACzC,qDAAiD;AACjD,mDAAgD;AAEhD,MAAa,WAAW;CAuBvB;AAvBD,kCAuBC;AAnBC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAO,EAAE,CAAC;IAC1D,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAO,CAAC;8BACX,iBAAO;2CAAC;AAKjB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,2BAAY,CAAC,EAAE,CAAC;IACnE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAY,CAAC;;2CACD;AAKxB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAAa,EAAE,CAAC;IAChF,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAa,CAAC;8BACb,6BAAa;+CAAC;AAG3B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;;oDACxC;AAKtB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAW,EAAE,CAAC;IACxD,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yBAAW,CAAC;8BAChB,yBAAW;0CAAC;AAGtB,MAAa,aAAc,SAAQ,2BAAY;CAK9C;AALD,sCAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAClC,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC;8BAChB,WAAW;6CAAC","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\nimport { BaseResponse } from \"./BaseResponse\";\nimport { FiltriUtente } from \"./FiltriUtente\";\nimport { AbilitazioneMenu } from \"./AbilitazioneMenu\";\nimport { TokenResult } from \"./TokenResult\";\nimport { UserDto } from \"./UserDto\";\nimport { Type } from \"class-transformer\";\nimport { ValidateNested } from \"class-validator\";\nimport { UserGrantsDto } from \"./UserGrantsDto\";\n\nexport class LoginResult {\n @ApiProperty({ description: 'Dati utente', type: UserDto })\n @ValidateNested()\n @Type(() => UserDto)\n utente?: UserDto;\n\n @ApiProperty({ description: 'Filtri utente', type: [FiltriUtente] })\n @ValidateNested({ each: true })\n @Type(() => FiltriUtente)\n filtri?: FiltriUtente[];\n\n @ApiProperty({ description: 'Abilitazioni e ruoli utente', type: UserGrantsDto })\n @ValidateNested()\n @Type(() => UserGrantsDto)\n userGrants?: UserGrantsDto;\n\n @ApiProperty({ description: 'Extension Fields', type: Object})\n extensionFields?: any;\n\n @ApiProperty({ description: 'Token', type: TokenResult })\n @ValidateNested()\n @Type(() => TokenResult)\n token?: TokenResult;\n}\n\nexport class LoginResponse extends BaseResponse {\n @ApiProperty({ type: LoginResult })\n @ValidateNested()\n @Type(() => LoginResult)\n Result: LoginResult;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LoginResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/LoginResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,iDAA8C;AAC9C,iDAA8C;AAE9C,+CAA4C;AAC5C,uCAAoC;AACpC,yDAAyC;AACzC,qDAAiD;AACjD,mDAAgD;AAEhD,MAAa,WAAW;CAuBvB;AAvBD,kCAuBC;AAnBC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,iBAAO,EAAE,CAAC;IAC1D,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,iBAAO,CAAC;8BACX,iBAAO;2CAAC;AAKjB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,2BAAY,CAAC,EAAE,CAAC;IACnE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,2BAAY,CAAC;;2CACD;AAKxB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,6BAAa,EAAE,CAAC;IAChF,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,6BAAa,CAAC;8BACb,6BAAa;+CAAC;AAG3B;IADC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC;;oDACxC;AAKtB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAW,EAAE,CAAC;IACxD,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yBAAW,CAAC;8BAChB,yBAAW;0CAAC;AAGtB,MAAa,aAAc,SAAQ,2BAAY;CAK9C;AALD,sCAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAClC,IAAA,gCAAc,GAAE;IAChB,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAW,CAAC;8BAChB,WAAW;6CAAC","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\nimport { BaseResponse } from \"./BaseResponse\";\r\nimport { FiltriUtente } from \"./FiltriUtente\";\r\nimport { AbilitazioneMenu } from \"./AbilitazioneMenu\";\r\nimport { TokenResult } from \"./TokenResult\";\r\nimport { UserDto } from \"./UserDto\";\r\nimport { Type } from \"class-transformer\";\r\nimport { ValidateNested } from \"class-validator\";\r\nimport { UserGrantsDto } from \"./UserGrantsDto\";\r\n\r\nexport class LoginResult {\r\n @ApiProperty({ description: 'Dati utente', type: UserDto })\r\n @ValidateNested()\r\n @Type(() => UserDto)\r\n utente?: UserDto;\r\n\r\n @ApiProperty({ description: 'Filtri utente', type: [FiltriUtente] })\r\n @ValidateNested({ each: true })\r\n @Type(() => FiltriUtente)\r\n filtri?: FiltriUtente[];\r\n\r\n @ApiProperty({ description: 'Abilitazioni e ruoli utente', type: UserGrantsDto })\r\n @ValidateNested()\r\n @Type(() => UserGrantsDto)\r\n userGrants?: UserGrantsDto;\r\n\r\n @ApiProperty({ description: 'Extension Fields', type: Object})\r\n extensionFields?: any;\r\n\r\n @ApiProperty({ description: 'Token', type: TokenResult })\r\n @ValidateNested()\r\n @Type(() => TokenResult)\r\n token?: TokenResult;\r\n}\r\n\r\nexport class LoginResponse extends BaseResponse {\r\n @ApiProperty({ type: LoginResult })\r\n @ValidateNested()\r\n @Type(() => LoginResult)\r\n Result: LoginResult;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Permission.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2D;AAC3D,yDAAsD;AAEtD,MAAa,UAAU;CAiBtB;AAjBD,gCAiBC;AATG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAChE,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,CAAC;;8CACrE;AAQnB;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oEAAoE;QACjF,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE;KACd,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;oDACtD","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\nimport { IsEnum, IsString, Length } from \"class-validator\";\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\n\nexport class Permission {\n @ApiProperty({\n description: \"Codice identificativo del menu a cui assegnare l'abilitazione.\",\n type: String,\n example: \"MNU001\"\n })\n @IsString({ message: \"Il codice menu deve essere una stringa.\" })\n @Length(3, 50, { message: \"Il codice menu deve essere compreso tra 3 e 50 caratteri.\" })\n codiceMenu: string;\n\n @ApiProperty({\n description: \"Tipo di abilitazione assegnata all'utente per il menu specificato.\",\n type: Number,\n example: 30\n })\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non e valido.\" })\n tipoAbilitazione: number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Permission.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Permission.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA2D;AAC3D,yDAAsD;AAEtD,MAAa,UAAU;CAiBtB;AAjBD,gCAiBC;AATG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gEAAgE;QAC7E,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAChE,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,2DAA2D,EAAE,CAAC;;8CACrE;AAQnB;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,oEAAoE;QACjF,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,EAAE;KACd,CAAC;IACD,IAAA,wBAAM,EAAC,mCAAgB,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;;oDACtD","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\nimport { IsEnum, IsString, Length } from \"class-validator\";\r\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\r\n\r\nexport class Permission {\r\n @ApiProperty({\r\n description: \"Codice identificativo del menu a cui assegnare l'abilitazione.\",\r\n type: String,\r\n example: \"MNU001\"\r\n })\r\n @IsString({ message: \"Il codice menu deve essere una stringa.\" })\r\n @Length(3, 50, { message: \"Il codice menu deve essere compreso tra 3 e 50 caratteri.\" })\r\n codiceMenu: string;\r\n\r\n @ApiProperty({\r\n description: \"Tipo di abilitazione assegnata all'utente per il menu specificato.\",\r\n type: Number,\r\n example: 30\r\n })\r\n @IsEnum(TipoAbilitazione, { message: \"Il tipo di abilitazione non e valido.\" })\r\n tipoAbilitazione: number;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RegisterRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApiProperty, ApiPropertyOptional, OmitType } from \"@nestjs/swagger\";\nimport { Type } from \"class-transformer\";\nimport {\n ArrayUnique,\n IsArray,\n IsBoolean,\n IsInt,\n IsOptional,\n IsString,\n Length,\n ValidateNested,\n} from \"class-validator\";\nimport { Permission } from \"./Permission\";\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\nimport { FiltriUtente } from \"./FiltriUtente\";\n\nexport class RegisterRequest extends OmitType(FiltriUtente, ['codUte'] as const) {\n @ApiProperty({\n description: \"Email dell'utente.\",\n example: \"mario.rossi@dev.it\",\n })\n @IsString({ message: \"L'email deve essere una stringa.\" })\n @Length(3, 254, { message: \"L'email deve essere compresa tra 3 e 254 caratteri.\" })\n email: string;\n\n @ApiPropertyOptional({\n description: \"Cognome dell'utente.\",\n example: \"Rossi\",\n })\n @IsOptional()\n @IsString({ message: \"Il cognome deve essere una stringa.\" })\n @Length(1, 255, { message: \"Il cognome deve essere compreso tra 1 e 255 caratteri.\" })\n cognome?: string;\n\n @ApiPropertyOptional({ description: \"Nome dell'utente.\", example: \"Mario\" })\n @IsOptional()\n @IsString({ message: \"Il nome deve essere una stringa.\" })\n @Length(1, 255, { message: \"Il nome deve essere compreso tra 1 e 255 caratteri.\" })\n nome?: string;\n\n @ApiPropertyOptional({\n description: \"Numero di cellulare.\",\n example: \"+393401234567\",\n nullable: true,\n })\n @IsOptional()\n @IsString({ message: \"Il cellulare deve essere una stringa.\" })\n @Length(1, 50, { message: \"Il cellulare deve essere compreso tra 1 e 50 caratteri.\" })\n cellulare?: string | null;\n\n @ApiPropertyOptional({ description: \"Flag superutente.\", example: false })\n @IsOptional()\n @IsBoolean({ message: \"Il flag superutente deve essere booleano.\" })\n flagSuper?: boolean;\n\n @ApiPropertyOptional({\n description: \"Flag che indica se l'utente è configuratore\",\n example: false,\n })\n @IsOptional()\n @IsBoolean({ message: \"Il flag configuratore deve essere booleano.\" })\n flagAdminConfigurator?: boolean;\n\n @ApiPropertyOptional({\n description: \"Ruoli assegnati all'utente.\",\n example: [1, 2],\n })\n @IsOptional()\n @IsArray({ message: \"I ruoli devono essere un array.\" })\n @ArrayUnique({ message: \"I ruoli non possono contenere duplicati.\" })\n @Type(() => Number)\n @IsInt({ each: true, message: \"Ogni ruolo deve essere un intero.\" })\n roles?: number[];\n\n @ApiPropertyOptional({\n description: \"Permessi assegnati all'utente.\",\n type: [Permission],\n example: [\n {\n codiceMenu: \"MNUOFFICINA\",\n tipoAbilitazione: TipoAbilitazione.SCRITTURA,\n },\n ],\n })\n @IsOptional()\n @IsArray({ message: \"I permessi devono essere un array.\" })\n @ValidateNested({ each: true })\n @Type(() => Permission)\n permissions?: Permission[];\n\n @ApiPropertyOptional({\n description: \"Avatar dell'utente.\",\n example: \"user.svg\",\n })\n @IsOptional()\n @IsString({ message: \"L'avatar deve essere una stringa.\" })\n avatar?: string;\n\n @ApiPropertyOptional({\n description: \"Flag autenticazione a due fattori.\",\n example: false,\n })\n @IsOptional()\n @IsBoolean({ message: \"Il flag due fattori deve essere booleano.\" })\n flagDueFattori?: boolean;\n\n @ApiPropertyOptional({\n description: \"Pagina di default dell'utente.\",\n example: \"/dashboard\",\n })\n @IsOptional()\n @IsString({ message: \"La pagina di default deve essere una stringa.\" })\n paginaDefault?: string;\n\n @ApiPropertyOptional({\n description: \"Numero MAC associato all'utente.\",\n example: 12,\n })\n nummac?: number;\n\n @ApiPropertyOptional({\n description: \"Ragione sociale cliente.\",\n example: \"ALIVAL STOCK\",\n })\n @IsOptional()\n @IsString({ message: \"La ragione sociale deve essere una stringa.\" })\n ragSocCli?: string;\n\n @ApiPropertyOptional({\n description: \"HTML mail personalizzato\",\n example: \"<html></html>\",\n })\n @IsOptional()\n @IsString({ message: \"L'HTML della mail deve essere una stringa.\" })\n htmlMail?: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RegisterRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RegisterRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA6E;AAC7E,yDAAyC;AACzC,qDASyB;AACzB,6CAA0C;AAC1C,yDAAsD;AACtD,iDAA8C;AAE9C,MAAa,eAAgB,SAAQ,IAAA,kBAAQ,EAAC,2BAAY,EAAE,CAAC,QAAQ,CAAU,CAAC;CAuH/E;AAvHD,0CAuHC;AAhHC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,oBAAoB;KAC9B,CAAC;IACD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;;8CACrE;AASd;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,OAAO;KACjB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;IAC5D,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,wDAAwD,EAAE,CAAC;;gDACrE;AAMjB;IAJC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3E,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IACzD,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,qDAAqD,EAAE,CAAC;;6CACrE;AAUd;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IAC9D,IAAA,wBAAM,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,yDAAyD,EAAE,CAAC;;kDAC5D;AAK1B;IAHC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzE,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;kDAChD;AAQpB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,KAAK;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;;8DACtC;AAWhC;IATC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KAChB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACvD,IAAA,6BAAW,EAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IACpE,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;;8CACnD;AAgBjB;IAdC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gCAAgC;QAC7C,IAAI,EAAE,CAAC,uBAAU,CAAC;QAClB,OAAO,EAAE;YACP;gBACE,UAAU,EAAE,aAAa;gBACzB,gBAAgB,EAAE,mCAAgB,CAAC,SAAS;aAC7C;SACF;KACF,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;IAC1D,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,uBAAU,CAAC;;oDACI;AAQ3B;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,UAAU;KACpB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;;+CAC3C;AAQhB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,KAAK;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;;uDAC3C;AAQzB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,YAAY;KACtB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;;sDAChD;AAMvB;IAJC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,EAAE;KACZ,CAAC;;+CACc;AAQhB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,cAAc;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC;;kDAClD;AAQnB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,eAAe;KACzB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;;iDAClD","sourcesContent":["import { ApiProperty, ApiPropertyOptional, OmitType } from \"@nestjs/swagger\";\r\nimport { Type } from \"class-transformer\";\r\nimport {\r\n ArrayUnique,\r\n IsArray,\r\n IsBoolean,\r\n IsInt,\r\n IsOptional,\r\n IsString,\r\n Length,\r\n ValidateNested,\r\n} from \"class-validator\";\r\nimport { Permission } from \"./Permission\";\r\nimport { TipoAbilitazione } from \"./TipoAbilitazione\";\r\nimport { FiltriUtente } from \"./FiltriUtente\";\r\n\r\nexport class RegisterRequest extends OmitType(FiltriUtente, ['codUte'] as const) {\r\n @ApiProperty({\r\n description: \"Email dell'utente.\",\r\n example: \"mario.rossi@dev.it\",\r\n })\r\n @IsString({ message: \"L'email deve essere una stringa.\" })\r\n @Length(3, 254, { message: \"L'email deve essere compresa tra 3 e 254 caratteri.\" })\r\n email: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Cognome dell'utente.\",\r\n example: \"Rossi\",\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"Il cognome deve essere una stringa.\" })\r\n @Length(1, 255, { message: \"Il cognome deve essere compreso tra 1 e 255 caratteri.\" })\r\n cognome?: string;\r\n\r\n @ApiPropertyOptional({ description: \"Nome dell'utente.\", example: \"Mario\" })\r\n @IsOptional()\r\n @IsString({ message: \"Il nome deve essere una stringa.\" })\r\n @Length(1, 255, { message: \"Il nome deve essere compreso tra 1 e 255 caratteri.\" })\r\n nome?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Numero di cellulare.\",\r\n example: \"+393401234567\",\r\n nullable: true,\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"Il cellulare deve essere una stringa.\" })\r\n @Length(1, 50, { message: \"Il cellulare deve essere compreso tra 1 e 50 caratteri.\" })\r\n cellulare?: string | null;\r\n\r\n @ApiPropertyOptional({ description: \"Flag superutente.\", example: false })\r\n @IsOptional()\r\n @IsBoolean({ message: \"Il flag superutente deve essere booleano.\" })\r\n flagSuper?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Flag che indica se l'utente è configuratore\",\r\n example: false,\r\n })\r\n @IsOptional()\r\n @IsBoolean({ message: \"Il flag configuratore deve essere booleano.\" })\r\n flagAdminConfigurator?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Ruoli assegnati all'utente.\",\r\n example: [1, 2],\r\n })\r\n @IsOptional()\r\n @IsArray({ message: \"I ruoli devono essere un array.\" })\r\n @ArrayUnique({ message: \"I ruoli non possono contenere duplicati.\" })\r\n @Type(() => Number)\r\n @IsInt({ each: true, message: \"Ogni ruolo deve essere un intero.\" })\r\n roles?: number[];\r\n\r\n @ApiPropertyOptional({\r\n description: \"Permessi assegnati all'utente.\",\r\n type: [Permission],\r\n example: [\r\n {\r\n codiceMenu: \"MNUOFFICINA\",\r\n tipoAbilitazione: TipoAbilitazione.SCRITTURA,\r\n },\r\n ],\r\n })\r\n @IsOptional()\r\n @IsArray({ message: \"I permessi devono essere un array.\" })\r\n @ValidateNested({ each: true })\r\n @Type(() => Permission)\r\n permissions?: Permission[];\r\n\r\n @ApiPropertyOptional({\r\n description: \"Avatar dell'utente.\",\r\n example: \"user.svg\",\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"L'avatar deve essere una stringa.\" })\r\n avatar?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Flag autenticazione a due fattori.\",\r\n example: false,\r\n })\r\n @IsOptional()\r\n @IsBoolean({ message: \"Il flag due fattori deve essere booleano.\" })\r\n flagDueFattori?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Pagina di default dell'utente.\",\r\n example: \"/dashboard\",\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"La pagina di default deve essere una stringa.\" })\r\n paginaDefault?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Numero MAC associato all'utente.\",\r\n example: 12,\r\n })\r\n nummac?: number;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Ragione sociale cliente.\",\r\n example: \"ALIVAL STOCK\",\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"La ragione sociale deve essere una stringa.\" })\r\n ragSocCli?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"HTML mail personalizzato\",\r\n example: \"<html></html>\",\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"L'HTML della mail deve essere una stringa.\" })\r\n htmlMail?: string;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RegisterResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,iDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,2BAAY;CAMjD;AAND,4CAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE,YAAY;KACtB,CAAC;;gDACa","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { BaseResponse } from './BaseResponse';\n\nexport class RegisterResponse extends BaseResponse {\n @ApiProperty({\n description: 'Codice identificativo univoco dell’utente registrato',\n example: 'USR-123456'\n })\n Result: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RegisterResponse.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RegisterResponse.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,iDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,2BAAY;CAMjD;AAND,4CAMC;AADC;IAJC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,sDAAsD;QACnE,OAAO,EAAE,YAAY;KACtB,CAAC;;gDACa","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { BaseResponse } from './BaseResponse';\r\n\r\nexport class RegisterResponse extends BaseResponse {\r\n @ApiProperty({\r\n description: 'Codice identificativo univoco dell’utente registrato',\r\n example: 'USR-123456'\r\n })\r\n Result: string;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Role.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAQyB;AACzB,2CAAwC;AAExC,MAAa,IAAI;CAqBhB;AArBD,oBAqBC;AAhBC;IAJC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3G,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;;yCACxC;AAKrB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACrD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;IAC1E,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,CAAC;;8CAC3E;AAUzB;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,CAAC,qBAAS,CAAC;KAClB,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IAChE,IAAA,+BAAa,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACrE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,qBAAS,CAAC;;kCACJ","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport {\n ArrayNotEmpty,\n IsArray,\n IsInt,\n IsOptional,\n IsString,\n Length,\n ValidateNested,\n} from 'class-validator';\nimport { RuoliMenu } from './RuoliMenu';\n\nexport class Role {\n @ApiPropertyOptional({ description: 'Codice univoco del ruolo', required: false, type: Number, example: 1 })\n @IsOptional()\n @Type(() => Number)\n @IsInt({ message: 'Il codice ruolo deve essere un intero.' })\n codiceRuolo?: number;\n\n @ApiProperty({ description: 'Descrizione del ruolo' })\n @IsString({ message: 'La descrizione del ruolo deve essere una stringa.' })\n @Length(1, 255, { message: 'La descrizione del ruolo deve essere compresa tra 1 e 255 caratteri.' })\n descrizioneRuolo: string;\n\n @ApiProperty({\n description: 'Lista di menu associati al ruolo',\n type: [RuoliMenu],\n })\n @IsArray({ message: 'I menu del ruolo devono essere un array.' })\n @ArrayNotEmpty({ message: 'Il ruolo deve contenere almeno un menu.' })\n @ValidateNested({ each: true })\n @Type(() => RuoliMenu)\n menu: RuoliMenu[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/Role.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAQyB;AACzB,2CAAwC;AAExC,MAAa,IAAI;CAqBhB;AArBD,oBAqBC;AAhBC;IAJC,IAAA,6BAAmB,EAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC3G,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;;yCACxC;AAKrB;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;IACrD,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;IAC1E,IAAA,wBAAM,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,sEAAsE,EAAE,CAAC;;8CAC3E;AAUzB;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,CAAC,qBAAS,CAAC;KAClB,CAAC;IACD,IAAA,yBAAO,EAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC;IAChE,IAAA,+BAAa,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACrE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,qBAAS,CAAC;;kCACJ","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport {\r\n ArrayNotEmpty,\r\n IsArray,\r\n IsInt,\r\n IsOptional,\r\n IsString,\r\n Length,\r\n ValidateNested,\r\n} from 'class-validator';\r\nimport { RuoliMenu } from './RuoliMenu';\r\n\r\nexport class Role {\r\n @ApiPropertyOptional({ description: 'Codice univoco del ruolo', required: false, type: Number, example: 1 })\r\n @IsOptional()\r\n @Type(() => Number)\r\n @IsInt({ message: 'Il codice ruolo deve essere un intero.' })\r\n codiceRuolo?: number;\r\n\r\n @ApiProperty({ description: 'Descrizione del ruolo' })\r\n @IsString({ message: 'La descrizione del ruolo deve essere una stringa.' })\r\n @Length(1, 255, { message: 'La descrizione del ruolo deve essere compresa tra 1 e 255 caratteri.' })\r\n descrizioneRuolo: string;\r\n\r\n @ApiProperty({\r\n description: 'Lista di menu associati al ruolo',\r\n type: [RuoliMenu],\r\n })\r\n @IsArray({ message: 'I menu del ruolo devono essere un array.' })\r\n @ArrayNotEmpty({ message: 'Il ruolo deve contenere almeno un menu.' })\r\n @ValidateNested({ each: true })\r\n @Type(() => RuoliMenu)\r\n menu: RuoliMenu[];\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuoliMenu.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RuoliMenu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAAqF;AACrF,yDAAsD;AAEtD,MAAa,SAAS;CAwBrB;AAxBD,8BAwBC;AAjBC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ;AAQrB;IANC,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;;6CACvC;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;;mDAC5C","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';\nimport { TipoAbilitazione } from './TipoAbilitazione';\n\nexport class RuoliMenu {\n @ApiPropertyOptional({\n description: 'Codice Ruolo',\n example: 1,\n })\n @IsNumber()\n @IsOptional()\n codiceRuolo?: number;\n\n @ApiProperty({\n description: 'Codice univoco del menu',\n example: 'MNUELENCOCLIENTI',\n })\n @IsString()\n @IsNotEmpty({ message: 'Il codice menu è obbligatorio.' })\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}\n"]}
|
|
1
|
+
{"version":3,"file":"RuoliMenu.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/RuoliMenu.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,qDAAqF;AACrF,yDAAsD;AAEtD,MAAa,SAAS;CAwBrB;AAxBD,8BAwBC;AAjBC;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACQ;AAQrB;IANC,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;;6CACvC;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;;mDAC5C","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\r\nimport { IsEnum, IsNotEmpty, IsNumber, IsOptional, IsString } from 'class-validator';\r\nimport { TipoAbilitazione } from './TipoAbilitazione';\r\n\r\nexport class RuoliMenu {\r\n @ApiPropertyOptional({\r\n description: 'Codice Ruolo',\r\n example: 1,\r\n })\r\n @IsNumber()\r\n @IsOptional()\r\n codiceRuolo?: number;\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 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}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetStatoRegistrazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/SetStatoRegistrazione.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAqD;AACrD,6DAA0D;AAE1D,MAAa,wBAAwB;CAiBpC;AAjBD,4DAiBC;AATC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,GAAG;KACb,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAC7D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;;8DACjD;AAQrB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,uCAAkB;QACxB,OAAO,EAAE,uCAAkB,CAAC,MAAM;KACnC,CAAC;IACD,IAAA,wBAAM,EAAC,uCAAkB,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;oEAC5C","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsEnum, IsInt, Min } from 'class-validator';\nimport { StatoRegistrazione } from './StatoRegistrazione';\n\nexport class SetStatoRegistrazioneDto {\n @ApiProperty({\n description: \"Codice identificativo dell'utente\",\n example: 123,\n })\n @Type(() => Number)\n @IsInt({ message: 'Il codice utente deve essere un intero.' })\n @Min(1, { message: 'Il codice utente deve essere maggiore di zero.' })\n codiceUtente: number;\n\n @ApiProperty({\n description: 'Nuovo stato di registrazione',\n enum: StatoRegistrazione,\n example: StatoRegistrazione.DELETE,\n })\n @IsEnum(StatoRegistrazione, { message: 'Lo stato di registrazione non e valido.' })\n statoRegistrazione: StatoRegistrazione;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SetStatoRegistrazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/SetStatoRegistrazione.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAqD;AACrD,6DAA0D;AAE1D,MAAa,wBAAwB;CAiBpC;AAjBD,4DAiBC;AATC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,GAAG;KACb,CAAC;IACD,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IAC7D,IAAA,qBAAG,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;;8DACjD;AAQrB;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,uCAAkB;QACxB,OAAO,EAAE,uCAAkB,CAAC,MAAM;KACnC,CAAC;IACD,IAAA,wBAAM,EAAC,uCAAkB,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;oEAC5C","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport { IsEnum, IsInt, Min } from 'class-validator';\r\nimport { StatoRegistrazione } from './StatoRegistrazione';\r\n\r\nexport class SetStatoRegistrazioneDto {\r\n @ApiProperty({\r\n description: \"Codice identificativo dell'utente\",\r\n example: 123,\r\n })\r\n @Type(() => Number)\r\n @IsInt({ message: 'Il codice utente deve essere un intero.' })\r\n @Min(1, { message: 'Il codice utente deve essere maggiore di zero.' })\r\n codiceUtente: number;\r\n\r\n @ApiProperty({\r\n description: 'Nuovo stato di registrazione',\r\n enum: StatoRegistrazione,\r\n example: StatoRegistrazione.DELETE,\r\n })\r\n @IsEnum(StatoRegistrazione, { message: 'Lo stato di registrazione non e valido.' })\r\n statoRegistrazione: StatoRegistrazione;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatoRegistrazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/StatoRegistrazione.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,8DAAU,CAAA;IACV,4DAAS,CAAA;IACT,gEAAW,CAAA;IACX,8DAAU,CAAA;AACZ,CAAC,EAPW,kBAAkB,kCAAlB,kBAAkB,QAO7B;AAEY,QAAA,wBAAwB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC","sourcesContent":["export enum StatoRegistrazione {\n NULL = 0,\n INSERT = 5,\n INVIO = 10,\n CONF = 20,\n DELETE = 50,\n BLOCC = 99,\n}\n\nexport const StatoRegistrazioneValues = [0, 5, 10, 20, 50, 99] as const;\n"]}
|
|
1
|
+
{"version":3,"file":"StatoRegistrazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/StatoRegistrazione.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAOX;AAPD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,+DAAU,CAAA;IACV,8DAAU,CAAA;IACV,4DAAS,CAAA;IACT,gEAAW,CAAA;IACX,8DAAU,CAAA;AACZ,CAAC,EAPW,kBAAkB,kCAAlB,kBAAkB,QAO7B;AAEY,QAAA,wBAAwB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAU,CAAC","sourcesContent":["export enum StatoRegistrazione {\r\n NULL = 0,\r\n INSERT = 5,\r\n INVIO = 10,\r\n CONF = 20,\r\n DELETE = 50,\r\n BLOCC = 99,\r\n}\r\n\r\nexport const StatoRegistrazioneValues = [0, 5, 10, 20, 50, 99] as const;\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TipoAbilitazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TipoAbilitazione.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,6DAAW,CAAA;IACX,8DAAY,CAAA;IACZ,kEAAc,CAAA;IACd,8DAAY,CAAA;AAChB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B","sourcesContent":["export enum TipoAbilitazione {\n NESSUNA = 0,\n LETTURA = 10,\n SCRITTURA = 20,\n SPECIAL = 30\n}"]}
|
|
1
|
+
{"version":3,"file":"TipoAbilitazione.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TipoAbilitazione.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,6DAAW,CAAA;IACX,8DAAY,CAAA;IACZ,kEAAc,CAAA;IACd,8DAAY,CAAA;AAChB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B","sourcesContent":["export enum TipoAbilitazione {\r\n NESSUNA = 0,\r\n LETTURA = 10,\r\n SCRITTURA = 20,\r\n SPECIAL = 30\r\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TipoFiltro.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TipoFiltro.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAA2G;AAC3G,iDAA8C;AAE9C,MAAa,UAAU;IAAvB;QAyCE,eAAU,GAAW,CAAC,CAAC;IACzB,CAAC;CAAA;AA1CD,gCA0CC;AAlCC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,MAAM;KACb,CAAC;IACD,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;0CACE;AAWf;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,iBAAiB;QAC1B,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,EAAE,CAAC;IACb,IAAA,4BAAU,GAAE;;0CACG;AAWhB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,EAAE,CAAC;IACb,IAAA,4BAAU,GAAE;;0CACG;AAWhB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,sBAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IACX,IAAA,4BAAU,GAAE;;8CACU;AAGzB,MAAa,iBAAkB,SAAQ,2BAAY;CAKlD;AALD,8CAKC;AADG;IAHG,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChD,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;;iDACJ;AAGzB,MAAa,gBAAgB;CAS5B;AATD,4CASC;AADG;IAPC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KACd,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;oDACD","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport { IsIn, IsInt, IsNotEmpty, IsOptional, IsString, MaxLength, ValidateNested } from 'class-validator';\nimport { BaseResponse } from './BaseResponse';\n\nexport class TipoFiltro {\n @ApiProperty({\n description: 'Identificativo del tipo di filtro',\n example: 1,\n type: Number,\n })\n @IsInt()\n @IsNotEmpty()\n tipFil: number;\n\n @ApiProperty({\n description: 'Descrizione del filtro',\n example: 'Filtro standard',\n maxLength: 20,\n required: false,\n })\n @IsString()\n @MaxLength(20)\n @IsOptional()\n desFil?: string;\n\n @ApiProperty({\n description: 'Campo associato al filtro',\n example: 'campoValore',\n maxLength: 20,\n required: false,\n })\n @IsString()\n @MaxLength(20)\n @IsOptional()\n fldFil?: string;\n\n @ApiProperty({\n description: 'Filtro abilitato',\n example: 1,\n enum: [0, 1],\n required: false,\n default: 1,\n })\n @IsIn([0,1])\n @IsOptional()\n flgEnabled?: 0 | 1 = 1;\n}\n\nexport class GetFiltriResponse extends BaseResponse {\n @ApiProperty({ type: TipoFiltro, isArray: true })\n @ValidateNested({ each: true })\n @Type(() => TipoFiltro)\n Result : TipoFiltro[]\n}\n\nexport class GetFiltriRequest {\n @ApiPropertyOptional({\n description: 'Mostra solo abilitati',\n enum: [0,1]\n })\n @IsOptional()\n @IsIn([0,1])\n @Type(() => Number)\n flgEnabled?: 0 | 1\n}\n\n\n"]}
|
|
1
|
+
{"version":3,"file":"TipoFiltro.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TipoFiltro.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAA2G;AAC3G,iDAA8C;AAE9C,MAAa,UAAU;IAAvB;QAyCE,eAAU,GAAW,CAAC,CAAC;IACzB,CAAC;CAAA;AA1CD,gCA0CC;AAlCC;IAPC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,MAAM;KACb,CAAC;IACD,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;0CACE;AAWf;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,wBAAwB;QACrC,OAAO,EAAE,iBAAiB;QAC1B,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,EAAE,CAAC;IACb,IAAA,4BAAU,GAAE;;0CACG;AAWhB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,EAAE,CAAC;IACb,IAAA,4BAAU,GAAE;;0CACG;AAWhB;IATC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,sBAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IACX,IAAA,4BAAU,GAAE;;8CACU;AAGzB,MAAa,iBAAkB,SAAQ,2BAAY;CAKlD;AALD,8CAKC;AADG;IAHG,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChD,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;;iDACJ;AAGzB,MAAa,gBAAgB;CAS5B;AATD,4CASC;AADG;IAPC,IAAA,6BAAmB,EAAC;QACjB,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KACd,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,sBAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IACX,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;;oDACD","sourcesContent":["import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport { IsIn, IsInt, IsNotEmpty, IsOptional, IsString, MaxLength, ValidateNested } from 'class-validator';\r\nimport { BaseResponse } from './BaseResponse';\r\n\r\nexport class TipoFiltro {\r\n @ApiProperty({\r\n description: 'Identificativo del tipo di filtro',\r\n example: 1,\r\n type: Number,\r\n })\r\n @IsInt()\r\n @IsNotEmpty()\r\n tipFil: number;\r\n\r\n @ApiProperty({\r\n description: 'Descrizione del filtro',\r\n example: 'Filtro standard',\r\n maxLength: 20,\r\n required: false,\r\n })\r\n @IsString()\r\n @MaxLength(20)\r\n @IsOptional()\r\n desFil?: string;\r\n\r\n @ApiProperty({\r\n description: 'Campo associato al filtro',\r\n example: 'campoValore',\r\n maxLength: 20,\r\n required: false,\r\n })\r\n @IsString()\r\n @MaxLength(20)\r\n @IsOptional()\r\n fldFil?: string;\r\n\r\n @ApiProperty({\r\n description: 'Filtro abilitato',\r\n example: 1,\r\n enum: [0, 1],\r\n required: false,\r\n default: 1,\r\n })\r\n @IsIn([0,1])\r\n @IsOptional()\r\n flgEnabled?: 0 | 1 = 1;\r\n}\r\n\r\nexport class GetFiltriResponse extends BaseResponse {\r\n @ApiProperty({ type: TipoFiltro, isArray: true })\r\n @ValidateNested({ each: true })\r\n @Type(() => TipoFiltro)\r\n Result : TipoFiltro[]\r\n}\r\n\r\nexport class GetFiltriRequest {\r\n @ApiPropertyOptional({\r\n description: 'Mostra solo abilitati',\r\n enum: [0,1]\r\n })\r\n @IsOptional()\r\n @IsIn([0,1])\r\n @Type(() => Number)\r\n flgEnabled?: 0 | 1\r\n}\r\n\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenResult.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TokenResult.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,WAAW;CAmBvB;AAnBD,kCAmBC;AAdG;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,MAAM;KAClB,CAAC;;8CACgB;AAMlB;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,yCAAyC;KACrD,CAAC;;0CACY;AAOd;IALC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACzB,OAAO,EAAE,QAAQ;KACpB,CAAC;;yCACuB","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\n\nexport class TokenResult {\n @ApiProperty({\n description: \"Tempo di scadenza del token in secondi\",\n example: \"3600\"\n })\n expiresIn: string;\n\n @ApiProperty({\n description: \"Valore del token JWT o Basic\",\n example: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n })\n value: string;\n\n @ApiProperty({\n description: \"Tipo di token di autenticazione\",\n enum: [\"Bearer\", \"Basic\"],\n example: \"Bearer\"\n })\n type: \"Bearer\" | \"Basic\";\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TokenResult.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/TokenResult.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAE9C,MAAa,WAAW;CAmBvB;AAnBD,kCAmBC;AAdG;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,MAAM;KAClB,CAAC;;8CACgB;AAMlB;IAJC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,yCAAyC;KACrD,CAAC;;0CACY;AAOd;IALC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QACzB,OAAO,EAAE,QAAQ;KACpB,CAAC;;yCACuB","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\n\r\nexport class TokenResult {\r\n @ApiProperty({\r\n description: \"Tempo di scadenza del token in secondi\",\r\n example: \"3600\"\r\n })\r\n expiresIn: string;\r\n\r\n @ApiProperty({\r\n description: \"Valore del token JWT o Basic\",\r\n example: \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\r\n })\r\n value: string;\r\n\r\n @ApiProperty({\r\n description: \"Tipo di token di autenticazione\",\r\n enum: [\"Bearer\", \"Basic\"],\r\n example: \"Bearer\"\r\n })\r\n type: \"Bearer\" | \"Basic\";\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateEnabledStatusRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UpdateEnabledStatusRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA4C;AAE5C,MAAa,0BAA0B;CAQtC;AARD,gEAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;;2DACpD","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\nimport { IsBoolean } from 'class-validator';\n\nexport class UpdateEnabledStatusRequest {\n @ApiProperty({\n description: 'Nuovo stato di abilitazione',\n example: true,\n type: Boolean,\n })\n @IsBoolean({ message: 'Il valore di enabled deve essere booleano.' })\n enabled: boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UpdateEnabledStatusRequest.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UpdateEnabledStatusRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAA4C;AAE5C,MAAa,0BAA0B;CAQtC;AARD,gEAQC;AADC;IANC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,OAAO;KACd,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;;2DACpD","sourcesContent":["import { ApiProperty } from '@nestjs/swagger';\r\nimport { IsBoolean } from 'class-validator';\r\n\r\nexport class UpdateEnabledStatusRequest {\r\n @ApiProperty({\r\n description: 'Nuovo stato di abilitazione',\r\n example: true,\r\n type: Boolean,\r\n })\r\n @IsBoolean({ message: 'Il valore di enabled deve essere booleano.' })\r\n enabled: boolean;\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserDto.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UserDto.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApiProperty, ApiPropertyOptional, OmitType } from '@nestjs/swagger';\nimport { Type } from 'class-transformer';\nimport {\n ArrayUnique,\n IsArray,\n IsBoolean,\n IsEnum,\n IsInt,\n IsOptional,\n IsString,\n Length,\n Min,\n ValidateNested,\n} from 'class-validator';\nimport { StatoRegistrazione } from './StatoRegistrazione';\nimport { Permission } from './Permission';\nimport { TipoAbilitazione } from './TipoAbilitazione';\nimport { FiltriUtente } from './FiltriUtente';\n\nexport class UserDto extends OmitType(FiltriUtente, ['codUte'] as const) {\n @ApiProperty({ description: \"Codice identificativo univoco dell'utente.\", example: 'USR123' })\n @IsOptional()\n @Type(() => Number)\n @IsInt({ message: 'Il codice utente deve essere un intero.' })\n @Min(1, { message: 'Il codice utente deve essere maggiore di zero.' })\n codiceUtente: number;\n\n @ApiProperty({ description: \"Email dell'utente.\", example: 'mario.rossi@dev.it' })\n @IsOptional()\n @IsString({ message: \"L'email deve essere una stringa.\" })\n @Length(3, 254, { message: \"L'email deve essere compresa tra 3 e 254 caratteri.\" })\n email: string;\n\n @ApiPropertyOptional({ description: \"Flag per l'accettazione del GDPR.\", example: true })\n @IsOptional()\n @IsBoolean({ message: 'Il flag GDPR deve essere booleano.' })\n flagGdpr?: boolean;\n\n @ApiPropertyOptional({\n description: 'Data di accettazione del GDPR.',\n format: 'date-time',\n example: '2024-03-18T12:34:56Z',\n })\n @IsOptional()\n @IsString({ message: 'La data GDPR deve essere una stringa.' })\n dataGdpr?: string;\n\n @ApiPropertyOptional({\n description: \"Data di inserimento dell'utente nel sistema.\",\n format: 'date-time',\n example: '2023-01-01T08:30:00Z',\n })\n @IsOptional()\n @IsString({ message: 'La data di inserimento deve essere una stringa.' })\n dataInserimento?: string;\n\n @ApiPropertyOptional({\n description: 'Data scadenza password.',\n format: 'date-time',\n example: '2025-06-01',\n })\n @IsOptional()\n @IsString({ message: 'La data scadenza password deve essere una stringa.' })\n dataScadenzaPassword?: string;\n\n @ApiPropertyOptional({\n description: \"Ultima data di accesso dell'utente.\",\n format: 'date-time',\n example: '2024-03-15T14:45:00Z',\n })\n @IsOptional()\n @IsString({ message: 'La data ultimo accesso deve essere una stringa.' })\n dataLastLogin?: string;\n\n @ApiPropertyOptional({\n description: \"Stato della registrazione dell'utente.\",\n enum: StatoRegistrazione,\n example: StatoRegistrazione.CONF,\n })\n @IsOptional()\n @IsEnum(StatoRegistrazione, { message: 'Lo stato di registrazione non e valido.' })\n statoRegistrazione?: StatoRegistrazione;\n\n @ApiPropertyOptional({\n description: \"Chiave di registrazione dell'utente.\",\n example: 'abc123xyz',\n })\n @IsOptional()\n @IsString({ message: 'La chiave registrazione deve essere una stringa.' })\n keyRegistrazione?: string;\n\n @ApiPropertyOptional({ description: \"Cognome dell'utente.\", example: 'Rossi' })\n @IsOptional()\n @IsString({ message: 'Il cognome deve essere una stringa.' })\n @Length(1, 255, { message: 'Il cognome deve essere compreso tra 1 e 255 caratteri.' })\n cognome?: string;\n\n @ApiPropertyOptional({ description: \"Nome dell'utente.\", example: 'Mario' })\n @IsOptional()\n @IsString({ message: 'Il nome deve essere una stringa.' })\n @Length(1, 255, { message: 'Il nome deve essere compreso tra 1 e 255 caratteri.' })\n nome?: string;\n\n @ApiPropertyOptional({\n description: 'Avatar (URL o base64).',\n example: 'https://example.com/avatar.jpg',\n nullable: true,\n })\n @IsOptional()\n @IsString({ message: \"L'avatar deve essere una stringa.\" })\n avatar?: string | null;\n\n @ApiPropertyOptional({\n description: \"Flag che indica se l'autenticazione a due fattori è attivata.\",\n example: true,\n })\n @IsOptional()\n @IsBoolean({ message: 'Il flag due fattori deve essere booleano.' })\n flagDueFattori?: boolean;\n\n @ApiPropertyOptional({ description: 'Codice lingua preferito.', example: 'it' })\n @IsOptional()\n @IsString({ message: 'Il codice lingua deve essere una stringa.' })\n @Length(1, 20, { message: 'Il codice lingua deve essere compreso tra 1 e 20 caratteri.' })\n codiceLingua?: string;\n\n @ApiPropertyOptional({\n description: 'Numero di cellulare.',\n example: '+393401234567',\n nullable: true,\n })\n @IsOptional()\n @IsString({ message: 'Il cellulare deve essere una stringa.' })\n @Length(1, 50, { message: 'Il cellulare deve essere compreso tra 1 e 50 caratteri.' })\n cellulare?: string | null;\n\n @ApiPropertyOptional({ description: 'Flag superutente.', example: false })\n @IsOptional()\n @IsBoolean({ message: 'Il flag superutente deve essere booleano.' })\n flagSuper?: boolean;\n\n @ApiPropertyOptional({\n description: \"Flag che indica se l'utente è configuratore\",\n example: false,\n })\n @IsOptional()\n @IsBoolean({ message: 'Il flag configuratore deve essere booleano.' })\n flagAdminConfigurator?: boolean;\n\n @ApiPropertyOptional({\n description: \"Pagina di default dell'utente all'accesso.\",\n example: '/dashboard',\n })\n @IsOptional()\n @IsString({ message: 'La pagina di default deve essere una stringa.' })\n paginaDefault?: string;\n\n @ApiPropertyOptional({\n description: \"Numero MAC associato all'utente.\",\n example: 12,\n })\n nummac?: number;\n\n @ApiPropertyOptional({\n description: 'Metadata JSON personalizzato.',\n example: '{\"theme\": \"dark\"}',\n })\n @IsOptional()\n @IsString({ message: 'I metadata JSON devono essere una stringa.' })\n jsonMetadata?: string;\n\n @ApiPropertyOptional({ description: 'Ragione sociale cliente.', example: 'ACME Corp SpA' })\n @IsOptional()\n @IsString({ message: 'La ragione sociale deve essere una stringa.' })\n ragSocCli?: string;\n\n @ApiPropertyOptional({ description: \"Ruoli assegnati all'utente.\", example: [1, 2] })\n @IsOptional()\n @IsArray({ message: 'I ruoli devono essere un array.' })\n @ArrayUnique({ message: 'I ruoli non possono contenere duplicati.' })\n @Type(() => Number)\n @IsInt({ each: true, message: 'Ogni ruolo deve essere un intero.' })\n roles?: number[];\n\n @ApiPropertyOptional({\n description: \"Permessi assegnati all'utente.\",\n type: [Permission],\n example: [{ codiceMenu: 'MNUOFFICINA', tipoAbilitazione: TipoAbilitazione.SCRITTURA }],\n })\n @IsOptional()\n @IsArray({ message: 'I permessi devono essere un array.' })\n @ValidateNested({ each: true })\n @Type(() => Permission)\n permissions?: Permission[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UserDto.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UserDto.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApiProperty, ApiPropertyOptional, OmitType } from '@nestjs/swagger';\r\nimport { Type } from 'class-transformer';\r\nimport {\r\n ArrayUnique,\r\n IsArray,\r\n IsBoolean,\r\n IsEnum,\r\n IsInt,\r\n IsOptional,\r\n IsString,\r\n Length,\r\n Min,\r\n ValidateNested,\r\n} from 'class-validator';\r\nimport { StatoRegistrazione } from './StatoRegistrazione';\r\nimport { Permission } from './Permission';\r\nimport { TipoAbilitazione } from './TipoAbilitazione';\r\nimport { FiltriUtente } from './FiltriUtente';\r\n\r\nexport class UserDto extends OmitType(FiltriUtente, ['codUte'] as const) {\r\n @ApiProperty({ description: \"Codice identificativo univoco dell'utente.\", example: 'USR123' })\r\n @IsOptional()\r\n @Type(() => Number)\r\n @IsInt({ message: 'Il codice utente deve essere un intero.' })\r\n @Min(1, { message: 'Il codice utente deve essere maggiore di zero.' })\r\n codiceUtente: number;\r\n\r\n @ApiProperty({ description: \"Email dell'utente.\", example: 'mario.rossi@dev.it' })\r\n @IsOptional()\r\n @IsString({ message: \"L'email deve essere una stringa.\" })\r\n @Length(3, 254, { message: \"L'email deve essere compresa tra 3 e 254 caratteri.\" })\r\n email: string;\r\n\r\n @ApiPropertyOptional({ description: \"Flag per l'accettazione del GDPR.\", example: true })\r\n @IsOptional()\r\n @IsBoolean({ message: 'Il flag GDPR deve essere booleano.' })\r\n flagGdpr?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Data di accettazione del GDPR.',\r\n format: 'date-time',\r\n example: '2024-03-18T12:34:56Z',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La data GDPR deve essere una stringa.' })\r\n dataGdpr?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Data di inserimento dell'utente nel sistema.\",\r\n format: 'date-time',\r\n example: '2023-01-01T08:30:00Z',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La data di inserimento deve essere una stringa.' })\r\n dataInserimento?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Data scadenza password.',\r\n format: 'date-time',\r\n example: '2025-06-01',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La data scadenza password deve essere una stringa.' })\r\n dataScadenzaPassword?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Ultima data di accesso dell'utente.\",\r\n format: 'date-time',\r\n example: '2024-03-15T14:45:00Z',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La data ultimo accesso deve essere una stringa.' })\r\n dataLastLogin?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Stato della registrazione dell'utente.\",\r\n enum: StatoRegistrazione,\r\n example: StatoRegistrazione.CONF,\r\n })\r\n @IsOptional()\r\n @IsEnum(StatoRegistrazione, { message: 'Lo stato di registrazione non e valido.' })\r\n statoRegistrazione?: StatoRegistrazione;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Chiave di registrazione dell'utente.\",\r\n example: 'abc123xyz',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La chiave registrazione deve essere una stringa.' })\r\n keyRegistrazione?: string;\r\n\r\n @ApiPropertyOptional({ description: \"Cognome dell'utente.\", example: 'Rossi' })\r\n @IsOptional()\r\n @IsString({ message: 'Il cognome deve essere una stringa.' })\r\n @Length(1, 255, { message: 'Il cognome deve essere compreso tra 1 e 255 caratteri.' })\r\n cognome?: string;\r\n\r\n @ApiPropertyOptional({ description: \"Nome dell'utente.\", example: 'Mario' })\r\n @IsOptional()\r\n @IsString({ message: 'Il nome deve essere una stringa.' })\r\n @Length(1, 255, { message: 'Il nome deve essere compreso tra 1 e 255 caratteri.' })\r\n nome?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Avatar (URL o base64).',\r\n example: 'https://example.com/avatar.jpg',\r\n nullable: true,\r\n })\r\n @IsOptional()\r\n @IsString({ message: \"L'avatar deve essere una stringa.\" })\r\n avatar?: string | null;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Flag che indica se l'autenticazione a due fattori è attivata.\",\r\n example: true,\r\n })\r\n @IsOptional()\r\n @IsBoolean({ message: 'Il flag due fattori deve essere booleano.' })\r\n flagDueFattori?: boolean;\r\n\r\n @ApiPropertyOptional({ description: 'Codice lingua preferito.', example: 'it' })\r\n @IsOptional()\r\n @IsString({ message: 'Il codice lingua deve essere una stringa.' })\r\n @Length(1, 20, { message: 'Il codice lingua deve essere compreso tra 1 e 20 caratteri.' })\r\n codiceLingua?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Numero di cellulare.',\r\n example: '+393401234567',\r\n nullable: true,\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'Il cellulare deve essere una stringa.' })\r\n @Length(1, 50, { message: 'Il cellulare deve essere compreso tra 1 e 50 caratteri.' })\r\n cellulare?: string | null;\r\n\r\n @ApiPropertyOptional({ description: 'Flag superutente.', example: false })\r\n @IsOptional()\r\n @IsBoolean({ message: 'Il flag superutente deve essere booleano.' })\r\n flagSuper?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Flag che indica se l'utente è configuratore\",\r\n example: false,\r\n })\r\n @IsOptional()\r\n @IsBoolean({ message: 'Il flag configuratore deve essere booleano.' })\r\n flagAdminConfigurator?: boolean;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Pagina di default dell'utente all'accesso.\",\r\n example: '/dashboard',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'La pagina di default deve essere una stringa.' })\r\n paginaDefault?: string;\r\n\r\n @ApiPropertyOptional({\r\n description: \"Numero MAC associato all'utente.\",\r\n example: 12,\r\n })\r\n nummac?: number;\r\n\r\n @ApiPropertyOptional({\r\n description: 'Metadata JSON personalizzato.',\r\n example: '{\"theme\": \"dark\"}',\r\n })\r\n @IsOptional()\r\n @IsString({ message: 'I metadata JSON devono essere una stringa.' })\r\n jsonMetadata?: string;\r\n\r\n @ApiPropertyOptional({ description: 'Ragione sociale cliente.', example: 'ACME Corp SpA' })\r\n @IsOptional()\r\n @IsString({ message: 'La ragione sociale deve essere una stringa.' })\r\n ragSocCli?: string;\r\n\r\n @ApiPropertyOptional({ description: \"Ruoli assegnati all'utente.\", example: [1, 2] })\r\n @IsOptional()\r\n @IsArray({ message: 'I ruoli devono essere un array.' })\r\n @ArrayUnique({ message: 'I ruoli non possono contenere duplicati.' })\r\n @Type(() => Number)\r\n @IsInt({ each: true, message: 'Ogni ruolo deve essere un intero.' })\r\n roles?: number[];\r\n\r\n @ApiPropertyOptional({\r\n description: \"Permessi assegnati all'utente.\",\r\n type: [Permission],\r\n example: [{ codiceMenu: 'MNUOFFICINA', tipoAbilitazione: TipoAbilitazione.SCRITTURA }],\r\n })\r\n @IsOptional()\r\n @IsArray({ message: 'I permessi devono essere un array.' })\r\n @ValidateNested({ each: true })\r\n @Type(() => Permission)\r\n permissions?: Permission[];\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserGrantsDto.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UserGrantsDto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAiD;AACjD,yDAAsD;AACtD,iCAA8B;AAE9B,MAAa,aAAa;CAevB;AAfH,sCAeG;AAXC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,mCAAgB,CAAC,EAAE,CAAC;IACnF,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,mCAAgB,CAAC;;mDACI;AAKjC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,WAAI,CAAC,EAAE,CAAC;IAChE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAI,CAAC;;4CACH;AAKd;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,mCAAgB,CAAC,EAAE,CAAC;IAC1E,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,mCAAgB,CAAC;;6CACF","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\nimport { Type } from \"class-transformer\";\nimport { ValidateNested } from \"class-validator\";\nimport { AbilitazioneMenu } from \"./AbilitazioneMenu\";\nimport { Role } from \"./Role\";\n\nexport class UserGrantsDto {\n @ApiProperty({ description: 'Abilitazioni dell\\'utente', type: [AbilitazioneMenu] })\n @ValidateNested({ each: true })\n @Type(() => AbilitazioneMenu)\n abilitazioni: AbilitazioneMenu[];\n \n @ApiProperty({ description: 'Ruoli dell\\'utente', type: [Role] })\n @ValidateNested({ each: true })\n @Type(() => Role)\n ruoli: Role[];\n \n @ApiProperty({ description: 'Grants combinati', type: [AbilitazioneMenu] })\n @ValidateNested({ each: true })\n @Type(() => AbilitazioneMenu)\n grants: AbilitazioneMenu[];\n }"]}
|
|
1
|
+
{"version":3,"file":"UserGrantsDto.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/UserGrantsDto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAAyC;AACzC,qDAAiD;AACjD,yDAAsD;AACtD,iCAA8B;AAE9B,MAAa,aAAa;CAevB;AAfH,sCAeG;AAXC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,mCAAgB,CAAC,EAAE,CAAC;IACnF,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,mCAAgB,CAAC;;mDACI;AAKjC;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,WAAI,CAAC,EAAE,CAAC;IAChE,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,WAAI,CAAC;;4CACH;AAKd;IAHC,IAAA,qBAAW,EAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,mCAAgB,CAAC,EAAE,CAAC;IAC1E,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,mCAAgB,CAAC;;6CACF","sourcesContent":["import { ApiProperty } from \"@nestjs/swagger\";\r\nimport { Type } from \"class-transformer\";\r\nimport { ValidateNested } from \"class-validator\";\r\nimport { AbilitazioneMenu } from \"./AbilitazioneMenu\";\r\nimport { Role } from \"./Role\";\r\n\r\nexport class UserGrantsDto {\r\n @ApiProperty({ description: 'Abilitazioni dell\\'utente', type: [AbilitazioneMenu] })\r\n @ValidateNested({ each: true })\r\n @Type(() => AbilitazioneMenu)\r\n abilitazioni: AbilitazioneMenu[];\r\n \r\n @ApiProperty({ description: 'Ruoli dell\\'utente', type: [Role] })\r\n @ValidateNested({ each: true })\r\n @Type(() => Role)\r\n ruoli: Role[];\r\n \r\n @ApiProperty({ description: 'Grants combinati', type: [AbilitazioneMenu] })\r\n @ValidateNested({ each: true })\r\n @Type(() => AbilitazioneMenu)\r\n grants: AbilitazioneMenu[];\r\n }"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,mEAAiD;AACjD,6DAA2C;AAC3C,iDAA+B;AAC/B,+DAA4C;AAE5C,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B;AAC7B,yCAAuB;AACvB,uDAAqC;AACrC,qDAAmC;AACnC,gDAA8B;AAC9B,4CAA0B;AAE1B,8CAA2B","sourcesContent":["export * from \"./Abilitazione\";\nexport * from \"./AbilitazioneMenu\";\nexport * from \"./AssignPermissionsToUserRequest\";\nexport * from \"./AssignRolesToUserRequest\";\nexport * from \"./BaseResponse\";\nexport * from \"./UpdateEnabledStatusRequest\"\n\nexport * from \"./FiltriUtente\";\nexport * from \"./LoginRequest\";\nexport * from \"./LoginResponse\";\nexport * from \"./Permission\";\nexport * from \"./Role\";\nexport * from \"./StatoRegistrazione\";\nexport * from \"./TipoAbilitazione\";\nexport * from \"./TokenResult\";\nexport * from \"./UserDto\";\n\nexport * from \"./RuoliMenu\"\n\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/accessi-module/Dtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,mEAAiD;AACjD,6DAA2C;AAC3C,iDAA+B;AAC/B,+DAA4C;AAE5C,iDAA+B;AAC/B,iDAA+B;AAC/B,kDAAgC;AAChC,+CAA6B;AAC7B,yCAAuB;AACvB,uDAAqC;AACrC,qDAAmC;AACnC,gDAA8B;AAC9B,4CAA0B;AAE1B,8CAA2B","sourcesContent":["export * from \"./Abilitazione\";\r\nexport * from \"./AbilitazioneMenu\";\r\nexport * from \"./AssignPermissionsToUserRequest\";\r\nexport * from \"./AssignRolesToUserRequest\";\r\nexport * from \"./BaseResponse\";\r\nexport * from \"./UpdateEnabledStatusRequest\"\r\n\r\nexport * from \"./FiltriUtente\";\r\nexport * from \"./LoginRequest\";\r\nexport * from \"./LoginResponse\";\r\nexport * from \"./Permission\";\r\nexport * from \"./Role\";\r\nexport * from \"./StatoRegistrazione\";\r\nexport * from \"./TipoAbilitazione\";\r\nexport * from \"./TokenResult\";\r\nexport * from \"./UserDto\";\r\n\r\nexport * from \"./RuoliMenu\"\r\n\r\n"]}
|
|
@@ -9,6 +9,7 @@ export declare class AuthService {
|
|
|
9
9
|
private permissionService;
|
|
10
10
|
private filtriService;
|
|
11
11
|
private readonly accessiOptions;
|
|
12
|
+
private readonly logger;
|
|
12
13
|
constructor(userService: UserService, permissionService: PermissionService, filtriService: FiltriService, accessiOptions: AccessiOptions);
|
|
13
14
|
private refreshPasswordExpiration;
|
|
14
15
|
private isMockDemoUserEnabled;
|
|
@@ -53,6 +53,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
53
53
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
|
+
var AuthService_1;
|
|
56
57
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
58
|
exports.AuthService = void 0;
|
|
58
59
|
const common_1 = require("@nestjs/common");
|
|
@@ -65,12 +66,14 @@ const PermissionService_1 = require("../PermissionService/PermissionService");
|
|
|
65
66
|
const FiltriService_1 = require("../FiltriService/FiltriService");
|
|
66
67
|
const authenticatedToken_1 = require("../../security/authenticatedToken");
|
|
67
68
|
const passwordResetToken_1 = require("../../security/passwordResetToken");
|
|
68
|
-
|
|
69
|
+
const Logger_1 = require("../../../Logger");
|
|
70
|
+
let AuthService = AuthService_1 = class AuthService {
|
|
69
71
|
constructor(userService, permissionService, filtriService, accessiOptions) {
|
|
70
72
|
this.userService = userService;
|
|
71
73
|
this.permissionService = permissionService;
|
|
72
74
|
this.filtriService = filtriService;
|
|
73
75
|
this.accessiOptions = accessiOptions;
|
|
76
|
+
this.logger = new Logger_1.Logger(AuthService_1.name);
|
|
74
77
|
}
|
|
75
78
|
refreshPasswordExpiration(codiceUtente) {
|
|
76
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -182,8 +185,12 @@ let AuthService = class AuthService {
|
|
|
182
185
|
}
|
|
183
186
|
migrateLegacyEncryptedPasswords() {
|
|
184
187
|
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
const startedAt = performance.now();
|
|
189
|
+
this.logger.info("Avvio migrazione password legacy accessi.");
|
|
185
190
|
const results = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, "SELECT CODUTE AS codice_utente, PWD AS password FROM UTENTI_PWD WHERE PWD IS NOT NULL", []);
|
|
186
191
|
const rows = results.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
|
|
192
|
+
let migratedCount = 0;
|
|
193
|
+
let skippedCount = 0;
|
|
187
194
|
for (const row of rows) {
|
|
188
195
|
const codiceUtente = Number(row.codiceUtente);
|
|
189
196
|
const storedPassword = typeof row.password === "string" ? row.password : null;
|
|
@@ -191,11 +198,14 @@ let AuthService = class AuthService {
|
|
|
191
198
|
!storedPassword ||
|
|
192
199
|
Utilities_1.PasswordUtilities.isPasswordHash(storedPassword) ||
|
|
193
200
|
Utilities_1.PasswordUtilities.isLegacyPasswordHash(storedPassword)) {
|
|
201
|
+
skippedCount += 1;
|
|
194
202
|
continue;
|
|
195
203
|
}
|
|
196
204
|
const protectedLegacyPassword = Utilities_1.PasswordUtilities.hashLegacyEncryptedPassword(storedPassword);
|
|
197
205
|
yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, "UPDATE UTENTI_PWD SET PWD = ? WHERE CODUTE = ? AND PWD = ?", [protectedLegacyPassword, codiceUtente, storedPassword]);
|
|
206
|
+
migratedCount += 1;
|
|
198
207
|
}
|
|
208
|
+
this.logger.info(`Migrazione password legacy accessi completata. Letti=${rows.length}, migrati=${migratedCount}, ignorati=${skippedCount}, durataMs=${(performance.now() - startedAt).toFixed(2)}`);
|
|
199
209
|
});
|
|
200
210
|
}
|
|
201
211
|
verifyPassword(codiceUtente, plainPassword) {
|
|
@@ -310,7 +320,7 @@ let AuthService = class AuthService {
|
|
|
310
320
|
}
|
|
311
321
|
};
|
|
312
322
|
exports.AuthService = AuthService;
|
|
313
|
-
exports.AuthService = AuthService = __decorate([
|
|
323
|
+
exports.AuthService = AuthService = AuthService_1 = __decorate([
|
|
314
324
|
(0, common_1.Injectable)(),
|
|
315
325
|
__param(3, (0, common_1.Inject)("ACCESSI_OPTIONS")),
|
|
316
326
|
__metadata("design:paramtypes", [UserService_1.UserService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthService.js","sourceRoot":"","sources":["../../../../src/accessi-module/Services/AuthService/AuthService.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable } from \"@nestjs/common\";\nimport * as jwt from \"jsonwebtoken\";\nimport { Orm } from \"../../../Orm\";\nimport { CryptUtilities, PasswordUtilities, RestUtilities } from \"../../../Utilities\";\nimport { AccessiOptions } from \"../../AccessiModule\";\nimport { LoginRequest } from \"../../Dtos/LoginRequest\";\nimport { LoginResult } from \"../../Dtos/LoginResponse\";\nimport { StatoRegistrazione } from \"../../Dtos/StatoRegistrazione\";\nimport { UserService } from \"../UserService/UserService\";\nimport { PermissionService } from \"../PermissionService/PermissionService\";\nimport { FiltriService } from \"../FiltriService/FiltriService\";\nimport {\n buildAuthenticatedTokenPayload,\n isAuthenticatedUserEnabledForJwt,\n resolveCodiceUtenteFromTokenPayload,\n} from \"../../security/authenticatedToken\";\nimport {\n getAccessiJwtSecret,\n verifyPasswordResetToken,\n} from \"../../security/passwordResetToken\";\n\n@Injectable()\nexport class AuthService {\n constructor(\n private userService: UserService,\n private permissionService: PermissionService,\n private filtriService: FiltriService,\n @Inject(\"ACCESSI_OPTIONS\") private readonly accessiOptions: AccessiOptions\n ) {}\n\n private async refreshPasswordExpiration(codiceUtente: number): Promise<void> {\n if (!this.accessiOptions.passwordExpiration) {\n return;\n }\n\n const configuredDays = Number(this.accessiOptions.passwordExpirationDays);\n const expirationDays =\n Number.isFinite(configuredDays) && configuredDays > 0\n ? Math.trunc(configuredDays)\n : 90;\n\n const query = `UPDATE UTENTI SET DATSCAPWD = DATEADD(${expirationDays} DAY TO CURRENT_TIMESTAMP) WHERE CODUTE = ?`;\n await Orm.execute(this.accessiOptions.databaseOptions, query, [codiceUtente]);\n }\n\n private isMockDemoUserEnabled(): boolean {\n if (!this.accessiOptions.mockDemoUser) {\n return false;\n }\n\n const nodeEnv = (process.env.NODE_ENV ?? \"production\").toLowerCase();\n return nodeEnv !== \"production\" || process.env.ACCESSI_ALLOW_MOCK_DEMO_USER === \"true\";\n }\n\n async login(request: LoginRequest): Promise<LoginResult> {\n const mockDemoUserEnabled = this.isMockDemoUserEnabled();\n\n if (\n mockDemoUserEnabled &&\n request.email.toLowerCase() === \"demo\"\n ) {\n return this.getDemoUser();\n }\n\n if (\n mockDemoUserEnabled &&\n request.email.toLowerCase() === \"admin\"\n ) {\n return this.getAdminUser();\n }\n\n const utente = await this.userService.getUserByEmail(\n request.email.toLowerCase()\n );\n if (!utente) throw new Error(\"Nome utente o password errata!\");\n\n switch (utente.statoRegistrazione) {\n case undefined:\n throw new Error(\n \"Struttura dati compromessa: Stato Registrazione inesistente.\"\n );\n case StatoRegistrazione.BLOCC:\n case StatoRegistrazione.DELETE:\n throw new Error(\"Utente non abilitato\");\n case StatoRegistrazione.INVIO:\n throw new Error(\"Rinnovo password necessario.\");\n }\n\n if (utente.statoRegistrazione !== StatoRegistrazione.CONF) {\n throw new Error(\n `Errore generico. Stato di registrazione non valido: ${utente.statoRegistrazione}.`\n );\n }\n\n const isPasswordValid = await this.verifyPassword(\n utente.codiceUtente,\n request.password\n );\n if (!isPasswordValid) throw new Error(\"Nome utente o password errata!\");\n\n if (\n this.accessiOptions.passwordExpiration &&\n this.accessiOptions.passwordExpiration == true\n ) {\n const today = new Date();\n const targetDate = new Date(utente.dataScadenzaPassword);\n\n if (today >= targetDate) {\n throw new Error(\"PASSWORD_EXPIRED\");\n }\n }\n\n const userGrants = await this.permissionService.getUserRolesAndGrants(\n utente.codiceUtente\n );\n\n const filtri = await this.filtriService.getFiltriUser(utente.codiceUtente);\n\n const updateLastAccessDateQuery =\n \"UPDATE UTENTI SET DATLASTLOGIN = CURRENT_TIMESTAMP WHERE CODUTE = ?\";\n await Orm.query(\n this.accessiOptions.databaseOptions,\n updateLastAccessDateQuery,\n [utente.codiceUtente]\n );\n\n const extensionFields = {};\n\n if (\n this.accessiOptions.extensionFieldsOptions &&\n this.accessiOptions.extensionFieldsOptions.length > 0\n ) {\n for (const ext of this.accessiOptions.extensionFieldsOptions) {\n const values = (\n await Orm.query(\n ext.databaseOptions,\n `SELECT ${ext.tableFields.join(\",\")} FROM ${ext.tableName} WHERE ${\n ext.tableJoinFieldName\n } = ?`,\n [utente.codiceUtente]\n )\n ).map(RestUtilities.convertKeysToCamelCase);\n\n extensionFields[ext.objectKey] = values;\n }\n }\n\n return { utente, filtri, userGrants, extensionFields };\n }\n\n public async getAuthenticatedTokenPayload(token: string): Promise<Record<string, unknown>> {\n if (typeof token !== \"string\" || token.trim() === \"\") {\n throw new Error(\"Token non fornito.\");\n }\n\n const secret = getAccessiJwtSecret(this.accessiOptions);\n const decoded = jwt.verify(token.trim(), secret);\n const codiceUtente = resolveCodiceUtenteFromTokenPayload(decoded);\n\n if (!codiceUtente) {\n throw new Error(\"Token non valido.\");\n }\n\n const currentUser = await this.userService.getAuthenticatedUserSnapshot(codiceUtente);\n if (!isAuthenticatedUserEnabledForJwt(currentUser)) {\n throw new Error(\"Token non valido o utente non autorizzato.\");\n }\n\n return buildAuthenticatedTokenPayload(decoded, currentUser);\n }\n\n public async setPassword(codiceUtente: number, nuovaPassword: string) {\n try {\n const query = `UPDATE OR INSERT INTO UTENTI_PWD (CODUTE, PWD) VALUES (?, ?)`;\n const hashedPassword = PasswordUtilities.hashPassword(nuovaPassword);\n\n const result = await Orm.execute(this.accessiOptions.databaseOptions, query, [\n codiceUtente,\n hashedPassword,\n ]);\n await this.refreshPasswordExpiration(codiceUtente);\n return result;\n } catch (error) {\n throw error;\n }\n }\n\n public async migrateLegacyEncryptedPasswords(): Promise<void> {\n const results = await Orm.query(\n this.accessiOptions.databaseOptions,\n \"SELECT CODUTE AS codice_utente, PWD AS password FROM UTENTI_PWD WHERE PWD IS NOT NULL\",\n []\n );\n\n const rows = results.map(RestUtilities.convertKeysToCamelCase) as {\n codiceUtente?: number;\n password?: string;\n }[];\n\n for (const row of rows) {\n const codiceUtente = Number(row.codiceUtente);\n const storedPassword = typeof row.password === \"string\" ? row.password : null;\n\n if (\n !codiceUtente ||\n !storedPassword ||\n PasswordUtilities.isPasswordHash(storedPassword) ||\n PasswordUtilities.isLegacyPasswordHash(storedPassword)\n ) {\n continue;\n }\n\n const protectedLegacyPassword =\n PasswordUtilities.hashLegacyEncryptedPassword(storedPassword);\n\n await Orm.execute(\n this.accessiOptions.databaseOptions,\n \"UPDATE UTENTI_PWD SET PWD = ? WHERE CODUTE = ? AND PWD = ?\",\n [protectedLegacyPassword, codiceUtente, storedPassword]\n );\n }\n }\n\n async verifyPassword(\n codiceUtente: number,\n plainPassword: string\n ): Promise<boolean> {\n const query = `SELECT PWD AS password FROM UTENTI_PWD WHERE CODUTE = ?`;\n const result = (await Orm.query(\n this.accessiOptions.databaseOptions,\n query,\n [codiceUtente]\n ).then((results) => results.map(RestUtilities.convertKeysToCamelCase))) as {\n password: string;\n }[];\n\n if (result.length === 0 || typeof result[0].password !== \"string\") {\n return false;\n }\n\n const storedPassword = result[0].password;\n\n if (PasswordUtilities.isPasswordHash(storedPassword)) {\n return PasswordUtilities.verifyPassword(plainPassword, storedPassword);\n }\n\n const legacyEncryptedPassword = CryptUtilities.encrypt(\n plainPassword,\n this.accessiOptions.encryptionKey\n );\n\n if (PasswordUtilities.isLegacyPasswordHash(storedPassword)) {\n const isMigratedLegacyPasswordValid =\n PasswordUtilities.verifyLegacyEncryptedPassword(\n legacyEncryptedPassword,\n storedPassword\n );\n\n if (isMigratedLegacyPasswordValid) {\n await this.setPassword(codiceUtente, plainPassword);\n }\n\n return isMigratedLegacyPasswordValid;\n }\n\n const isLegacyPasswordValid = storedPassword === legacyEncryptedPassword;\n\n if (isLegacyPasswordValid) {\n await this.setPassword(codiceUtente, plainPassword);\n }\n\n return isLegacyPasswordValid;\n }\n\n async getAdminUser(): Promise<LoginResult> {\n return {\n utente: {\n codiceUtente: 6789,\n email: \"admin\",\n statoRegistrazione: StatoRegistrazione.CONF,\n cognome: \"Admin\",\n nome: \"Admin\",\n flagGdpr: true,\n avatar: \"/path/to/avatar.jpg\",\n flagDueFattori: false,\n codiceLingua: \"IT\",\n cellulare: \"+391234567890\",\n flagSuper: true,\n paginaDefault: \"/home\",\n roles: [],\n permissions: [],\n },\n filtri: null,\n userGrants: {\n abilitazioni: [],\n grants: [],\n ruoli: [],\n },\n };\n }\n\n getDemoUser(): LoginResult {\n return {\n utente: {\n codiceUtente: 12345,\n email: \"jdoe\",\n statoRegistrazione: StatoRegistrazione.CONF,\n cognome: \"Doe\",\n nome: \"John\",\n flagGdpr: true,\n avatar: \"/path/to/avatar.jpg\",\n flagDueFattori: false,\n codiceLingua: \"IT\",\n cellulare: \"+391234567890\",\n flagSuper: false,\n paginaDefault: \"/home\",\n roles: [],\n permissions: [],\n },\n filtri: null,\n userGrants: {\n abilitazioni: [],\n grants: [],\n ruoli: [],\n },\n };\n }\n\n public async confirmResetPassword(\n token: string,\n newPassword: string\n ): Promise<void> {\n try {\n if (typeof token !== \"string\" || token.trim() === \"\") {\n throw new Error(\"Token non valido.\");\n }\n\n if (\n typeof newPassword !== \"string\" ||\n newPassword.length < 8 ||\n newPassword.length > 100\n ) {\n throw new Error(\"La nuova password deve essere compresa tra 8 e 100 caratteri.\");\n }\n\n const secret = getAccessiJwtSecret(this.accessiOptions);\n const { codiceUtente, nonce } = verifyPasswordResetToken(token.trim(), secret);\n\n const result = (await Orm.query(\n this.accessiOptions.databaseOptions,\n \"SELECT CODUTE AS codice_utente, STAREG AS stato_registrazione FROM UTENTI WHERE CODUTE = ? AND KEYREG = ?\",\n [codiceUtente, nonce]\n ).then((rows) => rows.map(RestUtilities.convertKeysToCamelCase))) as {\n codiceUtente?: number;\n statoRegistrazione?: StatoRegistrazione | number;\n }[];\n\n if (result.length === 0) {\n throw new Error(\"Token non valido o gia usato.\");\n }\n\n const currentState = Number(result[0].statoRegistrazione);\n if (\n currentState === StatoRegistrazione.BLOCC ||\n currentState === StatoRegistrazione.DELETE\n ) {\n throw new Error(\"Utente non autorizzato a completare il reset password.\");\n }\n\n await Orm.query(\n this.accessiOptions.databaseOptions,\n \"UPDATE UTENTI SET KEYREG = NULL, STAREG = ? WHERE CODUTE = ?\",\n [StatoRegistrazione.CONF, codiceUtente]\n );\n\n await this.setPassword(codiceUtente, newPassword);\n } catch (error) {\n throw error;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AuthService.js","sourceRoot":"","sources":["../../../../src/accessi-module/Services/AuthService/AuthService.ts"],"names":[],"mappings":"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","sourcesContent":["import { Inject, Injectable } from \"@nestjs/common\";\r\nimport * as jwt from \"jsonwebtoken\";\r\nimport { Orm } from \"../../../Orm\";\r\nimport { CryptUtilities, PasswordUtilities, RestUtilities } from \"../../../Utilities\";\r\nimport { AccessiOptions } from \"../../AccessiModule\";\r\nimport { LoginRequest } from \"../../Dtos/LoginRequest\";\r\nimport { LoginResult } from \"../../Dtos/LoginResponse\";\r\nimport { StatoRegistrazione } from \"../../Dtos/StatoRegistrazione\";\r\nimport { UserService } from \"../UserService/UserService\";\r\nimport { PermissionService } from \"../PermissionService/PermissionService\";\r\nimport { FiltriService } from \"../FiltriService/FiltriService\";\r\nimport {\r\n buildAuthenticatedTokenPayload,\r\n isAuthenticatedUserEnabledForJwt,\r\n resolveCodiceUtenteFromTokenPayload,\r\n} from \"../../security/authenticatedToken\";\r\nimport {\n getAccessiJwtSecret,\n verifyPasswordResetToken,\n} from \"../../security/passwordResetToken\";\nimport { Logger } from \"../../../Logger\";\n\n@Injectable()\nexport class AuthService {\n private readonly logger = new Logger(AuthService.name);\n\n constructor(\r\n private userService: UserService,\r\n private permissionService: PermissionService,\r\n private filtriService: FiltriService,\r\n @Inject(\"ACCESSI_OPTIONS\") private readonly accessiOptions: AccessiOptions\r\n ) {}\r\n\r\n private async refreshPasswordExpiration(codiceUtente: number): Promise<void> {\r\n if (!this.accessiOptions.passwordExpiration) {\r\n return;\r\n }\r\n\r\n const configuredDays = Number(this.accessiOptions.passwordExpirationDays);\r\n const expirationDays =\r\n Number.isFinite(configuredDays) && configuredDays > 0\r\n ? Math.trunc(configuredDays)\r\n : 90;\r\n\r\n const query = `UPDATE UTENTI SET DATSCAPWD = DATEADD(${expirationDays} DAY TO CURRENT_TIMESTAMP) WHERE CODUTE = ?`;\r\n await Orm.execute(this.accessiOptions.databaseOptions, query, [codiceUtente]);\r\n }\r\n\r\n private isMockDemoUserEnabled(): boolean {\r\n if (!this.accessiOptions.mockDemoUser) {\r\n return false;\r\n }\r\n\r\n const nodeEnv = (process.env.NODE_ENV ?? \"production\").toLowerCase();\r\n return nodeEnv !== \"production\" || process.env.ACCESSI_ALLOW_MOCK_DEMO_USER === \"true\";\r\n }\r\n\r\n async login(request: LoginRequest): Promise<LoginResult> {\r\n const mockDemoUserEnabled = this.isMockDemoUserEnabled();\r\n\r\n if (\r\n mockDemoUserEnabled &&\r\n request.email.toLowerCase() === \"demo\"\r\n ) {\r\n return this.getDemoUser();\r\n }\r\n\r\n if (\r\n mockDemoUserEnabled &&\r\n request.email.toLowerCase() === \"admin\"\r\n ) {\r\n return this.getAdminUser();\r\n }\r\n\r\n const utente = await this.userService.getUserByEmail(\r\n request.email.toLowerCase()\r\n );\r\n if (!utente) throw new Error(\"Nome utente o password errata!\");\r\n\r\n switch (utente.statoRegistrazione) {\r\n case undefined:\r\n throw new Error(\r\n \"Struttura dati compromessa: Stato Registrazione inesistente.\"\r\n );\r\n case StatoRegistrazione.BLOCC:\r\n case StatoRegistrazione.DELETE:\r\n throw new Error(\"Utente non abilitato\");\r\n case StatoRegistrazione.INVIO:\r\n throw new Error(\"Rinnovo password necessario.\");\r\n }\r\n\r\n if (utente.statoRegistrazione !== StatoRegistrazione.CONF) {\r\n throw new Error(\r\n `Errore generico. Stato di registrazione non valido: ${utente.statoRegistrazione}.`\r\n );\r\n }\r\n\r\n const isPasswordValid = await this.verifyPassword(\r\n utente.codiceUtente,\r\n request.password\r\n );\r\n if (!isPasswordValid) throw new Error(\"Nome utente o password errata!\");\r\n\r\n if (\r\n this.accessiOptions.passwordExpiration &&\r\n this.accessiOptions.passwordExpiration == true\r\n ) {\r\n const today = new Date();\r\n const targetDate = new Date(utente.dataScadenzaPassword);\r\n\r\n if (today >= targetDate) {\r\n throw new Error(\"PASSWORD_EXPIRED\");\r\n }\r\n }\r\n\r\n const userGrants = await this.permissionService.getUserRolesAndGrants(\r\n utente.codiceUtente\r\n );\r\n\r\n const filtri = await this.filtriService.getFiltriUser(utente.codiceUtente);\r\n\r\n const updateLastAccessDateQuery =\r\n \"UPDATE UTENTI SET DATLASTLOGIN = CURRENT_TIMESTAMP WHERE CODUTE = ?\";\r\n await Orm.query(\r\n this.accessiOptions.databaseOptions,\r\n updateLastAccessDateQuery,\r\n [utente.codiceUtente]\r\n );\r\n\r\n const extensionFields = {};\r\n\r\n if (\r\n this.accessiOptions.extensionFieldsOptions &&\r\n this.accessiOptions.extensionFieldsOptions.length > 0\r\n ) {\r\n for (const ext of this.accessiOptions.extensionFieldsOptions) {\r\n const values = (\r\n await Orm.query(\r\n ext.databaseOptions,\r\n `SELECT ${ext.tableFields.join(\",\")} FROM ${ext.tableName} WHERE ${\r\n ext.tableJoinFieldName\r\n } = ?`,\r\n [utente.codiceUtente]\r\n )\r\n ).map(RestUtilities.convertKeysToCamelCase);\r\n\r\n extensionFields[ext.objectKey] = values;\r\n }\r\n }\r\n\r\n return { utente, filtri, userGrants, extensionFields };\r\n }\r\n\r\n public async getAuthenticatedTokenPayload(token: string): Promise<Record<string, unknown>> {\r\n if (typeof token !== \"string\" || token.trim() === \"\") {\r\n throw new Error(\"Token non fornito.\");\r\n }\r\n\r\n const secret = getAccessiJwtSecret(this.accessiOptions);\r\n const decoded = jwt.verify(token.trim(), secret);\r\n const codiceUtente = resolveCodiceUtenteFromTokenPayload(decoded);\r\n\r\n if (!codiceUtente) {\r\n throw new Error(\"Token non valido.\");\r\n }\r\n\r\n const currentUser = await this.userService.getAuthenticatedUserSnapshot(codiceUtente);\r\n if (!isAuthenticatedUserEnabledForJwt(currentUser)) {\r\n throw new Error(\"Token non valido o utente non autorizzato.\");\r\n }\r\n\r\n return buildAuthenticatedTokenPayload(decoded, currentUser);\r\n }\r\n\r\n public async setPassword(codiceUtente: number, nuovaPassword: string) {\r\n try {\r\n const query = `UPDATE OR INSERT INTO UTENTI_PWD (CODUTE, PWD) VALUES (?, ?)`;\r\n const hashedPassword = PasswordUtilities.hashPassword(nuovaPassword);\r\n\r\n const result = await Orm.execute(this.accessiOptions.databaseOptions, query, [\r\n codiceUtente,\r\n hashedPassword,\r\n ]);\r\n await this.refreshPasswordExpiration(codiceUtente);\r\n return result;\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n public async migrateLegacyEncryptedPasswords(): Promise<void> {\n const startedAt = performance.now();\n this.logger.info(\"Avvio migrazione password legacy accessi.\");\n const results = await Orm.query(\n this.accessiOptions.databaseOptions,\n \"SELECT CODUTE AS codice_utente, PWD AS password FROM UTENTI_PWD WHERE PWD IS NOT NULL\",\n []\n );\n\r\n const rows = results.map(RestUtilities.convertKeysToCamelCase) as {\r\n codiceUtente?: number;\n password?: string;\n }[];\n let migratedCount = 0;\n let skippedCount = 0;\n\n for (const row of rows) {\n const codiceUtente = Number(row.codiceUtente);\n const storedPassword = typeof row.password === \"string\" ? row.password : null;\n\r\n if (\r\n !codiceUtente ||\r\n !storedPassword ||\n PasswordUtilities.isPasswordHash(storedPassword) ||\n PasswordUtilities.isLegacyPasswordHash(storedPassword)\n ) {\n skippedCount += 1;\n continue;\n }\n\r\n const protectedLegacyPassword =\r\n PasswordUtilities.hashLegacyEncryptedPassword(storedPassword);\r\n\r\n await Orm.execute(\n this.accessiOptions.databaseOptions,\n \"UPDATE UTENTI_PWD SET PWD = ? WHERE CODUTE = ? AND PWD = ?\",\n [protectedLegacyPassword, codiceUtente, storedPassword]\n );\n migratedCount += 1;\n }\n\n this.logger.info(\n `Migrazione password legacy accessi completata. Letti=${rows.length}, migrati=${migratedCount}, ignorati=${skippedCount}, durataMs=${(performance.now() - startedAt).toFixed(2)}`\n );\n }\n\r\n async verifyPassword(\r\n codiceUtente: number,\r\n plainPassword: string\r\n ): Promise<boolean> {\r\n const query = `SELECT PWD AS password FROM UTENTI_PWD WHERE CODUTE = ?`;\r\n const result = (await Orm.query(\r\n this.accessiOptions.databaseOptions,\r\n query,\r\n [codiceUtente]\r\n ).then((results) => results.map(RestUtilities.convertKeysToCamelCase))) as {\r\n password: string;\r\n }[];\r\n\r\n if (result.length === 0 || typeof result[0].password !== \"string\") {\r\n return false;\r\n }\r\n\r\n const storedPassword = result[0].password;\r\n\r\n if (PasswordUtilities.isPasswordHash(storedPassword)) {\r\n return PasswordUtilities.verifyPassword(plainPassword, storedPassword);\r\n }\r\n\r\n const legacyEncryptedPassword = CryptUtilities.encrypt(\r\n plainPassword,\r\n this.accessiOptions.encryptionKey\r\n );\r\n\r\n if (PasswordUtilities.isLegacyPasswordHash(storedPassword)) {\r\n const isMigratedLegacyPasswordValid =\r\n PasswordUtilities.verifyLegacyEncryptedPassword(\r\n legacyEncryptedPassword,\r\n storedPassword\r\n );\r\n\r\n if (isMigratedLegacyPasswordValid) {\r\n await this.setPassword(codiceUtente, plainPassword);\r\n }\r\n\r\n return isMigratedLegacyPasswordValid;\r\n }\r\n\r\n const isLegacyPasswordValid = storedPassword === legacyEncryptedPassword;\r\n\r\n if (isLegacyPasswordValid) {\r\n await this.setPassword(codiceUtente, plainPassword);\r\n }\r\n\r\n return isLegacyPasswordValid;\r\n }\r\n\r\n async getAdminUser(): Promise<LoginResult> {\r\n return {\r\n utente: {\r\n codiceUtente: 6789,\r\n email: \"admin\",\r\n statoRegistrazione: StatoRegistrazione.CONF,\r\n cognome: \"Admin\",\r\n nome: \"Admin\",\r\n flagGdpr: true,\r\n avatar: \"/path/to/avatar.jpg\",\r\n flagDueFattori: false,\r\n codiceLingua: \"IT\",\r\n cellulare: \"+391234567890\",\r\n flagSuper: true,\r\n paginaDefault: \"/home\",\r\n roles: [],\r\n permissions: [],\r\n },\r\n filtri: null,\r\n userGrants: {\r\n abilitazioni: [],\r\n grants: [],\r\n ruoli: [],\r\n },\r\n };\r\n }\r\n\r\n getDemoUser(): LoginResult {\r\n return {\r\n utente: {\r\n codiceUtente: 12345,\r\n email: \"jdoe\",\r\n statoRegistrazione: StatoRegistrazione.CONF,\r\n cognome: \"Doe\",\r\n nome: \"John\",\r\n flagGdpr: true,\r\n avatar: \"/path/to/avatar.jpg\",\r\n flagDueFattori: false,\r\n codiceLingua: \"IT\",\r\n cellulare: \"+391234567890\",\r\n flagSuper: false,\r\n paginaDefault: \"/home\",\r\n roles: [],\r\n permissions: [],\r\n },\r\n filtri: null,\r\n userGrants: {\r\n abilitazioni: [],\r\n grants: [],\r\n ruoli: [],\r\n },\r\n };\r\n }\r\n\r\n public async confirmResetPassword(\r\n token: string,\r\n newPassword: string\r\n ): Promise<void> {\r\n try {\r\n if (typeof token !== \"string\" || token.trim() === \"\") {\r\n throw new Error(\"Token non valido.\");\r\n }\r\n\r\n if (\r\n typeof newPassword !== \"string\" ||\r\n newPassword.length < 8 ||\r\n newPassword.length > 100\r\n ) {\r\n throw new Error(\"La nuova password deve essere compresa tra 8 e 100 caratteri.\");\r\n }\r\n\r\n const secret = getAccessiJwtSecret(this.accessiOptions);\r\n const { codiceUtente, nonce } = verifyPasswordResetToken(token.trim(), secret);\r\n\r\n const result = (await Orm.query(\r\n this.accessiOptions.databaseOptions,\r\n \"SELECT CODUTE AS codice_utente, STAREG AS stato_registrazione FROM UTENTI WHERE CODUTE = ? AND KEYREG = ?\",\r\n [codiceUtente, nonce]\r\n ).then((rows) => rows.map(RestUtilities.convertKeysToCamelCase))) as {\r\n codiceUtente?: number;\r\n statoRegistrazione?: StatoRegistrazione | number;\r\n }[];\r\n\r\n if (result.length === 0) {\r\n throw new Error(\"Token non valido o gia usato.\");\r\n }\r\n\r\n const currentState = Number(result[0].statoRegistrazione);\r\n if (\r\n currentState === StatoRegistrazione.BLOCC ||\r\n currentState === StatoRegistrazione.DELETE\r\n ) {\r\n throw new Error(\"Utente non autorizzato a completare il reset password.\");\r\n }\r\n\r\n await Orm.query(\r\n this.accessiOptions.databaseOptions,\r\n \"UPDATE UTENTI SET KEYREG = NULL, STAREG = ? WHERE CODUTE = ?\",\r\n [StatoRegistrazione.CONF, codiceUtente]\r\n );\r\n\r\n await this.setPassword(codiceUtente, newPassword);\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfiguratorService.js","sourceRoot":"","sources":["../../../../src/accessi-module/Services/ConfiguratorService/ConfiguratorService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,gDAA6C;AAE7C,sCAAmC;AAI5B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAC8C,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAEzE,CAAC;IAES,cAAc,CAAC,UAAkB,EAAE,OAAgB;;YAC9D,MAAM,KAAK,GAAG,iDAAiD,CAAC;YAChE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,SAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,YAAY,EAAC,UAAU,CAAC,CAAC,CAAA;QAC1F,CAAC;KAAA;IAEY,eAAe,CAAC,YAAoB,EAAE,OAAgB;;YACjE,MAAM,KAAK,GAAG,qDAAqD,CAAA;YACnE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,SAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;QAC7F,CAAC;KAAA;CAKF,CAAA;AArBY,kDAAmB;8BAAnB,mBAAmB;IAF/B,mBAAQ;IACR,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;;GAFjB,mBAAmB,CAqB/B","sourcesContent":["import { Inject, Injectable } from '@nestjs/common';\nimport { autobind } from '../../../autobind';\nimport { AccessiOptions } from '../../AccessiModule';\nimport { Orm } from '../../../Orm';\n\n@autobind\n@Injectable()\nexport class ConfiguratorService {\n constructor(\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\n\n ) {}\n\n public async setMenuEnabled(codiceMenu: string, enabled: boolean): Promise<void> {\n const query = `UPDATE MENU SET FLGENABLED = ? WHERE CODMNU = ?`;\n const enabledValue = enabled ? 1 : 0\n await Orm.execute(this.accessiOptions.databaseOptions, query, [enabledValue,codiceMenu])\n }\n\n public async setGroupEnabled(codiceGruppo: string, enabled: boolean): Promise<void> {\n const query = `UPDATE MENU_GRP SET FLGENABLED = ? WHERE CODGRP = ?`\n const enabledValue = enabled ? 1 : 0\n await Orm.execute(this.accessiOptions.databaseOptions, query, [enabledValue, codiceGruppo])\n }\n\n\n\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ConfiguratorService.js","sourceRoot":"","sources":["../../../../src/accessi-module/Services/ConfiguratorService/ConfiguratorService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,gDAA6C;AAE7C,sCAAmC;AAI5B,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAC8C,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAEzE,CAAC;IAES,cAAc,CAAC,UAAkB,EAAE,OAAgB;;YAC9D,MAAM,KAAK,GAAG,iDAAiD,CAAC;YAChE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,SAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,YAAY,EAAC,UAAU,CAAC,CAAC,CAAA;QAC1F,CAAC;KAAA;IAEY,eAAe,CAAC,YAAoB,EAAE,OAAgB;;YACjE,MAAM,KAAK,GAAG,qDAAqD,CAAA;YACnE,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,MAAM,SAAG,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;QAC7F,CAAC;KAAA;CAKF,CAAA;AArBY,kDAAmB;8BAAnB,mBAAmB;IAF/B,mBAAQ;IACR,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;;GAFjB,mBAAmB,CAqB/B","sourcesContent":["import { Inject, Injectable } from '@nestjs/common';\r\nimport { autobind } from '../../../autobind';\r\nimport { AccessiOptions } from '../../AccessiModule';\r\nimport { Orm } from '../../../Orm';\r\n\r\n@autobind\r\n@Injectable()\r\nexport class ConfiguratorService {\r\n constructor(\r\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\r\n\r\n ) {}\r\n\r\n public async setMenuEnabled(codiceMenu: string, enabled: boolean): Promise<void> {\r\n const query = `UPDATE MENU SET FLGENABLED = ? WHERE CODMNU = ?`;\r\n const enabledValue = enabled ? 1 : 0\r\n await Orm.execute(this.accessiOptions.databaseOptions, query, [enabledValue,codiceMenu])\r\n }\r\n\r\n public async setGroupEnabled(codiceGruppo: string, enabled: boolean): Promise<void> {\r\n const query = `UPDATE MENU_GRP SET FLGENABLED = ? WHERE CODGRP = ?`\r\n const enabledValue = enabled ? 1 : 0\r\n await Orm.execute(this.accessiOptions.databaseOptions, query, [enabledValue, codiceGruppo])\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n"]}
|
|
@@ -84,17 +84,17 @@ let EmailService = class EmailService {
|
|
|
84
84
|
sPhrase = htmlMail.replace('#link_conferma_password_url', resetUrl);
|
|
85
85
|
}
|
|
86
86
|
else {
|
|
87
|
-
sPhrase = ` Gentile utente,<br>
|
|
88
|
-
abbiamo ricevuto la tua richiesta.<br><br>
|
|
89
|
-
|
|
90
|
-
Per completare l'operazione, clicca sul link qui sotto:<br>
|
|
91
|
-
<a href="${resetUrl}">completa la procedura</a><br><br>
|
|
92
|
-
|
|
93
|
-
Se hai richiesto la registrazione al servizio o la reimpostazione della password, questo passaggio è necessario.<br>
|
|
94
|
-
Se non sei stato tu a effettuare questa richiesta, puoi ignorare questo messaggio in tutta sicurezza.<br><br>
|
|
95
|
-
|
|
96
|
-
Questa è una comunicazione automatica, ti preghiamo di non rispondere a questa email.<br><br>
|
|
97
|
-
|
|
87
|
+
sPhrase = ` Gentile utente,<br>
|
|
88
|
+
abbiamo ricevuto la tua richiesta.<br><br>
|
|
89
|
+
|
|
90
|
+
Per completare l'operazione, clicca sul link qui sotto:<br>
|
|
91
|
+
<a href="${resetUrl}">completa la procedura</a><br><br>
|
|
92
|
+
|
|
93
|
+
Se hai richiesto la registrazione al servizio o la reimpostazione della password, questo passaggio è necessario.<br>
|
|
94
|
+
Se non sei stato tu a effettuare questa richiesta, puoi ignorare questo messaggio in tutta sicurezza.<br><br>
|
|
95
|
+
|
|
96
|
+
Questa è una comunicazione automatica, ti preghiamo di non rispondere a questa email.<br><br>
|
|
97
|
+
|
|
98
98
|
Grazie.<br>`;
|
|
99
99
|
}
|
|
100
100
|
const html = this.GetHtmlMail(sPhrase);
|