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.
- package/README.MD +38 -34
- 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.js.map +1 -1
- package/dist/RoutesLoggerMiddleware.js.map +1 -1
- package/dist/Utilities.d.ts +18 -0
- package/dist/Utilities.js +90 -1
- package/dist/Utilities.js.map +1 -1
- package/dist/accessi-module/AccessiModule.d.ts +15 -0
- package/dist/accessi-module/AccessiModule.js.map +1 -1
- package/dist/accessi-module/Controllers/AuthController.d.ts +4 -4
- package/dist/accessi-module/Controllers/AuthController.js +36 -21
- 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.d.ts +3 -3
- package/dist/accessi-module/Controllers/EmailController.js +15 -15
- package/dist/accessi-module/Controllers/EmailController.js.map +1 -1
- package/dist/accessi-module/Controllers/FiltriController.d.ts +3 -3
- package/dist/accessi-module/Controllers/FiltriController.js +32 -15
- package/dist/accessi-module/Controllers/FiltriController.js.map +1 -1
- package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -17
- package/dist/accessi-module/Controllers/PermissionController.js +140 -124
- package/dist/accessi-module/Controllers/PermissionController.js.map +1 -1
- package/dist/accessi-module/Controllers/UserController.d.ts +12 -11
- package/dist/accessi-module/Controllers/UserController.js +112 -79
- 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 +6 -0
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +6 -0
- 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 +5 -0
- package/dist/accessi-module/Dtos/Permission.js.map +1 -1
- package/dist/accessi-module/Dtos/RegisterRequest.js +37 -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 +13 -2
- 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 +6 -0
- package/dist/accessi-module/Dtos/SetStatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/StatoRegistrazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoAbilitazione.js.map +1 -1
- package/dist/accessi-module/Dtos/TipoFiltro.js.map +1 -1
- package/dist/accessi-module/Dtos/TokenResult.js.map +1 -1
- package/dist/accessi-module/Dtos/UpdateEnabledStatusRequest.js.map +1 -1
- package/dist/accessi-module/Dtos/UserDto.js +59 -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 +8 -3
- package/dist/accessi-module/Services/AuthService/AuthService.js +159 -27
- 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 +44 -21
- 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.d.ts +15 -6
- package/dist/accessi-module/Services/UserService/UserService.js +165 -139
- package/dist/accessi-module/Services/UserService/UserService.js.map +1 -1
- package/dist/accessi-module/Views/reset-password.html +213 -195
- 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 +33 -4
- package/dist/accessi-module/index.js.map +1 -1
- package/dist/accessi-module/jwt/jwt.strategy.d.ts +4 -2
- package/dist/accessi-module/jwt/jwt.strategy.js +47 -19
- 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.d.ts +3 -1
- package/dist/accessi-module/middleware/authenticateGen.js +17 -11
- package/dist/accessi-module/middleware/authenticateGen.js.map +1 -1
- package/dist/accessi-module/security/accessControl.d.ts +17 -0
- package/dist/accessi-module/security/accessControl.js +44 -0
- package/dist/accessi-module/security/accessControl.js.map +1 -0
- package/dist/accessi-module/security/authenticatedToken.d.ts +11 -0
- package/dist/accessi-module/security/authenticatedToken.js +39 -0
- package/dist/accessi-module/security/authenticatedToken.js.map +1 -0
- package/dist/accessi-module/security/passwordResetToken.d.ts +8 -0
- package/dist/accessi-module/security/passwordResetToken.js +73 -0
- package/dist/accessi-module/security/passwordResetToken.js.map +1 -0
- package/dist/accessi-module/security/publicAuthRateLimit.d.ts +10 -0
- package/dist/accessi-module/security/publicAuthRateLimit.js +105 -0
- package/dist/accessi-module/security/publicAuthRateLimit.js.map +1 -0
- 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/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-1.8.0-dev.2.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmailController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/EmailController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6F;AAC7F,6CAAkG;AAElG,+BAA4B;AAC5B,+CAAgD;AAEhD,wEAAqE;
|
|
1
|
+
{"version":3,"file":"EmailController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/EmailController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Get, Inject, Param, Post, Query, Req, Res } from '@nestjs/common';\r\nimport { ApiBody, ApiOperation, ApiParam, ApiQuery, ApiResponse, ApiTags } from '@nestjs/swagger';\r\nimport { Request, Response } from 'express';\r\nimport { join } from 'path';\r\nimport { RestUtilities } from '../../Utilities';\r\nimport { AccessiOptions } from '../AccessiModule';\r\nimport { EmailService } from '../Services/EmailService/EmailService';\r\nimport {\r\n checkPublicAuthRateLimit,\r\n sendPublicAuthRateLimitExceeded,\r\n} from '../security/publicAuthRateLimit';\r\n\r\n@ApiTags('Email')\r\n@Controller('accessi/email')\r\nexport class EmailController {\r\n constructor(\r\n @Inject('ACCESSI_OPTIONS') private readonly accessiOptions: AccessiOptions,\r\n private readonly emailService: EmailService,\r\n ) {}\r\n\r\n @ApiOperation({\r\n summary: 'Serve una pagina per il reset della password',\r\n operationId: 'serveResetPasswordPage',\r\n })\r\n @ApiParam({ name: 'token', description: 'Token per il reset della password', required: true })\r\n @ApiQuery({\r\n name: 'returnUrl',\r\n description: 'Url di ritorno della pagina',\r\n required: false,\r\n })\r\n @ApiResponse({ status: 200, description: 'Pagina di reset password servita con successo' })\r\n @Get('reset-password-page/:token')\r\n async serveResetPasswordPage(\r\n @Res() res: Response,\r\n @Param('token') token: string,\r\n @Query('returnUrl') returnUrl?: string,\r\n ) {\r\n return res.sendFile(join(__dirname, '..', 'Views', 'reset-password.html'));\r\n }\r\n\r\n @ApiOperation({\r\n summary: 'Invia una e-mail per il reset della password',\r\n operationId: 'sendPasswordResetEmail',\r\n })\r\n @ApiBody({\r\n schema: {\r\n properties: {\r\n email: {\r\n type: 'string',\r\n description: \"L'email dell'utente che richiede il reset\",\r\n },\r\n },\r\n required: ['email'],\r\n },\r\n })\r\n @ApiResponse({ status: 200, description: \"L'email di reset e stata gestita con successo\" })\r\n @ApiResponse({\r\n status: 500,\r\n description: \"Errore interno durante l'invio dell'email\",\r\n })\r\n @Post('send-reset-password-email')\r\n async sendPasswordResetEmail(\r\n @Req() request: Request,\r\n @Body()\r\n sendResetPasswordData: {\r\n email: string;\r\n htmlMail?: string;\r\n },\r\n @Res() res: Response,\r\n ) {\r\n try {\r\n const rateLimitDecision = checkPublicAuthRateLimit(\r\n this.accessiOptions,\r\n 'passwordResetEmail',\r\n request,\r\n [sendResetPasswordData?.email],\r\n );\r\n if (!rateLimitDecision.allowed) {\r\n return sendPublicAuthRateLimitExceeded(res, rateLimitDecision.retryAfterSeconds);\r\n }\r\n\r\n await this.emailService.sendPasswordResetEmail(sendResetPasswordData.email);\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n \"Se l'account esiste, l'email di reset e stata inoltrata al destinatario.\",\r\n );\r\n } catch (error) {\r\n return RestUtilities.sendErrorMessage(res, error, EmailController.name);\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Response } from 'express';
|
|
1
|
+
import { Request, Response } from 'express';
|
|
2
2
|
import { AccessiOptions } from '../AccessiModule';
|
|
3
3
|
import { FiltriUtente, GetFiltriUtenteRequest } from '../Dtos';
|
|
4
4
|
import { FiltriService } from '../Services/FiltriService/FiltriService';
|
|
@@ -7,6 +7,6 @@ export declare class FiltriController {
|
|
|
7
7
|
private readonly options;
|
|
8
8
|
constructor(filtriService: FiltriService, options: AccessiOptions);
|
|
9
9
|
getTipoFiltri(res: Response): Promise<Response<any, Record<string, any>>>;
|
|
10
|
-
getFiltriUtente(res: Response, req: GetFiltriUtenteRequest): Promise<Response<any, Record<string, any>>>;
|
|
11
|
-
saveFiltriUtente(res: Response, req: FiltriUtente): Promise<Response<any, Record<string, any>>>;
|
|
10
|
+
getFiltriUtente(request: Request, res: Response, req: GetFiltriUtenteRequest): Promise<Response<any, Record<string, any>>>;
|
|
11
|
+
saveFiltriUtente(request: Request, res: Response, req: FiltriUtente): Promise<Response<any, Record<string, any>>>;
|
|
12
12
|
}
|
|
@@ -29,6 +29,8 @@ const Utilities_1 = require("../../Utilities");
|
|
|
29
29
|
const Dtos_1 = require("../Dtos");
|
|
30
30
|
const TipoFiltro_1 = require("../Dtos/TipoFiltro");
|
|
31
31
|
const FiltriService_1 = require("../Services/FiltriService/FiltriService");
|
|
32
|
+
const jwt_strategy_1 = require("../jwt/jwt.strategy");
|
|
33
|
+
const accessControl_1 = require("../security/accessControl");
|
|
32
34
|
let FiltriController = FiltriController_1 = class FiltriController {
|
|
33
35
|
constructor(filtriService, options) {
|
|
34
36
|
this.filtriService = filtriService;
|
|
@@ -45,11 +47,18 @@ let FiltriController = FiltriController_1 = class FiltriController {
|
|
|
45
47
|
}
|
|
46
48
|
});
|
|
47
49
|
}
|
|
48
|
-
getFiltriUtente(res, req) {
|
|
50
|
+
getFiltriUtente(request, res, req) {
|
|
49
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
52
|
try {
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
+
const authenticatedUser = (0, accessControl_1.getAuthenticatedAccessiUser)(request);
|
|
54
|
+
const targetUserCode = req === null || req === void 0 ? void 0 : req.codUte;
|
|
55
|
+
if (targetUserCode === undefined) {
|
|
56
|
+
(0, accessControl_1.ensureSuperUser)(authenticatedUser, 'Solo gli amministratori possono consultare i filtri di tutti gli utenti.');
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
(0, accessControl_1.ensureSelfOrSuperUser)(authenticatedUser, Number(targetUserCode), 'Puoi consultare solo i tuoi filtri.');
|
|
60
|
+
}
|
|
61
|
+
const response = yield this.filtriService.getFiltriUser(targetUserCode);
|
|
53
62
|
return Utilities_1.RestUtilities.sendBaseResponse(res, response);
|
|
54
63
|
}
|
|
55
64
|
catch (error) {
|
|
@@ -57,11 +66,15 @@ let FiltriController = FiltriController_1 = class FiltriController {
|
|
|
57
66
|
}
|
|
58
67
|
});
|
|
59
68
|
}
|
|
60
|
-
saveFiltriUtente(res, req) {
|
|
69
|
+
saveFiltriUtente(request, res, req) {
|
|
61
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
var _a;
|
|
62
72
|
try {
|
|
63
|
-
const
|
|
64
|
-
|
|
73
|
+
const authenticatedUser = (0, accessControl_1.getAuthenticatedAccessiUser)(request);
|
|
74
|
+
const targetUserCode = (_a = req === null || req === void 0 ? void 0 : req.codUte) !== null && _a !== void 0 ? _a : authenticatedUser.codiceUtente;
|
|
75
|
+
(0, accessControl_1.ensureSelfOrSuperUser)(authenticatedUser, Number(targetUserCode), 'Puoi modificare solo i tuoi filtri.');
|
|
76
|
+
yield this.filtriService.upsertFiltriUtente(targetUserCode, Object.assign(Object.assign({}, req), { codUte: targetUserCode }));
|
|
77
|
+
return Utilities_1.RestUtilities.sendOKMessage(res, `Aggiornamento filtri per l'utente ${targetUserCode} effettuato correttamente`);
|
|
65
78
|
}
|
|
66
79
|
catch (error) {
|
|
67
80
|
return Utilities_1.RestUtilities.sendErrorMessage(res, error, FiltriController_1.name);
|
|
@@ -100,13 +113,14 @@ __decorate([
|
|
|
100
113
|
}),
|
|
101
114
|
(0, swagger_1.ApiResponse)({
|
|
102
115
|
status: 200,
|
|
103
|
-
description:
|
|
116
|
+
description: "Lista dei filtri dell'utente recuperata con successo",
|
|
104
117
|
type: Dtos_1.GetFiltriUtenteResponse,
|
|
105
118
|
}),
|
|
106
|
-
__param(0, (0, common_1.
|
|
107
|
-
__param(1, (0, common_1.
|
|
119
|
+
__param(0, (0, common_1.Req)()),
|
|
120
|
+
__param(1, (0, common_1.Res)()),
|
|
121
|
+
__param(2, (0, common_1.Query)()),
|
|
108
122
|
__metadata("design:type", Function),
|
|
109
|
-
__metadata("design:paramtypes", [Object, Dtos_1.GetFiltriUtenteRequest]),
|
|
123
|
+
__metadata("design:paramtypes", [Object, Object, Dtos_1.GetFiltriUtenteRequest]),
|
|
110
124
|
__metadata("design:returntype", Promise)
|
|
111
125
|
], FiltriController.prototype, "getFiltriUtente", null);
|
|
112
126
|
__decorate([
|
|
@@ -114,25 +128,28 @@ __decorate([
|
|
|
114
128
|
(0, swagger_1.ApiOperation)({
|
|
115
129
|
operationId: 'saveFiltriUtente',
|
|
116
130
|
summary: 'Inserisce o aggiorna i filtri di un utente',
|
|
117
|
-
description: 'Permette di salvare
|
|
131
|
+
description: 'Permette di salvare i filtri associati ad un utente specifico',
|
|
118
132
|
}),
|
|
119
133
|
(0, swagger_1.ApiResponse)({
|
|
120
134
|
status: 200,
|
|
121
|
-
description: 'Filtri utente salvati con successo'
|
|
135
|
+
description: 'Filtri utente salvati con successo',
|
|
122
136
|
}),
|
|
123
137
|
(0, swagger_1.ApiResponse)({
|
|
124
138
|
status: 500,
|
|
125
139
|
description: 'Errore interno durante il salvataggio dei filtri utente',
|
|
126
140
|
}),
|
|
127
|
-
__param(0, (0, common_1.
|
|
128
|
-
__param(1, (0, common_1.
|
|
141
|
+
__param(0, (0, common_1.Req)()),
|
|
142
|
+
__param(1, (0, common_1.Res)()),
|
|
143
|
+
__param(2, (0, common_1.Body)()),
|
|
129
144
|
__metadata("design:type", Function),
|
|
130
|
-
__metadata("design:paramtypes", [Object, Dtos_1.FiltriUtente]),
|
|
145
|
+
__metadata("design:paramtypes", [Object, Object, Dtos_1.FiltriUtente]),
|
|
131
146
|
__metadata("design:returntype", Promise)
|
|
132
147
|
], FiltriController.prototype, "saveFiltriUtente", null);
|
|
133
148
|
exports.FiltriController = FiltriController = FiltriController_1 = __decorate([
|
|
134
149
|
(0, swagger_1.ApiTags)('Filtri'),
|
|
150
|
+
(0, swagger_1.ApiBearerAuth)(),
|
|
135
151
|
(0, common_1.Controller)('accessi/filtri'),
|
|
152
|
+
(0, common_1.UseGuards)(jwt_strategy_1.JwtSimpleGuard),
|
|
136
153
|
__param(1, (0, common_1.Inject)('ACCESSI_OPTIONS')),
|
|
137
154
|
__metadata("design:paramtypes", [FiltriService_1.FiltriService, Object])
|
|
138
155
|
], FiltriController);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltriController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/FiltriController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"FiltriController.js","sourceRoot":"","sources":["../../../src/accessi-module/Controllers/FiltriController.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Get, Inject, Post, Query, Req, Res, UseGuards } from '@nestjs/common';\r\nimport { ApiBearerAuth, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';\r\nimport { Request, Response } from 'express';\r\nimport { RestUtilities } from '../../Utilities';\r\nimport { AccessiOptions } from '../AccessiModule';\r\nimport { FiltriUtente, GetFiltriUtenteRequest, GetFiltriUtenteResponse } from '../Dtos';\r\nimport { GetFiltriResponse } from '../Dtos/TipoFiltro';\r\nimport { FiltriService } from '../Services/FiltriService/FiltriService';\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('Filtri')\r\n@ApiBearerAuth()\r\n@Controller('accessi/filtri')\r\n@UseGuards(JwtSimpleGuard)\r\nexport class FiltriController {\r\n constructor(\r\n private readonly filtriService: FiltriService,\r\n @Inject('ACCESSI_OPTIONS') private readonly options: AccessiOptions,\r\n ) {}\r\n\r\n @Get('tipi')\r\n @ApiOperation({\r\n operationId: 'getTipiFiltro',\r\n summary: 'Recupera la lista dei tipi di filtri',\r\n description: 'Ritorna tutti i tipi di filtri disponibili nel sistema',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: 'Lista dei tipi di filtri recuperata con successo',\r\n type: GetFiltriResponse,\r\n })\r\n @ApiResponse({\r\n status: 500,\r\n description: 'Errore interno durante il recupero dei tipi di filtri',\r\n })\r\n async getTipoFiltri(@Res() res: Response) {\r\n try {\r\n const response = await this.filtriService.getTipoFiltri();\r\n return RestUtilities.sendBaseResponse(res, response);\r\n } catch (error) {\r\n return RestUtilities.sendErrorMessage(res, error, FiltriController.name);\r\n }\r\n }\r\n\r\n @Get('utente')\r\n @ApiOperation({\r\n operationId: 'getFiltriUtente',\r\n summary: 'Recupera i filtri di un utente',\r\n description: 'Ritorna tutti i filtri associati ad un utente specifico',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: \"Lista dei filtri dell'utente recuperata con successo\",\r\n type: GetFiltriUtenteResponse,\r\n })\r\n async getFiltriUtente(\r\n @Req() request: Request,\r\n @Res() res: Response,\r\n @Query() req: GetFiltriUtenteRequest,\r\n ) {\r\n try {\r\n const authenticatedUser = getAuthenticatedAccessiUser(request);\r\n const targetUserCode = req?.codUte;\r\n\r\n if (targetUserCode === undefined) {\r\n ensureSuperUser(\r\n authenticatedUser,\r\n 'Solo gli amministratori possono consultare i filtri di tutti gli utenti.',\r\n );\r\n } else {\r\n ensureSelfOrSuperUser(\r\n authenticatedUser,\r\n Number(targetUserCode),\r\n 'Puoi consultare solo i tuoi filtri.',\r\n );\r\n }\r\n\r\n const response = await this.filtriService.getFiltriUser(targetUserCode);\r\n return RestUtilities.sendBaseResponse(res, response);\r\n } catch (error) {\r\n return RestUtilities.sendErrorMessage(res, error, FiltriController.name);\r\n }\r\n }\r\n\r\n @Post('utente')\r\n @ApiOperation({\r\n operationId: 'saveFiltriUtente',\r\n summary: 'Inserisce o aggiorna i filtri di un utente',\r\n description: 'Permette di salvare i filtri associati ad un utente specifico',\r\n })\r\n @ApiResponse({\r\n status: 200,\r\n description: 'Filtri utente salvati con successo',\r\n })\r\n @ApiResponse({\r\n status: 500,\r\n description: 'Errore interno durante il salvataggio dei filtri utente',\r\n })\r\n async saveFiltriUtente(\r\n @Req() request: Request,\r\n @Res() res: Response,\r\n @Body() req: FiltriUtente,\r\n ) {\r\n try {\r\n const authenticatedUser = getAuthenticatedAccessiUser(request);\r\n const targetUserCode = req?.codUte ?? authenticatedUser.codiceUtente;\r\n\r\n ensureSelfOrSuperUser(\r\n authenticatedUser,\r\n Number(targetUserCode),\r\n 'Puoi modificare solo i tuoi filtri.',\r\n );\r\n\r\n await this.filtriService.upsertFiltriUtente(targetUserCode, {\r\n ...req,\r\n codUte: targetUserCode,\r\n });\r\n return RestUtilities.sendOKMessage(\r\n res,\r\n `Aggiornamento filtri per l'utente ${targetUserCode} effettuato correttamente`,\r\n );\r\n } catch (error) {\r\n return RestUtilities.sendErrorMessage(res, error, FiltriController.name);\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1,24 +1,19 @@
|
|
|
1
|
-
import { Response } from 'express';
|
|
2
|
-
import { AccessiOptions } from '../AccessiModule';
|
|
3
|
-
import { PermissionService } from '../Services/PermissionService/PermissionService';
|
|
4
|
-
import { Role } from '../Dtos/Role';
|
|
5
|
-
import { AssignRolesToUserRequest } from '../Dtos/AssignRolesToUserRequest';
|
|
1
|
+
import { Request, Response } from 'express';
|
|
6
2
|
import { AssignPermissionsToUserRequest } from '../Dtos/AssignPermissionsToUserRequest';
|
|
3
|
+
import { AssignRolesToUserRequest } from '../Dtos/AssignRolesToUserRequest';
|
|
4
|
+
import { Role } from '../Dtos/Role';
|
|
5
|
+
import { PermissionService } from '../Services/PermissionService/PermissionService';
|
|
7
6
|
export declare class PermissionController {
|
|
8
7
|
private readonly permissionService;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @description Endpoint per ottenere tutti i ruoli con i relativi menù.
|
|
13
|
-
* @returns Un array di ruoli con menù associati.
|
|
14
|
-
*/
|
|
8
|
+
constructor(permissionService: PermissionService);
|
|
9
|
+
private sendControllerError;
|
|
15
10
|
getRoles(res: Response): Promise<void>;
|
|
16
|
-
updateRole(codiceRuolo: number, role: Role, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
17
|
-
createRole(res: Response, role: Role): Promise<Response<any, Record<string, any>>>;
|
|
18
|
-
assignRolesToUser(res: Response, codiceUtente: number, assignRolesRequest: AssignRolesToUserRequest): Promise<Response<any, Record<string, any>>>;
|
|
19
|
-
assignPermissionsToUser(res: Response, codiceUtente: number, assignPermissionsRequest: AssignPermissionsToUserRequest): Promise<Response<any, Record<string, any>>>;
|
|
20
|
-
deleteRole(codiceRuolo: number, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
11
|
+
updateRole(request: Request, codiceRuolo: number, role: Role, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
12
|
+
createRole(request: Request, res: Response, role: Role): Promise<Response<any, Record<string, any>>>;
|
|
13
|
+
assignRolesToUser(request: Request, res: Response, codiceUtente: number, assignRolesRequest: AssignRolesToUserRequest): Promise<Response<any, Record<string, any>>>;
|
|
14
|
+
assignPermissionsToUser(request: Request, res: Response, codiceUtente: number, assignPermissionsRequest: AssignPermissionsToUserRequest): Promise<Response<any, Record<string, any>>>;
|
|
15
|
+
deleteRole(request: Request, codiceRuolo: number, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
21
16
|
getMenus(res: Response): Promise<Response<any, Record<string, any>>>;
|
|
22
17
|
getGroupsWithMenus(includeDisabled: string, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
23
|
-
getUserRolesAndGrants(codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
18
|
+
getUserRolesAndGrants(request: Request, codiceUtente: number, res: Response): Promise<Response<any, Record<string, any>>>;
|
|
24
19
|
}
|