emilsoftware-utilities 1.8.0-dev.2 → 2.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.MD +38 -34
  2. package/dist/ContractGenerator.js.map +1 -1
  3. package/dist/DatabaseUpdater.js +24 -24
  4. package/dist/DatabaseUpdater.js.map +1 -1
  5. package/dist/EmilsoftwareModule.js.map +1 -1
  6. package/dist/ExecutionTimeLogger.js.map +1 -1
  7. package/dist/Logger.js.map +1 -1
  8. package/dist/Orm.js.map +1 -1
  9. package/dist/RoutesLoggerMiddleware.js.map +1 -1
  10. package/dist/Utilities.d.ts +18 -0
  11. package/dist/Utilities.js +90 -1
  12. package/dist/Utilities.js.map +1 -1
  13. package/dist/accessi-module/AccessiModule.d.ts +15 -0
  14. package/dist/accessi-module/AccessiModule.js.map +1 -1
  15. package/dist/accessi-module/Controllers/AuthController.d.ts +4 -4
  16. package/dist/accessi-module/Controllers/AuthController.js +36 -21
  17. package/dist/accessi-module/Controllers/AuthController.js.map +1 -1
  18. package/dist/accessi-module/Controllers/ConfiguratorController.js.map +1 -1
  19. package/dist/accessi-module/Controllers/EmailController.d.ts +3 -3
  20. package/dist/accessi-module/Controllers/EmailController.js +15 -15
  21. package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
  22. package/dist/accessi-module/Controllers/FiltriController.d.ts +3 -3
  23. package/dist/accessi-module/Controllers/FiltriController.js +32 -15
  24. package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
  25. package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -17
  26. package/dist/accessi-module/Controllers/PermissionController.js +140 -124
  27. package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
  28. package/dist/accessi-module/Controllers/UserController.d.ts +12 -11
  29. package/dist/accessi-module/Controllers/UserController.js +112 -79
  30. package/dist/accessi-module/Controllers/UserController.js.map +1 -1
  31. package/dist/accessi-module/Dtos/Abilitazione.js.map +1 -1
  32. package/dist/accessi-module/Dtos/AbilitazioneMenu.js.map +1 -1
  33. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +6 -0
  34. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
  35. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +6 -0
  36. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js.map +1 -1
  37. package/dist/accessi-module/Dtos/BaseResponse.js.map +1 -1
  38. package/dist/accessi-module/Dtos/FiltriUtente.js.map +1 -1
  39. package/dist/accessi-module/Dtos/GetGroupsWithMenusResponse.js.map +1 -1
  40. package/dist/accessi-module/Dtos/GetMenusResponse.js.map +1 -1
  41. package/dist/accessi-module/Dtos/GetRolesResponse.js.map +1 -1
  42. package/dist/accessi-module/Dtos/GetUsersResponse.js.map +1 -1
  43. package/dist/accessi-module/Dtos/LoginRequest.js.map +1 -1
  44. package/dist/accessi-module/Dtos/LoginResponse.js.map +1 -1
  45. package/dist/accessi-module/Dtos/Permission.js +5 -0
  46. package/dist/accessi-module/Dtos/Permission.js.map +1 -1
  47. package/dist/accessi-module/Dtos/RegisterRequest.js +37 -1
  48. package/dist/accessi-module/Dtos/RegisterRequest.js.map +1 -1
  49. package/dist/accessi-module/Dtos/RegisterResponse.js.map +1 -1
  50. package/dist/accessi-module/Dtos/Role.js +13 -2
  51. package/dist/accessi-module/Dtos/Role.js.map +1 -1
  52. package/dist/accessi-module/Dtos/RuoliMenu.js.map +1 -1
  53. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js +6 -0
  54. package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
  55. package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
  56. package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
  57. package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
  58. package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
  59. package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
  60. package/dist/accessi-module/Dtos/UserDto.js +59 -1
  61. package/dist/accessi-module/Dtos/UserDto.js.map +1 -1
  62. package/dist/accessi-module/Dtos/UserGrantsDto.js.map +1 -1
  63. package/dist/accessi-module/Dtos/index.js.map +1 -1
  64. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +8 -3
  65. package/dist/accessi-module/Services/AuthService/AuthService.js +159 -27
  66. package/dist/accessi-module/Services/AuthService/AuthService.js.map +1 -1
  67. package/dist/accessi-module/Services/ConfiguratorService/ConfiguratorService.js.map +1 -1
  68. package/dist/accessi-module/Services/EmailService/EmailService.js +44 -21
  69. package/dist/accessi-module/Services/EmailService/EmailService.js.map +1 -1
  70. package/dist/accessi-module/Services/FiltriService/FiltriService.js +1 -1
  71. package/dist/accessi-module/Services/FiltriService/FiltriService.js.map +1 -1
  72. package/dist/accessi-module/Services/PermissionService/PermissionService.js +87 -87
  73. package/dist/accessi-module/Services/PermissionService/PermissionService.js.map +1 -1
  74. package/dist/accessi-module/Services/UserService/UserService.d.ts +15 -6
  75. package/dist/accessi-module/Services/UserService/UserService.js +165 -139
  76. package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
  77. package/dist/accessi-module/Views/reset-password.html +213 -195
  78. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js +25 -16
  79. package/dist/accessi-module/database-updates/AccessiDatabaseUpdater.js.map +1 -1
  80. package/dist/accessi-module/database-updates/runAccessiDbUpdate.js.map +1 -1
  81. package/dist/accessi-module/index.js +33 -4
  82. package/dist/accessi-module/index.js.map +1 -1
  83. package/dist/accessi-module/jwt/jwt.strategy.d.ts +4 -2
  84. package/dist/accessi-module/jwt/jwt.strategy.js +47 -19
  85. package/dist/accessi-module/jwt/jwt.strategy.js.map +1 -1
  86. package/dist/accessi-module/middleware/accessiRequirements.js.map +1 -1
  87. package/dist/accessi-module/middleware/authenticateGen.d.ts +3 -1
  88. package/dist/accessi-module/middleware/authenticateGen.js +17 -11
  89. package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
  90. package/dist/accessi-module/security/accessControl.d.ts +17 -0
  91. package/dist/accessi-module/security/accessControl.js +44 -0
  92. package/dist/accessi-module/security/accessControl.js.map +1 -0
  93. package/dist/accessi-module/security/authenticatedToken.d.ts +11 -0
  94. package/dist/accessi-module/security/authenticatedToken.js +39 -0
  95. package/dist/accessi-module/security/authenticatedToken.js.map +1 -0
  96. package/dist/accessi-module/security/passwordResetToken.d.ts +8 -0
  97. package/dist/accessi-module/security/passwordResetToken.js +73 -0
  98. package/dist/accessi-module/security/passwordResetToken.js.map +1 -0
  99. package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -0
  100. package/dist/accessi-module/security/publicAuthRateLimit.js +105 -0
  101. package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -0
  102. package/dist/allegati-module/AllegatiModule.js.map +1 -1
  103. package/dist/allegati-module/Controllers/AllegatiController.js.map +1 -1
  104. package/dist/allegati-module/Dtos/AllegatoDto.js.map +1 -1
  105. package/dist/allegati-module/Dtos/BaseResponse.js.map +1 -1
  106. package/dist/allegati-module/Dtos/UploadSingleFileRequest.js.map +1 -1
  107. package/dist/allegati-module/Dtos/index.js.map +1 -1
  108. package/dist/allegati-module/Dtos/responses/DownloadAllegatoResponseDto.js.map +1 -1
  109. package/dist/allegati-module/Dtos/responses/GetListResponse.js.map +1 -1
  110. package/dist/allegati-module/Dtos/responses/UploadAllegatoResponseDto.js.map +1 -1
  111. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js +49 -49
  112. package/dist/allegati-module/Services/AllegatiService/AllegatiService.js.map +1 -1
  113. package/dist/allegati-module/index.js.map +1 -1
  114. package/dist/autobind.js.map +1 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/initEmilsoftwareModule.js.map +1 -1
  117. package/dist/swagger/SwaggerConfig.js.map +1 -1
  118. package/package.json +83 -83
  119. package/dist/emilsoftware-utilities-1.8.0-dev.2.tgz +0 -0
@@ -26,36 +26,24 @@ exports.PermissionController = void 0;
26
26
  const common_1 = require("@nestjs/common");
27
27
  const swagger_1 = require("@nestjs/swagger");
28
28
  const Utilities_1 = require("../../Utilities");
29
- const PermissionService_1 = require("../Services/PermissionService/PermissionService");
30
- const Role_1 = require("../Dtos/Role");
31
- const AssignRolesToUserRequest_1 = require("../Dtos/AssignRolesToUserRequest");
32
29
  const AssignPermissionsToUserRequest_1 = require("../Dtos/AssignPermissionsToUserRequest");
30
+ const AssignRolesToUserRequest_1 = require("../Dtos/AssignRolesToUserRequest");
31
+ const GetGroupsWithMenusResponse_1 = require("../Dtos/GetGroupsWithMenusResponse");
33
32
  const GetMenusResponse_1 = require("../Dtos/GetMenusResponse");
34
33
  const GetRolesResponse_1 = require("../Dtos/GetRolesResponse");
34
+ const Role_1 = require("../Dtos/Role");
35
35
  const UserGrantsDto_1 = require("../Dtos/UserGrantsDto");
36
- const GetGroupsWithMenusResponse_1 = require("../Dtos/GetGroupsWithMenusResponse");
36
+ const PermissionService_1 = require("../Services/PermissionService/PermissionService");
37
+ const jwt_strategy_1 = require("../jwt/jwt.strategy");
38
+ const accessControl_1 = require("../security/accessControl");
37
39
  let PermissionController = PermissionController_1 = class PermissionController {
38
- constructor(permissionService, options) {
40
+ constructor(permissionService) {
39
41
  this.permissionService = permissionService;
40
- this.options = options;
41
42
  }
42
- /*
43
- @ApiOperation({ summary: 'Resetta le abilitazioni di un utente', operationId: "resetAbilitazioni" })
44
- @Post('reset-abilitazioni')
45
- async resetAbilitazioni(@Body('codiceUtente') codiceUtente: number, @Res() res: Response) {
46
- try {
47
- await this.permissionService.resetAbilitazioni(codiceUtente);
48
- RestUtilities.sendOKMessage(res, `Le abilitazioni dell'utente ${codiceUtente} sono state resettate con successo.`);
49
- } catch (error) {
50
- RestUtilities.sendErrorMessage(res, error, PermissionController.name);
51
- throw error;
52
- }
53
- }
54
- */
55
- /**
56
- * @description Endpoint per ottenere tutti i ruoli con i relativi menù.
57
- * @returns Un array di ruoli con menù associati.
58
- */
43
+ sendControllerError(res, error) {
44
+ const status = error instanceof common_1.HttpException ? error.getStatus() : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
45
+ return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name, status);
46
+ }
59
47
  getRoles(res) {
60
48
  return __awaiter(this, void 0, void 0, function* () {
61
49
  try {
@@ -63,87 +51,88 @@ let PermissionController = PermissionController_1 = class PermissionController {
63
51
  Utilities_1.RestUtilities.sendBaseResponse(res, roles);
64
52
  }
65
53
  catch (error) {
66
- Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
54
+ this.sendControllerError(res, error);
67
55
  throw error;
68
56
  }
69
57
  });
70
58
  }
71
- updateRole(codiceRuolo, role, res) {
59
+ updateRole(request, codiceRuolo, role, res) {
72
60
  return __awaiter(this, void 0, void 0, function* () {
73
61
  try {
62
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono modificare i ruoli.');
74
63
  if (Number.isNaN(codiceRuolo))
75
- throw new Error("Il codice del ruolo è obbligatorio.");
64
+ throw new Error('Il codice del ruolo e obbligatorio.');
76
65
  if (!role.descrizioneRuolo)
77
- throw new Error("La descrizione del ruolo non può essere vuota.");
78
- if (!role.menu || role.menu.length === 0)
79
- throw new Error("Il ruolo deve avere almeno un menù.");
66
+ throw new Error('La descrizione del ruolo non puo essere vuota.');
67
+ if (!role.menu || role.menu.length === 0) {
68
+ throw new Error('Il ruolo deve avere almeno un menu.');
69
+ }
80
70
  yield this.permissionService.updateOrInsertRole(role, codiceRuolo);
81
- return Utilities_1.RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} è stato aggiornato con successo.`);
71
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} e' stato aggiornato con successo.`);
82
72
  }
83
73
  catch (error) {
84
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
74
+ return this.sendControllerError(res, error);
85
75
  }
86
76
  });
87
77
  }
88
- createRole(res, role) {
78
+ createRole(request, res, role) {
89
79
  return __awaiter(this, void 0, void 0, function* () {
90
80
  try {
81
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono creare ruoli.');
91
82
  if (!role)
92
- throw new Error("Il ruolo non può essere vuoto.");
83
+ throw new Error('Il ruolo non puo essere vuoto.');
93
84
  if (!role.descrizioneRuolo)
94
- throw new Error("La descrizione del ruolo non può essere vuota.");
95
- if (!role.menu || role.menu.length === 0)
96
- throw new Error("Il ruolo deve avere almeno un menù.");
85
+ throw new Error('La descrizione del ruolo non puo essere vuota.');
86
+ if (!role.menu || role.menu.length === 0) {
87
+ throw new Error('Il ruolo deve avere almeno un menu.');
88
+ }
97
89
  yield this.permissionService.updateOrInsertRole(role);
98
- return Utilities_1.RestUtilities.sendOKMessage(res, "Il ruolo è stato creato con successo.");
90
+ return Utilities_1.RestUtilities.sendOKMessage(res, 'Il ruolo e stato creato con successo.');
99
91
  }
100
92
  catch (error) {
101
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
93
+ return this.sendControllerError(res, error);
102
94
  }
103
95
  });
104
96
  }
105
- assignRolesToUser(res, codiceUtente, assignRolesRequest) {
97
+ assignRolesToUser(request, res, codiceUtente, assignRolesRequest) {
106
98
  return __awaiter(this, void 0, void 0, function* () {
107
99
  try {
108
- if (!codiceUtente)
109
- throw new Error("Il codice utente è obbligatorio.");
100
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono assegnare ruoli agli utenti.');
110
101
  if (!assignRolesRequest.roles || assignRolesRequest.roles.length === 0) {
111
- throw new Error("È necessario fornire almeno un ruolo.");
102
+ throw new Error('E necessario fornire almeno un ruolo.');
112
103
  }
113
104
  yield this.permissionService.assignRolesToUser(codiceUtente, assignRolesRequest.roles);
114
105
  return Utilities_1.RestUtilities.sendOKMessage(res, `I ruoli ${assignRolesRequest.roles.join(', ')} sono stati assegnati all'utente ${codiceUtente}.`);
115
106
  }
116
107
  catch (error) {
117
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
108
+ return this.sendControllerError(res, error);
118
109
  }
119
110
  });
120
111
  }
121
- assignPermissionsToUser(res, codiceUtente, assignPermissionsRequest) {
112
+ assignPermissionsToUser(request, res, codiceUtente, assignPermissionsRequest) {
122
113
  return __awaiter(this, void 0, void 0, function* () {
123
114
  try {
124
- if (!codiceUtente)
125
- throw new Error("Il codice utente è obbligatorio.");
115
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono assegnare permessi agli utenti.');
126
116
  if (!assignPermissionsRequest.permissions || assignPermissionsRequest.permissions.length === 0) {
127
- throw new Error("È necessario fornire almeno un'abilitazione.");
117
+ throw new Error('E necessario fornire almeno una abilitazione.');
128
118
  }
129
119
  yield this.permissionService.assignPermissionsToUser(codiceUtente, assignPermissionsRequest.permissions);
130
120
  return Utilities_1.RestUtilities.sendOKMessage(res, `Le abilitazioni sono state assegnate all'utente ${codiceUtente}.`);
131
121
  }
132
122
  catch (error) {
133
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
123
+ return this.sendControllerError(res, error);
134
124
  }
135
125
  });
136
126
  }
137
- deleteRole(codiceRuolo, res) {
127
+ deleteRole(request, codiceRuolo, res) {
138
128
  return __awaiter(this, void 0, void 0, function* () {
139
129
  try {
140
- if (Number.isNaN(codiceRuolo))
141
- throw new Error("Il codice del ruolo è obbligatorio.");
130
+ (0, accessControl_1.ensureSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), 'Solo gli amministratori possono eliminare ruoli.');
142
131
  yield this.permissionService.deleteRole(codiceRuolo);
143
- return Utilities_1.RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} è stato eliminato con successo.`);
132
+ return Utilities_1.RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} e' stato eliminato con successo.`);
144
133
  }
145
134
  catch (error) {
146
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
135
+ return this.sendControllerError(res, error);
147
136
  }
148
137
  });
149
138
  }
@@ -154,7 +143,7 @@ let PermissionController = PermissionController_1 = class PermissionController {
154
143
  return Utilities_1.RestUtilities.sendBaseResponse(res, menus);
155
144
  }
156
145
  catch (error) {
157
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
146
+ return this.sendControllerError(res, error);
158
147
  }
159
148
  });
160
149
  }
@@ -168,29 +157,37 @@ let PermissionController = PermissionController_1 = class PermissionController {
168
157
  return Utilities_1.RestUtilities.sendBaseResponse(res, menus);
169
158
  }
170
159
  catch (error) {
171
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
160
+ return this.sendControllerError(res, error);
172
161
  }
173
162
  });
174
163
  }
175
- getUserRolesAndGrants(codiceUtente, res) {
164
+ getUserRolesAndGrants(request, codiceUtente, res) {
176
165
  return __awaiter(this, void 0, void 0, function* () {
177
166
  try {
167
+ (0, accessControl_1.ensureSelfOrSuperUser)((0, accessControl_1.getAuthenticatedAccessiUser)(request), codiceUtente, 'Puoi consultare solo i tuoi grant, salvo privilegi amministrativi.');
178
168
  const menus = yield this.permissionService.getUserRolesAndGrants(codiceUtente);
179
169
  return Utilities_1.RestUtilities.sendBaseResponse(res, menus);
180
170
  }
181
171
  catch (error) {
182
- return Utilities_1.RestUtilities.sendErrorMessage(res, error, PermissionController_1.name);
172
+ return this.sendControllerError(res, error);
183
173
  }
184
174
  });
185
175
  }
186
176
  };
187
177
  exports.PermissionController = PermissionController;
188
178
  __decorate([
189
- (0, swagger_1.ApiOperation)({ summary: 'Ritorna i ruoli disponibili con i relativi menù', operationId: "getRoles", description: 'Recupera tutti i ruoli presenti nel sistema con le relative voci di menu accessibili.' }),
190
- (0, swagger_1.ApiOkResponse)({ description: 'Elenco dei ruoli con i rispettivi menù', type: GetRolesResponse_1.GetRolesResponse }),
179
+ (0, swagger_1.ApiOperation)({
180
+ summary: 'Ritorna i ruoli disponibili con i relativi menu',
181
+ operationId: 'getRoles',
182
+ description: 'Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.',
183
+ }),
184
+ (0, swagger_1.ApiOkResponse)({ description: 'Elenco dei ruoli con i rispettivi menu', type: GetRolesResponse_1.GetRolesResponse }),
191
185
  (0, swagger_1.ApiInternalServerErrorResponse)({ description: 'Errore interno del server' }),
192
- (0, swagger_1.ApiResponse)({ status: common_1.HttpStatus.OK, description: 'Lista dei ruoli con i menù restituita con successo.' }),
193
- (0, swagger_1.ApiResponse)({ status: common_1.HttpStatus.INTERNAL_SERVER_ERROR, description: 'Errore interno del server durante il recupero dei ruoli.' }),
186
+ (0, swagger_1.ApiResponse)({ status: common_1.HttpStatus.OK, description: 'Lista dei ruoli restituita con successo.' }),
187
+ (0, swagger_1.ApiResponse)({
188
+ status: common_1.HttpStatus.INTERNAL_SERVER_ERROR,
189
+ description: 'Errore interno del server durante il recupero dei ruoli.',
190
+ }),
194
191
  (0, common_1.Get)('roles'),
195
192
  __param(0, (0, common_1.Res)()),
196
193
  __metadata("design:type", Function),
@@ -198,116 +195,124 @@ __decorate([
198
195
  __metadata("design:returntype", Promise)
199
196
  ], PermissionController.prototype, "getRoles", null);
200
197
  __decorate([
201
- (0, swagger_1.ApiOperation)({ summary: 'Aggiorna un ruolo esistente', operationId: "updateRole" }),
198
+ (0, swagger_1.ApiOperation)({ summary: 'Aggiorna un ruolo esistente', operationId: 'updateRole' }),
202
199
  (0, swagger_1.ApiParam)({
203
200
  name: 'codiceRuolo',
204
- description: "Codice identificativo del ruolo da aggiornare",
201
+ description: 'Codice identificativo del ruolo da aggiornare',
205
202
  required: true,
206
203
  example: 101,
207
- type: Number
204
+ type: Number,
208
205
  }),
209
206
  (0, swagger_1.ApiBody)({
210
- description: "Dati aggiornati del ruolo (escluso il codice ruolo, che è nel path)",
211
- type: Role_1.Role
207
+ description: 'Dati aggiornati del ruolo',
208
+ type: Role_1.Role,
212
209
  }),
213
- (0, swagger_1.ApiResponse)({ status: 200, description: "Il ruolo è stato aggiornato con successo" }),
214
- (0, swagger_1.ApiResponse)({ status: 400, description: "Errore di validazione nei dati inviati" }),
215
- (0, swagger_1.ApiResponse)({ status: 500, description: "Errore interno del server" }),
210
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Il ruolo e stato aggiornato con successo' }),
211
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Errore di validazione nei dati inviati' }),
212
+ (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
216
213
  (0, common_1.Put)('update-role/:codiceRuolo'),
217
- __param(0, (0, common_1.Param)('codiceRuolo', common_1.ParseIntPipe)),
218
- __param(1, (0, common_1.Body)()),
219
- __param(2, (0, common_1.Res)()),
214
+ __param(0, (0, common_1.Req)()),
215
+ __param(1, (0, common_1.Param)('codiceRuolo', common_1.ParseIntPipe)),
216
+ __param(2, (0, common_1.Body)()),
217
+ __param(3, (0, common_1.Res)()),
220
218
  __metadata("design:type", Function),
221
- __metadata("design:paramtypes", [Number, Role_1.Role, Object]),
219
+ __metadata("design:paramtypes", [Object, Number, Role_1.Role, Object]),
222
220
  __metadata("design:returntype", Promise)
223
221
  ], PermissionController.prototype, "updateRole", null);
224
222
  __decorate([
225
- (0, swagger_1.ApiOperation)({ summary: 'Crea un nuovo ruolo', operationId: "createRole" }),
226
- (0, swagger_1.ApiResponse)({ status: 201, description: 'Il ruolo è stato creato con successo' }),
223
+ (0, swagger_1.ApiOperation)({ summary: 'Crea un nuovo ruolo', operationId: 'createRole' }),
224
+ (0, swagger_1.ApiResponse)({ status: 201, description: 'Il ruolo e stato creato con successo' }),
227
225
  (0, swagger_1.ApiResponse)({ status: 400, description: 'Errore di validazione nei dati inviati' }),
228
226
  (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
229
227
  (0, swagger_1.ApiBody)({
230
228
  description: 'Dati del nuovo ruolo',
231
229
  required: true,
232
- type: Role_1.Role
230
+ type: Role_1.Role,
233
231
  }),
234
232
  (0, common_1.Post)('create-role'),
235
- __param(0, (0, common_1.Res)()),
236
- __param(1, (0, common_1.Body)()),
233
+ __param(0, (0, common_1.Req)()),
234
+ __param(1, (0, common_1.Res)()),
235
+ __param(2, (0, common_1.Body)()),
237
236
  __metadata("design:type", Function),
238
- __metadata("design:paramtypes", [Object, Role_1.Role]),
237
+ __metadata("design:paramtypes", [Object, Object, Role_1.Role]),
239
238
  __metadata("design:returntype", Promise)
240
239
  ], PermissionController.prototype, "createRole", null);
241
240
  __decorate([
242
- (0, swagger_1.ApiOperation)({ summary: 'Assegna più ruoli a un utente', operationId: "assignRolesToUser" }),
241
+ (0, swagger_1.ApiOperation)({ summary: 'Assegna piu ruoli a un utente', operationId: 'assignRolesToUser' }),
243
242
  (0, swagger_1.ApiParam)({
244
243
  name: 'codiceUtente',
245
- description: 'Codice identificativo dell\'utente a cui assegnare i ruoli',
244
+ description: "Codice identificativo dell'utente a cui assegnare i ruoli",
246
245
  required: true,
247
- example: 22
246
+ example: 22,
248
247
  }),
249
248
  (0, swagger_1.ApiBody)({
250
249
  type: AssignRolesToUserRequest_1.AssignRolesToUserRequest,
251
- description: 'Lista dei ruoli da assegnare all\'utente'
250
+ description: "Lista dei ruoli da assegnare all'utente",
252
251
  }),
253
- (0, swagger_1.ApiResponse)({ status: 200, description: 'Ruoli assegnati con successo all\'utente' }),
252
+ (0, swagger_1.ApiResponse)({ status: 200, description: "Ruoli assegnati con successo all'utente" }),
254
253
  (0, swagger_1.ApiResponse)({ status: 400, description: 'Errore di validazione nei dati inviati' }),
255
254
  (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
256
255
  (0, common_1.Post)('assign-roles/:codiceUtente'),
257
- __param(0, (0, common_1.Res)()),
258
- __param(1, (0, common_1.Param)('codiceUtente')),
259
- __param(2, (0, common_1.Body)()),
256
+ __param(0, (0, common_1.Req)()),
257
+ __param(1, (0, common_1.Res)()),
258
+ __param(2, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
259
+ __param(3, (0, common_1.Body)()),
260
260
  __metadata("design:type", Function),
261
- __metadata("design:paramtypes", [Object, Number, AssignRolesToUserRequest_1.AssignRolesToUserRequest]),
261
+ __metadata("design:paramtypes", [Object, Object, Number, AssignRolesToUserRequest_1.AssignRolesToUserRequest]),
262
262
  __metadata("design:returntype", Promise)
263
263
  ], PermissionController.prototype, "assignRolesToUser", null);
264
264
  __decorate([
265
- (0, swagger_1.ApiOperation)({ summary: 'Assegna abilitazioni dirette a un utente', operationId: "assignPermissionsToUser" }),
265
+ (0, swagger_1.ApiOperation)({
266
+ summary: 'Assegna abilitazioni dirette a un utente',
267
+ operationId: 'assignPermissionsToUser',
268
+ }),
266
269
  (0, swagger_1.ApiParam)({
267
270
  name: 'codiceUtente',
268
- description: 'Codice identificativo dell\'utente a cui assegnare le abilitazioni',
271
+ description: "Codice identificativo dell'utente a cui assegnare le abilitazioni",
269
272
  required: true,
270
- example: 'USR123'
273
+ example: 22,
271
274
  }),
272
275
  (0, swagger_1.ApiBody)({
273
276
  type: AssignPermissionsToUserRequest_1.AssignPermissionsToUserRequest,
274
- description: 'Lista delle abilitazioni da assegnare all\'utente'
277
+ description: "Lista delle abilitazioni da assegnare all'utente",
275
278
  }),
276
- (0, swagger_1.ApiResponse)({ status: 200, description: 'Abilitazioni assegnate con successo all\'utente' }),
279
+ (0, swagger_1.ApiResponse)({ status: 200, description: "Abilitazioni assegnate con successo all'utente" }),
277
280
  (0, swagger_1.ApiResponse)({ status: 400, description: 'Errore di validazione nei dati inviati' }),
278
281
  (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
279
282
  (0, common_1.Post)('assign-permissions/:codiceUtente'),
280
- __param(0, (0, common_1.Res)()),
281
- __param(1, (0, common_1.Param)('codiceUtente')),
282
- __param(2, (0, common_1.Body)()),
283
+ __param(0, (0, common_1.Req)()),
284
+ __param(1, (0, common_1.Res)()),
285
+ __param(2, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
286
+ __param(3, (0, common_1.Body)()),
283
287
  __metadata("design:type", Function),
284
- __metadata("design:paramtypes", [Object, Number, AssignPermissionsToUserRequest_1.AssignPermissionsToUserRequest]),
288
+ __metadata("design:paramtypes", [Object, Object, Number, AssignPermissionsToUserRequest_1.AssignPermissionsToUserRequest]),
285
289
  __metadata("design:returntype", Promise)
286
290
  ], PermissionController.prototype, "assignPermissionsToUser", null);
287
291
  __decorate([
288
- (0, swagger_1.ApiOperation)({ summary: 'Elimina un ruolo esistente', operationId: "deleteRole" }),
292
+ (0, swagger_1.ApiOperation)({ summary: 'Elimina un ruolo esistente', operationId: 'deleteRole' }),
289
293
  (0, swagger_1.ApiParam)({
290
294
  name: 'codiceRuolo',
291
- description: "Codice identificativo del ruolo da eliminare",
295
+ description: 'Codice identificativo del ruolo da eliminare',
292
296
  required: true,
293
297
  example: 382,
294
- type: Number
298
+ type: Number,
295
299
  }),
296
- (0, swagger_1.ApiResponse)({ status: 200, description: "Ruolo eliminato con successo" }),
297
- (0, swagger_1.ApiResponse)({ status: 400, description: "Errore nei parametri della richiesta" }),
298
- (0, swagger_1.ApiResponse)({ status: 500, description: "Errore interno del server" }),
300
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Ruolo eliminato con successo' }),
301
+ (0, swagger_1.ApiResponse)({ status: 400, description: 'Errore nei parametri della richiesta' }),
302
+ (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
299
303
  (0, common_1.Delete)('delete-role/:codiceRuolo'),
300
- __param(0, (0, common_1.Param)('codiceRuolo', common_1.ParseIntPipe)),
301
- __param(1, (0, common_1.Res)()),
304
+ __param(0, (0, common_1.Req)()),
305
+ __param(1, (0, common_1.Param)('codiceRuolo', common_1.ParseIntPipe)),
306
+ __param(2, (0, common_1.Res)()),
302
307
  __metadata("design:type", Function),
303
- __metadata("design:paramtypes", [Number, Object]),
308
+ __metadata("design:paramtypes", [Object, Number, Object]),
304
309
  __metadata("design:returntype", Promise)
305
310
  ], PermissionController.prototype, "deleteRole", null);
306
311
  __decorate([
307
- (0, swagger_1.ApiOperation)({ summary: 'Recupera tutti i menù disponibili', operationId: "getMenus" }),
308
- (0, swagger_1.ApiOkResponse)({ description: 'Elenco menù', type: GetMenusResponse_1.GetMenusResponse }),
309
- (0, swagger_1.ApiResponse)({ status: 200, description: "Lista dei menù recuperata con successo" }),
310
- (0, swagger_1.ApiResponse)({ status: 500, description: "Errore interno del server" }),
312
+ (0, swagger_1.ApiOperation)({ summary: 'Recupera tutti i menu disponibili', operationId: 'getMenus' }),
313
+ (0, swagger_1.ApiOkResponse)({ description: 'Elenco menu', type: GetMenusResponse_1.GetMenusResponse }),
314
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Lista dei menu recuperata con successo' }),
315
+ (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
311
316
  (0, common_1.Get)('menus'),
312
317
  __param(0, (0, common_1.Res)()),
313
318
  __metadata("design:type", Function),
@@ -315,15 +320,21 @@ __decorate([
315
320
  __metadata("design:returntype", Promise)
316
321
  ], PermissionController.prototype, "getMenus", null);
317
322
  __decorate([
318
- (0, swagger_1.ApiOperation)({ summary: 'Recupera tutti i gruppi disponibili con i relativi menù', operationId: "getGroupsWithMenus" }),
319
- (0, swagger_1.ApiOkResponse)({ description: 'Elenco gruppi con relativi menù', type: GetGroupsWithMenusResponse_1.GetGroupsWithMenusResponse }),
320
- (0, swagger_1.ApiResponse)({ status: 200, description: "Lista dei menù recuperata con successo" }),
321
- (0, swagger_1.ApiResponse)({ status: 500, description: "Errore interno del server" }),
323
+ (0, swagger_1.ApiOperation)({
324
+ summary: 'Recupera tutti i gruppi disponibili con i relativi menu',
325
+ operationId: 'getGroupsWithMenus',
326
+ }),
327
+ (0, swagger_1.ApiOkResponse)({
328
+ description: 'Elenco gruppi con relativi menu',
329
+ type: GetGroupsWithMenusResponse_1.GetGroupsWithMenusResponse,
330
+ }),
331
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Lista dei menu recuperata con successo' }),
332
+ (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
322
333
  (0, swagger_1.ApiQuery)({
323
334
  name: 'includeDisabled',
324
335
  required: false,
325
336
  type: Boolean,
326
- description: 'Quando true ritorna anche i menu e gruppi disabilitati.'
337
+ description: 'Quando true ritorna anche i menu e gruppi disabilitati.',
327
338
  }),
328
339
  (0, common_1.Get)('groups-with-menus'),
329
340
  __param(0, (0, common_1.Query)('includeDisabled')),
@@ -333,21 +344,26 @@ __decorate([
333
344
  __metadata("design:returntype", Promise)
334
345
  ], PermissionController.prototype, "getGroupsWithMenus", null);
335
346
  __decorate([
336
- (0, swagger_1.ApiOperation)({ summary: 'Recupera i ruoli e i menù di un utente', operationId: "getUserRolesAndGrants" }),
337
- (0, swagger_1.ApiOkResponse)({ description: 'Elenco menù', type: UserGrantsDto_1.UserGrantsDto }),
338
- (0, swagger_1.ApiResponse)({ status: 200, description: "Lista dei menù recuperata con successo" }),
339
- (0, swagger_1.ApiResponse)({ status: 500, description: "Errore interno del server" }),
347
+ (0, swagger_1.ApiOperation)({
348
+ summary: 'Recupera i ruoli e i menu di un utente',
349
+ operationId: 'getUserRolesAndGrants',
350
+ }),
351
+ (0, swagger_1.ApiOkResponse)({ description: 'Elenco menu', type: UserGrantsDto_1.UserGrantsDto }),
352
+ (0, swagger_1.ApiResponse)({ status: 200, description: 'Lista dei menu recuperata con successo' }),
353
+ (0, swagger_1.ApiResponse)({ status: 500, description: 'Errore interno del server' }),
340
354
  (0, common_1.Get)('grants/:codiceUtente'),
341
- __param(0, (0, common_1.Param)('codiceUtente')),
342
- __param(1, (0, common_1.Res)()),
355
+ __param(0, (0, common_1.Req)()),
356
+ __param(1, (0, common_1.Param)('codiceUtente', common_1.ParseIntPipe)),
357
+ __param(2, (0, common_1.Res)()),
343
358
  __metadata("design:type", Function),
344
- __metadata("design:paramtypes", [Number, Object]),
359
+ __metadata("design:paramtypes", [Object, Number, Object]),
345
360
  __metadata("design:returntype", Promise)
346
361
  ], PermissionController.prototype, "getUserRolesAndGrants", null);
347
362
  exports.PermissionController = PermissionController = PermissionController_1 = __decorate([
348
363
  (0, swagger_1.ApiTags)('Permission'),
364
+ (0, swagger_1.ApiBearerAuth)(),
349
365
  (0, common_1.Controller)('accessi/permission'),
350
- __param(1, (0, common_1.Inject)('ACCESSI_OPTIONS')),
351
- __metadata("design:paramtypes", [PermissionService_1.PermissionService, Object])
366
+ (0, common_1.UseGuards)(jwt_strategy_1.JwtSimpleGuard),
367
+ __metadata("design:paramtypes", [PermissionService_1.PermissionService])
352
368
  ], PermissionController);
353
369
  //# sourceMappingURL=PermissionController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/PermissionController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Delete, Get, HttpStatus, Inject, Param, ParseIntPipe, Post, Put, Query, Res } from '@nestjs/common';\nimport { ApiBody, ApiInternalServerErrorResponse, ApiOkResponse, ApiOperation, ApiParam, ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger';\nimport { Response } from 'express';\nimport { RestUtilities } from '../../Utilities';\nimport { AccessiOptions } from '../AccessiModule';\nimport { PermissionService } from '../Services/PermissionService/PermissionService';\nimport { Role } from '../Dtos/Role';\nimport { AssignRolesToUserRequest } from '../Dtos/AssignRolesToUserRequest';\nimport { AssignPermissionsToUserRequest } from '../Dtos/AssignPermissionsToUserRequest';\nimport { BaseResponse } from '../Dtos';\nimport { GetMenusResponse, MenuEntity } from '../Dtos/GetMenusResponse';\nimport { GetRolesResponse } from '../Dtos/GetRolesResponse';\nimport { UserGrantsDto } from '../Dtos/UserGrantsDto';\nimport { GetGroupsWithMenusResponse } from '../Dtos/GetGroupsWithMenusResponse';\n\n\n@ApiTags('Permission')\n@Controller('accessi/permission')\nexport class PermissionController {\n constructor(\n private readonly permissionService: PermissionService,\n @Inject('ACCESSI_OPTIONS') private readonly options: AccessiOptions\n ) { }\n\n /*\n @ApiOperation({ summary: 'Resetta le abilitazioni di un utente', operationId: \"resetAbilitazioni\" })\n @Post('reset-abilitazioni')\n async resetAbilitazioni(@Body('codiceUtente') codiceUtente: number, @Res() res: Response) {\n try {\n await this.permissionService.resetAbilitazioni(codiceUtente);\n RestUtilities.sendOKMessage(res, `Le abilitazioni dell'utente ${codiceUtente} sono state resettate con successo.`);\n } catch (error) {\n RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n throw error;\n }\n }\n */\n\n\n /**\n * @description Endpoint per ottenere tutti i ruoli con i relativi menù.\n * @returns Un array di ruoli con menù associati.\n */\n @ApiOperation({ summary: 'Ritorna i ruoli disponibili con i relativi menù', operationId: \"getRoles\", description: 'Recupera tutti i ruoli presenti nel sistema con le relative voci di menu accessibili.' })\n @ApiOkResponse({ description: 'Elenco dei ruoli con i rispettivi menù', type: GetRolesResponse })\n @ApiInternalServerErrorResponse({ description: 'Errore interno del server' })\n @ApiResponse({ status: HttpStatus.OK, description: 'Lista dei ruoli con i menù restituita con successo.' })\n @ApiResponse({ status: HttpStatus.INTERNAL_SERVER_ERROR, description: 'Errore interno del server durante il recupero dei ruoli.' })\n @Get('roles')\n async getRoles(@Res() res: Response): Promise<void> {\n try {\n const roles = await this.permissionService.getRolesWithMenus();\n RestUtilities.sendBaseResponse(res, roles);\n } catch (error) {\n RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n throw error;\n }\n }\n\n @ApiOperation({ summary: 'Aggiorna un ruolo esistente', operationId: \"updateRole\" })\n @ApiParam({\n name: 'codiceRuolo',\n description: \"Codice identificativo del ruolo da aggiornare\",\n required: true,\n example: 101,\n type: Number\n })\n @ApiBody({\n description: \"Dati aggiornati del ruolo (escluso il codice ruolo, che è nel path)\",\n type: Role\n })\n @ApiResponse({ status: 200, description: \"Il ruolo è stato aggiornato con successo\" })\n @ApiResponse({ status: 400, description: \"Errore di validazione nei dati inviati\" })\n @ApiResponse({ status: 500, description: \"Errore interno del server\" })\n @Put('update-role/:codiceRuolo')\n async updateRole(\n @Param('codiceRuolo', ParseIntPipe) codiceRuolo: number,\n @Body() role: Role,\n @Res() res: Response\n ) {\n try {\n if (Number.isNaN(codiceRuolo)) throw new Error(\"Il codice del ruolo è obbligatorio.\");\n if (!role.descrizioneRuolo) throw new Error(\"La descrizione del ruolo non può essere vuota.\");\n if (!role.menu || role.menu.length === 0) throw new Error(\"Il ruolo deve avere almeno un menù.\");\n\n await this.permissionService.updateOrInsertRole(role, codiceRuolo);\n return RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} è stato aggiornato con successo.`);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n @ApiOperation({ summary: 'Crea un nuovo ruolo', operationId: \"createRole\" })\n @ApiResponse({ status: 201, description: 'Il ruolo è stato creato con successo' })\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\n @ApiBody({\n description: 'Dati del nuovo ruolo',\n required: true,\n type: Role\n })\n @Post('create-role')\n async createRole(@Res() res: Response, @Body() role: Role) {\n try {\n if (!role) throw new Error(\"Il ruolo non può essere vuoto.\");\n if (!role.descrizioneRuolo) throw new Error(\"La descrizione del ruolo non può essere vuota.\");\n if (!role.menu || role.menu.length === 0) throw new Error(\"Il ruolo deve avere almeno un menù.\");\n\n await this.permissionService.updateOrInsertRole(role);\n return RestUtilities.sendOKMessage(res, \"Il ruolo è stato creato con successo.\");\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n\n @ApiOperation({ summary: 'Assegna più ruoli a un utente', operationId: \"assignRolesToUser\" })\n @ApiParam({\n name: 'codiceUtente',\n description: 'Codice identificativo dell\\'utente a cui assegnare i ruoli',\n required: true,\n example: 22\n })\n @ApiBody({\n type: AssignRolesToUserRequest,\n description: 'Lista dei ruoli da assegnare all\\'utente'\n })\n @ApiResponse({ status: 200, description: 'Ruoli assegnati con successo all\\'utente' })\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\n @Post('assign-roles/:codiceUtente')\n async assignRolesToUser(\n @Res() res: Response,\n @Param('codiceUtente') codiceUtente: number,\n @Body() assignRolesRequest: AssignRolesToUserRequest\n ) {\n try {\n if (!codiceUtente) throw new Error(\"Il codice utente è obbligatorio.\");\n if (!assignRolesRequest.roles || assignRolesRequest.roles.length === 0) {\n throw new Error(\"È necessario fornire almeno un ruolo.\");\n }\n\n await this.permissionService.assignRolesToUser(codiceUtente, assignRolesRequest.roles);\n return RestUtilities.sendOKMessage(res, `I ruoli ${assignRolesRequest.roles.join(', ')} sono stati assegnati all'utente ${codiceUtente}.`);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n\n @ApiOperation({ summary: 'Assegna abilitazioni dirette a un utente', operationId: \"assignPermissionsToUser\" })\n @ApiParam({\n name: 'codiceUtente',\n description: 'Codice identificativo dell\\'utente a cui assegnare le abilitazioni',\n required: true,\n example: 'USR123'\n })\n @ApiBody({\n type: AssignPermissionsToUserRequest,\n description: 'Lista delle abilitazioni da assegnare all\\'utente'\n })\n @ApiResponse({ status: 200, description: 'Abilitazioni assegnate con successo all\\'utente' })\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\n @Post('assign-permissions/:codiceUtente')\n async assignPermissionsToUser(\n @Res() res: Response,\n @Param('codiceUtente') codiceUtente: number,\n @Body() assignPermissionsRequest: AssignPermissionsToUserRequest\n ) {\n try {\n if (!codiceUtente) throw new Error(\"Il codice utente è obbligatorio.\");\n if (!assignPermissionsRequest.permissions || assignPermissionsRequest.permissions.length === 0) {\n throw new Error(\"È necessario fornire almeno un'abilitazione.\");\n }\n\n await this.permissionService.assignPermissionsToUser(codiceUtente, assignPermissionsRequest.permissions);\n return RestUtilities.sendOKMessage(res, `Le abilitazioni sono state assegnate all'utente ${codiceUtente}.`);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n\n @ApiOperation({ summary: 'Elimina un ruolo esistente', operationId: \"deleteRole\" })\n @ApiParam({\n name: 'codiceRuolo',\n description: \"Codice identificativo del ruolo da eliminare\",\n required: true,\n example: 382,\n type: Number\n })\n @ApiResponse({ status: 200, description: \"Ruolo eliminato con successo\" })\n @ApiResponse({ status: 400, description: \"Errore nei parametri della richiesta\" })\n @ApiResponse({ status: 500, description: \"Errore interno del server\" })\n @Delete('delete-role/:codiceRuolo')\n async deleteRole(@Param('codiceRuolo', ParseIntPipe) codiceRuolo: number, @Res() res: Response) {\n try {\n if (Number.isNaN(codiceRuolo)) throw new Error(\"Il codice del ruolo è obbligatorio.\");\n\n await this.permissionService.deleteRole(codiceRuolo);\n return RestUtilities.sendOKMessage(res, `Il ruolo ${codiceRuolo} è stato eliminato con successo.`);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n\n @ApiOperation({ summary: 'Recupera tutti i menù disponibili', operationId: \"getMenus\" })\n @ApiOkResponse({ description: 'Elenco menù', type: GetMenusResponse })\n @ApiResponse({ status: 200, description: \"Lista dei menù recuperata con successo\" })\n @ApiResponse({ status: 500, description: \"Errore interno del server\" })\n @Get('menus')\n async getMenus(@Res() res: Response) {\n try {\n const menus = await this.permissionService.getMenus();\n return RestUtilities.sendBaseResponse(res, menus);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n @ApiOperation({ summary: 'Recupera tutti i gruppi disponibili con i relativi menù', operationId: \"getGroupsWithMenus\" })\n @ApiOkResponse({ description: 'Elenco gruppi con relativi menù', type: GetGroupsWithMenusResponse })\n @ApiResponse({ status: 200, description: \"Lista dei menù recuperata con successo\" })\n @ApiResponse({ status: 500, description: \"Errore interno del server\" })\n @ApiQuery({\n name: 'includeDisabled',\n required: false,\n type: Boolean,\n description: 'Quando true ritorna anche i menu e gruppi disabilitati.'\n })\n @Get('groups-with-menus')\n async getGroupsWithMenus(@Query('includeDisabled') includeDisabled: string, @Res() res: Response) {\n try {\n const includeDisabledFlag = typeof includeDisabled === 'string'\n ? ['true', '1', 'yes'].includes(includeDisabled.toLowerCase())\n : false;\n\n const menus = await this.permissionService.getGroupsWithMenus(includeDisabledFlag);\n return RestUtilities.sendBaseResponse(res, menus);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n\n @ApiOperation({ summary: 'Recupera i ruoli e i menù di un utente', operationId: \"getUserRolesAndGrants\" })\n @ApiOkResponse({ description: 'Elenco menù', type: UserGrantsDto })\n @ApiResponse({ status: 200, description: \"Lista dei menù recuperata con successo\" })\n @ApiResponse({ status: 500, description: \"Errore interno del server\" })\n @Get('grants/:codiceUtente')\n async getUserRolesAndGrants(@Param('codiceUtente') codiceUtente: number, @Res() res: Response) {\n try {\n const menus = await this.permissionService.getUserRolesAndGrants(codiceUtente);\n return RestUtilities.sendBaseResponse(res, menus);\n } catch (error) {\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name);\n }\n }\n\n}\n"]}
1
+ {"version":3,"file":"PermissionController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/PermissionController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAewB;AACxB,6CAUyB;AAEzB,+CAAgD;AAChD,2FAAwF;AACxF,+EAA4E;AAC5E,mFAAgF;AAChF,+DAA4D;AAC5D,+DAA4D;AAC5D,uCAAoC;AACpC,yDAAsD;AACtD,uFAAoF;AACpF,sDAAqD;AACrD,6DAImC;AAM5B,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAE7D,mBAAmB,CAAC,GAAa,EAAE,KAAc;QACvD,MAAM,MAAM,GACV,KAAK,YAAY,sBAAa,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAU,CAAC,qBAAqB,CAAC;QACxF,OAAO,yBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,sBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IAeK,QAAQ,CAAQ,GAAa;;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBAC/D,yBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAkBK,UAAU,CACP,OAAgB,EACa,WAAmB,EAC/C,IAAU,EACX,GAAa;;YAEpB,IAAI,CAAC;gBACH,IAAA,+BAAe,EACb,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,qDAAqD,CACtD,CAAC;gBAEF,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACtF,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC9F,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACnE,OAAO,yBAAa,CAAC,aAAa,CAChC,GAAG,EACH,YAAY,WAAW,oCAAoC,CAC5D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAYK,UAAU,CAAQ,OAAgB,EAAS,GAAa,EAAU,IAAU;;YAChF,IAAI,CAAC;gBACH,IAAA,+BAAe,EACb,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,+CAA+C,CAChD,CAAC;gBAEF,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAC9F,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACzD,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACtD,OAAO,yBAAa,CAAC,aAAa,CAAC,GAAG,EAAE,uCAAuC,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAiBK,iBAAiB,CACd,OAAgB,EAChB,GAAa,EACiB,YAAoB,EACjD,kBAA4C;;YAEpD,IAAI,CAAC;gBACH,IAAA,+BAAe,EACb,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,8DAA8D,CAC/D,CAAC;gBAEF,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBACvF,OAAO,yBAAa,CAAC,aAAa,CAChC,GAAG,EACH,WAAW,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,YAAY,GAAG,CAClG,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAoBK,uBAAuB,CACpB,OAAgB,EAChB,GAAa,EACiB,YAAoB,EACjD,wBAAwD;;YAEhE,IAAI,CAAC;gBACH,IAAA,+BAAe,EACb,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,iEAAiE,CAClE,CAAC;gBAEF,IAAI,CAAC,wBAAwB,CAAC,WAAW,IAAI,wBAAwB,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/F,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBAED,MAAM,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAClD,YAAY,EACZ,wBAAwB,CAAC,WAAW,CACrC,CAAC;gBACF,OAAO,yBAAa,CAAC,aAAa,CAChC,GAAG,EACH,mDAAmD,YAAY,GAAG,CACnE,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAcK,UAAU,CACP,OAAgB,EACa,WAAmB,EAChD,GAAa;;YAEpB,IAAI,CAAC;gBACH,IAAA,+BAAe,EACb,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,kDAAkD,CACnD,CAAC;gBAEF,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBACrD,OAAO,yBAAa,CAAC,aAAa,CAChC,GAAG,EACH,YAAY,WAAW,mCAAmC,CAC3D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAOK,QAAQ,CAAQ,GAAa;;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBACtD,OAAO,yBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAmBK,kBAAkB,CAA2B,eAAuB,EAAS,GAAa;;YAC9F,IAAI,CAAC;gBACH,MAAM,mBAAmB,GACvB,OAAO,eAAe,KAAK,QAAQ;oBACjC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;oBAC9D,CAAC,CAAC,KAAK,CAAC;gBAEZ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;gBACnF,OAAO,yBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;IAUK,qBAAqB,CAClB,OAAgB,EACc,YAAoB,EAClD,GAAa;;YAEpB,IAAI,CAAC;gBACH,IAAA,qCAAqB,EACnB,IAAA,2CAA2B,EAAC,OAAO,CAAC,EACpC,YAAY,EACZ,oEAAoE,CACrE,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBAC/E,OAAO,yBAAa,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA1SY,oDAAoB;AAsBzB;IAbL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,iDAAiD;QAC1D,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,2EAA2E;KACzF,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,wCAAwC,EAAE,IAAI,EAAE,mCAAgB,EAAE,CAAC;IAChG,IAAA,wCAA8B,EAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAC5E,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,mBAAU,CAAC,EAAE,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;IAC/F,IAAA,qBAAW,EAAC;QACX,MAAM,EAAE,mBAAU,CAAC,qBAAqB;QACxC,WAAW,EAAE,0DAA0D;KACxE,CAAC;IACD,IAAA,YAAG,EAAC,OAAO,CAAC;IACG,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAQpB;AAkBK;IAhBL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IACnF,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,+CAA+C;QAC5D,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,MAAM;KACb,CAAC;IACD,IAAA,iBAAO,EAAC;QACP,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,WAAI;KACX,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;IACrF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,YAAG,EAAC,0BAA0B,CAAC;IAE7B,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,aAAa,EAAE,qBAAY,CAAC,CAAA;IAClC,WAAA,IAAA,aAAI,GAAE,CAAA;IACN,WAAA,IAAA,YAAG,GAAE,CAAA;;qDADQ,WAAI;;sDAuBnB;AAYK;IAVL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAC3E,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IACjF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,iBAAO,EAAC;QACP,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,WAAI;KACX,CAAC;IACD,IAAA,aAAI,EAAC,aAAa,CAAC;IACF,WAAA,IAAA,YAAG,GAAE,CAAA;IAAoB,WAAA,IAAA,YAAG,GAAE,CAAA;IAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;qDAAO,WAAI;;sDAkBjF;AAiBK;IAfL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;IAC5F,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,iBAAO,EAAC;QACP,IAAI,EAAE,mDAAwB;QAC9B,WAAW,EAAE,yCAAyC;KACvD,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;IACpF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,aAAI,EAAC,4BAA4B,CAAC;IAEhC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,cAAc,EAAE,qBAAY,CAAC,CAAA;IACnC,WAAA,IAAA,aAAI,GAAE,CAAA;;6DAAqB,mDAAwB;;6DAoBrD;AAoBK;IAlBL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,0CAA0C;QACnD,WAAW,EAAE,yBAAyB;KACvC,CAAC;IACD,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,mEAAmE;QAChF,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;IACD,IAAA,iBAAO,EAAC;QACP,IAAI,EAAE,+DAA8B;QACpC,WAAW,EAAE,kDAAkD;KAChE,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC;IAC3F,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,aAAI,EAAC,kCAAkC,CAAC;IAEtC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,cAAc,EAAE,qBAAY,CAAC,CAAA;IACnC,WAAA,IAAA,aAAI,GAAE,CAAA;;6DAA2B,+DAA8B;;mEAuBjE;AAcK;IAZL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;IAClF,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,8CAA8C;QAC3D,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,GAAG;QACZ,IAAI,EAAE,MAAM;KACb,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IACzE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;IACjF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,eAAM,EAAC,0BAA0B,CAAC;IAEhC,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,aAAa,EAAE,qBAAY,CAAC,CAAA;IAClC,WAAA,IAAA,YAAG,GAAE,CAAA;;;;sDAgBP;AAOK;IALL,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACvF,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,mCAAgB,EAAE,CAAC;IACrE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,YAAG,EAAC,OAAO,CAAC;IACG,WAAA,IAAA,YAAG,GAAE,CAAA;;;;oDAOpB;AAmBK;IAjBL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,yDAAyD;QAClE,WAAW,EAAE,oBAAoB;KAClC,CAAC;IACD,IAAA,uBAAa,EAAC;QACb,WAAW,EAAE,iCAAiC;QAC9C,IAAI,EAAE,uDAA0B;KACjC,CAAC;IACD,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,kBAAQ,EAAC;QACR,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,yDAAyD;KACvE,CAAC;IACD,IAAA,YAAG,EAAC,mBAAmB,CAAC;IACC,WAAA,IAAA,cAAK,EAAC,iBAAiB,CAAC,CAAA;IAA2B,WAAA,IAAA,YAAG,GAAE,CAAA;;;;8DAYjF;AAUK;IARL,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,wCAAwC;QACjD,WAAW,EAAE,uBAAuB;KACrC,CAAC;IACD,IAAA,uBAAa,EAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,6BAAa,EAAE,CAAC;IAClE,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IACnF,IAAA,qBAAW,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;IACtE,IAAA,YAAG,EAAC,sBAAsB,CAAC;IAEzB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,cAAc,EAAE,qBAAY,CAAC,CAAA;IACnC,WAAA,IAAA,YAAG,GAAE,CAAA;;;;iEAcP;+BAzSU,oBAAoB;IAJhC,IAAA,iBAAO,EAAC,YAAY,CAAC;IACrB,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,oBAAoB,CAAC;IAChC,IAAA,kBAAS,EAAC,6BAAc,CAAC;qCAEwB,qCAAiB;GADtD,oBAAoB,CA0ShC","sourcesContent":["import {\r\n Body,\r\n Controller,\r\n Delete,\r\n Get,\r\n HttpException,\r\n HttpStatus,\r\n Param,\r\n ParseIntPipe,\r\n Post,\r\n Put,\r\n Query,\r\n Req,\r\n Res,\r\n UseGuards,\r\n} from '@nestjs/common';\r\nimport {\r\n ApiBearerAuth,\r\n ApiBody,\r\n ApiInternalServerErrorResponse,\r\n ApiOkResponse,\r\n ApiOperation,\r\n ApiParam,\r\n ApiQuery,\r\n ApiResponse,\r\n ApiTags,\r\n} from '@nestjs/swagger';\r\nimport { Request, Response } from 'express';\r\nimport { RestUtilities } from '../../Utilities';\r\nimport { AssignPermissionsToUserRequest } from '../Dtos/AssignPermissionsToUserRequest';\r\nimport { AssignRolesToUserRequest } from '../Dtos/AssignRolesToUserRequest';\r\nimport { GetGroupsWithMenusResponse } from '../Dtos/GetGroupsWithMenusResponse';\r\nimport { GetMenusResponse } from '../Dtos/GetMenusResponse';\r\nimport { GetRolesResponse } from '../Dtos/GetRolesResponse';\r\nimport { Role } from '../Dtos/Role';\r\nimport { UserGrantsDto } from '../Dtos/UserGrantsDto';\r\nimport { PermissionService } from '../Services/PermissionService/PermissionService';\r\nimport { JwtSimpleGuard } from '../jwt/jwt.strategy';\r\nimport {\r\n ensureSelfOrSuperUser,\r\n ensureSuperUser,\r\n getAuthenticatedAccessiUser,\r\n} from '../security/accessControl';\r\n\r\n@ApiTags('Permission')\r\n@ApiBearerAuth()\r\n@Controller('accessi/permission')\r\n@UseGuards(JwtSimpleGuard)\r\nexport class PermissionController {\r\n constructor(private readonly permissionService: PermissionService) {}\r\n\r\n private sendControllerError(res: Response, error: unknown) {\r\n const status =\r\n error instanceof HttpException ? error.getStatus() : HttpStatus.INTERNAL_SERVER_ERROR;\r\n return RestUtilities.sendErrorMessage(res, error, PermissionController.name, status);\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Ritorna i ruoli disponibili con i relativi menu',\r\n operationId: 'getRoles',\r\n description: 'Recupera tutti i ruoli presenti nel sistema con le relative voci di menu.',\r\n })\r\n @ApiOkResponse({ description: 'Elenco dei ruoli con i rispettivi menu', type: GetRolesResponse })\r\n @ApiInternalServerErrorResponse({ description: 'Errore interno del server' })\r\n @ApiResponse({ status: HttpStatus.OK, description: 'Lista dei ruoli restituita con successo.' })\r\n @ApiResponse({\r\n status: HttpStatus.INTERNAL_SERVER_ERROR,\r\n description: 'Errore interno del server durante il recupero dei ruoli.',\r\n })\r\n @Get('roles')\r\n async getRoles(@Res() res: Response): Promise<void> {\r\n try {\r\n const roles = await this.permissionService.getRolesWithMenus();\r\n RestUtilities.sendBaseResponse(res, roles);\r\n } catch (error) {\r\n this.sendControllerError(res, error);\r\n throw error;\r\n }\r\n }\r\n\r\n @ApiOperation({ summary: 'Aggiorna un ruolo esistente', operationId: 'updateRole' })\r\n @ApiParam({\r\n name: 'codiceRuolo',\r\n description: 'Codice identificativo del ruolo da aggiornare',\r\n required: true,\r\n example: 101,\r\n type: Number,\r\n })\r\n @ApiBody({\r\n description: 'Dati aggiornati del ruolo',\r\n type: Role,\r\n })\r\n @ApiResponse({ status: 200, description: 'Il ruolo e stato aggiornato con successo' })\r\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Put('update-role/:codiceRuolo')\r\n async updateRole(\r\n @Req() request: Request,\r\n @Param('codiceRuolo', ParseIntPipe) codiceRuolo: number,\r\n @Body() role: Role,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono modificare i ruoli.',\r\n );\r\n\r\n if (Number.isNaN(codiceRuolo)) throw new Error('Il codice del ruolo e obbligatorio.');\r\n if (!role.descrizioneRuolo) throw new Error('La descrizione del ruolo non puo essere vuota.');\r\n if (!role.menu || role.menu.length === 0) {\r\n throw new Error('Il ruolo deve avere almeno un menu.');\r\n }\r\n\r\n await this.permissionService.updateOrInsertRole(role, codiceRuolo);\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `Il ruolo ${codiceRuolo} e' stato aggiornato con successo.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({ summary: 'Crea un nuovo ruolo', operationId: 'createRole' })\r\n @ApiResponse({ status: 201, description: 'Il ruolo e stato creato con successo' })\r\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @ApiBody({\r\n description: 'Dati del nuovo ruolo',\r\n required: true,\r\n type: Role,\r\n })\r\n @Post('create-role')\r\n async createRole(@Req() request: Request, @Res() res: Response, @Body() role: Role) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono creare ruoli.',\r\n );\r\n\r\n if (!role) throw new Error('Il ruolo non puo essere vuoto.');\r\n if (!role.descrizioneRuolo) throw new Error('La descrizione del ruolo non puo essere vuota.');\r\n if (!role.menu || role.menu.length === 0) {\r\n throw new Error('Il ruolo deve avere almeno un menu.');\r\n }\r\n\r\n await this.permissionService.updateOrInsertRole(role);\r\n return RestUtilities.sendOKMessage(res, 'Il ruolo e stato creato con successo.');\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({ summary: 'Assegna piu ruoli a un utente', operationId: 'assignRolesToUser' })\r\n @ApiParam({\r\n name: 'codiceUtente',\r\n description: \"Codice identificativo dell'utente a cui assegnare i ruoli\",\r\n required: true,\r\n example: 22,\r\n })\r\n @ApiBody({\r\n type: AssignRolesToUserRequest,\r\n description: \"Lista dei ruoli da assegnare all'utente\",\r\n })\r\n @ApiResponse({ status: 200, description: \"Ruoli assegnati con successo all'utente\" })\r\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Post('assign-roles/:codiceUtente')\r\n async assignRolesToUser(\r\n @Req() request: Request,\r\n @Res() res: Response,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Body() assignRolesRequest: AssignRolesToUserRequest,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono assegnare ruoli agli utenti.',\r\n );\r\n\r\n if (!assignRolesRequest.roles || assignRolesRequest.roles.length === 0) {\r\n throw new Error('E necessario fornire almeno un ruolo.');\r\n }\r\n\r\n await this.permissionService.assignRolesToUser(codiceUtente, assignRolesRequest.roles);\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `I ruoli ${assignRolesRequest.roles.join(', ')} sono stati assegnati all'utente ${codiceUtente}.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Assegna abilitazioni dirette a un utente',\r\n operationId: 'assignPermissionsToUser',\r\n })\r\n @ApiParam({\r\n name: 'codiceUtente',\r\n description: \"Codice identificativo dell'utente a cui assegnare le abilitazioni\",\r\n required: true,\r\n example: 22,\r\n })\r\n @ApiBody({\r\n type: AssignPermissionsToUserRequest,\r\n description: \"Lista delle abilitazioni da assegnare all'utente\",\r\n })\r\n @ApiResponse({ status: 200, description: \"Abilitazioni assegnate con successo all'utente\" })\r\n @ApiResponse({ status: 400, description: 'Errore di validazione nei dati inviati' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Post('assign-permissions/:codiceUtente')\r\n async assignPermissionsToUser(\r\n @Req() request: Request,\r\n @Res() res: Response,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Body() assignPermissionsRequest: AssignPermissionsToUserRequest,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono assegnare permessi agli utenti.',\r\n );\r\n\r\n if (!assignPermissionsRequest.permissions || assignPermissionsRequest.permissions.length === 0) {\r\n throw new Error('E necessario fornire almeno una abilitazione.');\r\n }\r\n\r\n await this.permissionService.assignPermissionsToUser(\r\n codiceUtente,\r\n assignPermissionsRequest.permissions,\r\n );\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `Le abilitazioni sono state assegnate all'utente ${codiceUtente}.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({ summary: 'Elimina un ruolo esistente', operationId: 'deleteRole' })\r\n @ApiParam({\r\n name: 'codiceRuolo',\r\n description: 'Codice identificativo del ruolo da eliminare',\r\n required: true,\r\n example: 382,\r\n type: Number,\r\n })\r\n @ApiResponse({ status: 200, description: 'Ruolo eliminato con successo' })\r\n @ApiResponse({ status: 400, description: 'Errore nei parametri della richiesta' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Delete('delete-role/:codiceRuolo')\r\n async deleteRole(\r\n @Req() request: Request,\r\n @Param('codiceRuolo', ParseIntPipe) codiceRuolo: number,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n 'Solo gli amministratori possono eliminare ruoli.',\r\n );\r\n\r\n await this.permissionService.deleteRole(codiceRuolo);\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `Il ruolo ${codiceRuolo} e' stato eliminato con successo.`,\r\n );\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({ summary: 'Recupera tutti i menu disponibili', operationId: 'getMenus' })\r\n @ApiOkResponse({ description: 'Elenco menu', type: GetMenusResponse })\r\n @ApiResponse({ status: 200, description: 'Lista dei menu recuperata con successo' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Get('menus')\r\n async getMenus(@Res() res: Response) {\r\n try {\r\n const menus = await this.permissionService.getMenus();\r\n return RestUtilities.sendBaseResponse(res, menus);\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Recupera tutti i gruppi disponibili con i relativi menu',\r\n operationId: 'getGroupsWithMenus',\r\n })\r\n @ApiOkResponse({\r\n description: 'Elenco gruppi con relativi menu',\r\n type: GetGroupsWithMenusResponse,\r\n })\r\n @ApiResponse({ status: 200, description: 'Lista dei menu recuperata con successo' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @ApiQuery({\r\n name: 'includeDisabled',\r\n required: false,\r\n type: Boolean,\r\n description: 'Quando true ritorna anche i menu e gruppi disabilitati.',\r\n })\r\n @Get('groups-with-menus')\r\n async getGroupsWithMenus(@Query('includeDisabled') includeDisabled: string, @Res() res: Response) {\r\n try {\r\n const includeDisabledFlag =\r\n typeof includeDisabled === 'string'\r\n ? ['true', '1', 'yes'].includes(includeDisabled.toLowerCase())\r\n : false;\r\n\r\n const menus = await this.permissionService.getGroupsWithMenus(includeDisabledFlag);\r\n return RestUtilities.sendBaseResponse(res, menus);\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Recupera i ruoli e i menu di un utente',\r\n operationId: 'getUserRolesAndGrants',\r\n })\r\n @ApiOkResponse({ description: 'Elenco menu', type: UserGrantsDto })\r\n @ApiResponse({ status: 200, description: 'Lista dei menu recuperata con successo' })\r\n @ApiResponse({ status: 500, description: 'Errore interno del server' })\r\n @Get('grants/:codiceUtente')\r\n async getUserRolesAndGrants(\r\n @Req() request: Request,\r\n @Param('codiceUtente', ParseIntPipe) codiceUtente: number,\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n ensureSelfOrSuperUser(\r\n getAuthenticatedAccessiUser(request),\r\n codiceUtente,\r\n 'Puoi consultare solo i tuoi grant, salvo privilegi amministrativi.',\r\n );\r\n\r\n const menus = await this.permissionService.getUserRolesAndGrants(codiceUtente);\r\n return RestUtilities.sendBaseResponse(res, menus);\r\n } catch (error) {\r\n return this.sendControllerError(res, error);\r\n }\r\n }\r\n}\r\n"]}
@@ -1,21 +1,22 @@
1
- import { Response, Request } from 'express';
1
+ import { Request, Response } from 'express';
2
2
  import { AccessiOptions } from '../AccessiModule';
3
- import { UserService } from '../Services/UserService/UserService';
4
- import { EmailService } from '../Services/EmailService/EmailService';
5
- import { UserDto } from '../Dtos';
6
3
  import { RegisterRequest } from '../Dtos/RegisterRequest';
7
4
  import { SetStatoRegistrazioneDto } from '../Dtos/SetStatoRegistrazione';
5
+ import { UserDto } from '../Dtos/UserDto';
6
+ import { EmailService } from '../Services/EmailService/EmailService';
7
+ import { UserService } from '../Services/UserService/UserService';
8
8
  export declare class UserController {
9
+ private readonly accessiOptions;
9
10
  private readonly userService;
10
11
  private readonly emailService;
11
- private readonly options;
12
12
  private readonly logger;
13
- constructor(userService: UserService, emailService: EmailService, options: AccessiOptions);
13
+ constructor(accessiOptions: AccessiOptions, userService: UserService, emailService: EmailService);
14
+ private sendControllerError;
14
15
  serveResetPasswordPage(res: Response, token: string): Promise<void>;
15
- getUsers(res: Response, email?: string, codiceUtente?: number, includeExtensionFields?: boolean, includeGrants?: boolean): Promise<Response<any, Record<string, any>>>;
16
- deleteUser(codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
17
- setStatoRegistrazione(body: SetStatoRegistrazioneDto, res: Response): Promise<Response<any, Record<string, any>>>;
16
+ getUsers(request: Request, res: Response, email?: string, codiceUtente?: number, includeExtensionFields?: boolean, includeGrants?: boolean): Promise<Response<any, Record<string, any>>>;
17
+ deleteUser(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
18
+ setStatoRegistrazione(request: Request, body: SetStatoRegistrazioneDto, res: Response): Promise<Response<any, Record<string, any>>>;
18
19
  register(request: Request, registrationData: RegisterRequest, res: Response): Promise<Response<any, Record<string, any>>>;
19
- updateUtente(codiceUtente: number, user: UserDto, res: Response): Promise<Response<any, Record<string, any>>>;
20
- setGdpr(codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
20
+ updateUtente(request: Request, codiceUtente: number, user: UserDto, res: Response): Promise<Response<any, Record<string, any>>>;
21
+ setGdpr(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
21
22
  }