emilsoftware-utilities 1.3.97 → 1.3.98

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 (62) hide show
  1. package/dist/accessi-module/AccessiModule.js +2 -1
  2. package/dist/accessi-module/Controllers/AccessiController.d.ts +2 -2
  3. package/dist/accessi-module/Controllers/AccessiController.js +3 -2
  4. package/dist/accessi-module/Controllers/AuthController.js +15 -0
  5. package/dist/accessi-module/Controllers/EmailController.d.ts +1 -1
  6. package/dist/accessi-module/Controllers/EmailController.js +8 -2
  7. package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -2
  8. package/dist/accessi-module/Controllers/PermissionController.js +169 -16
  9. package/dist/accessi-module/Controllers/UserController.d.ts +17 -0
  10. package/dist/accessi-module/Controllers/UserController.js +185 -0
  11. package/dist/accessi-module/Dtos/Abilitazione.d.ts +6 -0
  12. package/dist/accessi-module/Dtos/Abilitazione.js +47 -0
  13. package/dist/accessi-module/Dtos/AbilitazioneMenu.d.ts +11 -0
  14. package/dist/accessi-module/Dtos/AbilitazioneMenu.js +91 -0
  15. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.d.ts +4 -0
  16. package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +28 -0
  17. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.d.ts +3 -0
  18. package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +24 -0
  19. package/dist/accessi-module/Dtos/FiltriUtente.d.ts +10 -0
  20. package/dist/accessi-module/Dtos/FiltriUtente.js +87 -0
  21. package/dist/accessi-module/Dtos/LoginRequest.d.ts +4 -0
  22. package/dist/accessi-module/Dtos/LoginRequest.js +35 -0
  23. package/dist/accessi-module/Dtos/LoginResult.d.ts +10 -0
  24. package/dist/accessi-module/Dtos/LoginResult.js +34 -0
  25. package/dist/accessi-module/Dtos/MenuItem.d.ts +6 -0
  26. package/dist/accessi-module/Dtos/MenuItem.js +33 -0
  27. package/dist/accessi-module/Dtos/Permission.d.ts +4 -0
  28. package/dist/accessi-module/Dtos/Permission.js +32 -0
  29. package/dist/accessi-module/Dtos/RoleWithMenus.d.ts +6 -0
  30. package/dist/accessi-module/Dtos/RoleWithMenus.js +32 -0
  31. package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +6 -0
  32. package/dist/accessi-module/{Services/PermissionService/IPermissionService.js → Dtos/TipoAbilitazione.js} +1 -1
  33. package/dist/accessi-module/Dtos/TokenResult.d.ts +5 -0
  34. package/dist/accessi-module/Dtos/TokenResult.js +38 -0
  35. package/dist/accessi-module/Dtos/User.d.ts +16 -0
  36. package/dist/accessi-module/Dtos/User.js +111 -0
  37. package/dist/accessi-module/Dtos/index.d.ts +14 -0
  38. package/dist/accessi-module/Dtos/index.js +30 -0
  39. package/dist/accessi-module/Services/AuthService/AuthService.d.ts +6 -5
  40. package/dist/accessi-module/Services/AuthService/AuthService.js +23 -19
  41. package/dist/accessi-module/Services/EmailService/EmailService.d.ts +1 -2
  42. package/dist/accessi-module/Services/EmailService/EmailService.js +1 -1
  43. package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +9 -5
  44. package/dist/accessi-module/Services/PermissionService/PermissionService.js +88 -5
  45. package/dist/accessi-module/Services/UserService/UserService.d.ts +8 -7
  46. package/dist/accessi-module/Services/UserService/UserService.js +4 -4
  47. package/dist/accessi-module/index.d.ts +1 -3
  48. package/dist/accessi-module/index.js +32 -15
  49. package/dist/accessi-module/models/QueryResults/MenuAbilitazioniResult.d.ts +1 -1
  50. package/dist/accessi-module/swagger/SwaggerConfig.js +3 -2
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.js +4 -4
  53. package/package.json +1 -1
  54. package/dist/accessi-module/Services/AuthService/IAuthService.d.ts +0 -64
  55. package/dist/accessi-module/Services/AuthService/IAuthService.js +0 -2
  56. package/dist/accessi-module/Services/EmailService/IEmailService.d.ts +0 -21
  57. package/dist/accessi-module/Services/EmailService/IEmailService.js +0 -2
  58. package/dist/accessi-module/Services/PermissionService/IPermissionService.d.ts +0 -59
  59. package/dist/accessi-module/Services/UserService/IUserService.d.ts +0 -110
  60. package/dist/accessi-module/Services/UserService/IUserService.js +0 -2
  61. /package/dist/accessi-module/{models → Dtos}/StatoRegistrazione.d.ts +0 -0
  62. /package/dist/accessi-module/{models → Dtos}/StatoRegistrazione.js +0 -0
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.User = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const StatoRegistrazione_1 = require("./StatoRegistrazione");
15
+ class User {
16
+ }
17
+ exports.User = User;
18
+ __decorate([
19
+ (0, swagger_1.ApiPropertyOptional)({
20
+ description: "Codice identificativo dell'utente",
21
+ example: "USR12345"
22
+ }),
23
+ __metadata("design:type", String)
24
+ ], User.prototype, "codiceUtente", void 0);
25
+ __decorate([
26
+ (0, swagger_1.ApiPropertyOptional)({
27
+ description: "Nome utente per l'autenticazione",
28
+ example: "m.rossi"
29
+ }),
30
+ __metadata("design:type", String)
31
+ ], User.prototype, "username", void 0);
32
+ __decorate([
33
+ (0, swagger_1.ApiPropertyOptional)({
34
+ description: "Flag per l'accettazione del GDPR",
35
+ example: true
36
+ }),
37
+ __metadata("design:type", Boolean)
38
+ ], User.prototype, "flagGdpr", void 0);
39
+ __decorate([
40
+ (0, swagger_1.ApiPropertyOptional)({
41
+ description: "Stato della registrazione dell'utente",
42
+ enum: StatoRegistrazione_1.StatoRegistrazione,
43
+ example: StatoRegistrazione_1.StatoRegistrazione.CONF
44
+ }),
45
+ __metadata("design:type", Number)
46
+ ], User.prototype, "statoRegistrazione", void 0);
47
+ __decorate([
48
+ (0, swagger_1.ApiPropertyOptional)({
49
+ description: "Cognome dell'utente",
50
+ example: "Rossi"
51
+ }),
52
+ __metadata("design:type", String)
53
+ ], User.prototype, "cognome", void 0);
54
+ __decorate([
55
+ (0, swagger_1.ApiPropertyOptional)({
56
+ description: "Nome dell'utente",
57
+ example: "Mario"
58
+ }),
59
+ __metadata("design:type", String)
60
+ ], User.prototype, "nome", void 0);
61
+ __decorate([
62
+ (0, swagger_1.ApiPropertyOptional)({
63
+ description: "URL dell'avatar dell'utente",
64
+ example: "https://example.com/avatar.jpg",
65
+ nullable: true
66
+ }),
67
+ __metadata("design:type", String)
68
+ ], User.prototype, "avatar", void 0);
69
+ __decorate([
70
+ (0, swagger_1.ApiPropertyOptional)({
71
+ description: "Indica se l'autenticazione a due fattori è attivata",
72
+ example: true
73
+ }),
74
+ __metadata("design:type", Boolean)
75
+ ], User.prototype, "flagDueFattori", void 0);
76
+ __decorate([
77
+ (0, swagger_1.ApiPropertyOptional)({
78
+ description: "Codice lingua preferito dall'utente",
79
+ example: "it"
80
+ }),
81
+ __metadata("design:type", String)
82
+ ], User.prototype, "codiceLingua", void 0);
83
+ __decorate([
84
+ (0, swagger_1.ApiPropertyOptional)({
85
+ description: "Numero di cellulare dell'utente",
86
+ example: "+393331234567",
87
+ nullable: true
88
+ }),
89
+ __metadata("design:type", String)
90
+ ], User.prototype, "cellulare", void 0);
91
+ __decorate([
92
+ (0, swagger_1.ApiPropertyOptional)({
93
+ description: "Indica se l'utente ha privilegi di superutente",
94
+ example: false
95
+ }),
96
+ __metadata("design:type", Boolean)
97
+ ], User.prototype, "flagSuper", void 0);
98
+ __decorate([
99
+ (0, swagger_1.ApiPropertyOptional)({
100
+ description: "Pagina di default visualizzata dall'utente dopo il login",
101
+ example: "/dashboard"
102
+ }),
103
+ __metadata("design:type", String)
104
+ ], User.prototype, "paginaDefault", void 0);
105
+ __decorate([
106
+ (0, swagger_1.ApiPropertyOptional)({
107
+ description: "Metadati non relazionali dell'utente",
108
+ example: "{ \"key\": \"value\" }",
109
+ }),
110
+ __metadata("design:type", String)
111
+ ], User.prototype, "jsonMetadata", void 0);
@@ -0,0 +1,14 @@
1
+ export * from "./Abilitazione";
2
+ export * from "./AbilitazioneMenu";
3
+ export * from "./AssignPermissionsToUserRequest";
4
+ export * from "./AssignRolesToUserRequest";
5
+ export * from "./FiltriUtente";
6
+ export * from "./LoginRequest";
7
+ export * from "./LoginResult";
8
+ export * from "./MenuItem";
9
+ export * from "./Permission";
10
+ export * from "./RoleWithMenus";
11
+ export * from "./StatoRegistrazione";
12
+ export * from "./TipoAbilitazione";
13
+ export * from "./TokenResult";
14
+ export * from "./User";
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Abilitazione"), exports);
18
+ __exportStar(require("./AbilitazioneMenu"), exports);
19
+ __exportStar(require("./AssignPermissionsToUserRequest"), exports);
20
+ __exportStar(require("./AssignRolesToUserRequest"), exports);
21
+ __exportStar(require("./FiltriUtente"), exports);
22
+ __exportStar(require("./LoginRequest"), exports);
23
+ __exportStar(require("./LoginResult"), exports);
24
+ __exportStar(require("./MenuItem"), exports);
25
+ __exportStar(require("./Permission"), exports);
26
+ __exportStar(require("./RoleWithMenus"), exports);
27
+ __exportStar(require("./StatoRegistrazione"), exports);
28
+ __exportStar(require("./TipoAbilitazione"), exports);
29
+ __exportStar(require("./TokenResult"), exports);
30
+ __exportStar(require("./User"), exports);
@@ -1,16 +1,17 @@
1
1
  import { AccessiOptions } from "../../AccessiModule";
2
- import { IAuthService, ILoginResult, LoginRequest } from "./IAuthService";
3
2
  import { UserService } from "../UserService/UserService";
4
3
  import { PermissionService } from "../PermissionService/PermissionService";
5
- export declare class AuthService implements IAuthService {
4
+ import { LoginRequest } from "../../Dtos/LoginRequest";
5
+ import { LoginResult } from "../../Dtos/LoginResult";
6
+ export declare class AuthService {
6
7
  private userService;
7
8
  private permissionService;
8
9
  private readonly accessiOptions;
9
10
  constructor(userService: UserService, permissionService: PermissionService, accessiOptions: AccessiOptions);
10
- login(request: LoginRequest): Promise<ILoginResult>;
11
+ login(request: LoginRequest): Promise<LoginResult>;
11
12
  setPassword(codiceUtente: string, nuovaPassword: string): Promise<any>;
12
13
  verifyPassword(codiceUtente: string, passwordCifrata: string): Promise<boolean>;
13
- getAdminUser(): ILoginResult;
14
- getDemoUser(): ILoginResult;
14
+ getAdminUser(): Promise<LoginResult>;
15
+ getDemoUser(): LoginResult;
15
16
  confirmResetPassword(token: string, newPassword: string): Promise<void>;
16
17
  }
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.AuthService = void 0;
25
25
  const Orm_1 = require("../../../Orm");
26
26
  const Utilities_1 = require("../../../Utilities");
27
- const StatoRegistrazione_1 = require("../../models/StatoRegistrazione");
27
+ const StatoRegistrazione_1 = require("../../Dtos/StatoRegistrazione");
28
28
  const common_1 = require("@nestjs/common");
29
29
  const UserService_1 = require("../UserService/UserService");
30
30
  const PermissionService_1 = require("../PermissionService/PermissionService");
@@ -90,24 +90,28 @@ let AuthService = class AuthService {
90
90
  });
91
91
  }
92
92
  getAdminUser() {
93
- return {
94
- utente: {
95
- codiceUtente: "6789",
96
- username: "admin",
97
- statoRegistrazione: StatoRegistrazione_1.StatoRegistrazione.CONF,
98
- cognome: "Admin",
99
- nome: "Admin",
100
- flagGdpr: true,
101
- avatar: "/path/to/avatar.jpg",
102
- flagDueFattori: false,
103
- codiceLingua: "IT",
104
- cellulare: "+391234567890",
105
- flagSuper: true,
106
- paginaDefault: "/home",
107
- },
108
- filtri: null,
109
- abilitazioni: []
110
- };
93
+ return __awaiter(this, void 0, void 0, function* () {
94
+ const abilitazioni = yield this.permissionService.getAbilitazioniMenu("6789", true);
95
+ const filtri = yield this.userService.getUserFilters("6789");
96
+ return {
97
+ utente: {
98
+ codiceUtente: "6789",
99
+ username: "admin",
100
+ statoRegistrazione: StatoRegistrazione_1.StatoRegistrazione.CONF,
101
+ cognome: "Admin",
102
+ nome: "Admin",
103
+ flagGdpr: true,
104
+ avatar: "/path/to/avatar.jpg",
105
+ flagDueFattori: false,
106
+ codiceLingua: "IT",
107
+ cellulare: "+391234567890",
108
+ flagSuper: true,
109
+ paginaDefault: "/home",
110
+ },
111
+ filtri,
112
+ abilitazioni
113
+ };
114
+ });
111
115
  }
112
116
  getDemoUser() {
113
117
  return {
@@ -1,6 +1,5 @@
1
1
  import { AccessiOptions } from '../../AccessiModule';
2
- import { IEmailService } from './IEmailService';
3
- export declare class EmailService implements IEmailService {
2
+ export declare class EmailService {
4
3
  private readonly accessiOptions;
5
4
  constructor(accessiOptions: AccessiOptions);
6
5
  sendAccountUpdateEmail(email: string, message: string): Promise<void>;
@@ -29,7 +29,7 @@ const nodemailer_1 = __importDefault(require("nodemailer"));
29
29
  const uuid_1 = require("uuid");
30
30
  const Orm_1 = require("../../../Orm");
31
31
  const common_1 = require("@nestjs/common");
32
- const StatoRegistrazione_1 = require("../../models/StatoRegistrazione");
32
+ const StatoRegistrazione_1 = require("../../Dtos/StatoRegistrazione");
33
33
  let EmailService = class EmailService {
34
34
  constructor(accessiOptions) {
35
35
  this.accessiOptions = accessiOptions;
@@ -1,11 +1,15 @@
1
1
  import { AccessiOptions } from "../../AccessiModule";
2
- import { IAbilitazioneMenu } from "../UserService/IUserService";
3
- import { IPermissionService, IRoleWithMenus } from "./IPermissionService";
4
- export declare class PermissionService implements IPermissionService {
2
+ import { Permission } from "../../Dtos";
3
+ import { AbilitazioneMenu } from "../../Dtos/AbilitazioneMenu";
4
+ import { RoleWithMenus } from "../../Dtos/RoleWithMenus";
5
+ export declare class PermissionService {
5
6
  private readonly accessiOptions;
6
7
  constructor(accessiOptions: AccessiOptions);
7
8
  addAbilitazioni(codiceUtente: string, menuAbilitazioni: any[]): Promise<void>;
8
9
  resetAbilitazioni(codiceUtente: string): Promise<void>;
9
- getRolesWithMenus(): Promise<IRoleWithMenus[]>;
10
- getAbilitazioniMenu(codiceUtente: string, isSuperAdmin: boolean): Promise<IAbilitazioneMenu[]>;
10
+ updateOrInsertRole(role: RoleWithMenus): Promise<void>;
11
+ getRolesWithMenus(): Promise<RoleWithMenus[]>;
12
+ getAbilitazioniMenu(codiceUtente: string, isSuperAdmin: boolean): Promise<AbilitazioneMenu[]>;
13
+ assignRolesToUser(codiceUtente: string, roles: string[]): Promise<void>;
14
+ assignPermissionsToUser(codiceUtente: string, permissions: Permission[]): Promise<void>;
11
15
  }
@@ -59,6 +59,33 @@ let PermissionService = class PermissionService {
59
59
  }
60
60
  });
61
61
  }
62
+ updateOrInsertRole(role) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ try {
65
+ let codiceRuolo;
66
+ if (!role.codiceRuolo) {
67
+ let createRoleQuery = `INSERT INTO RUOLI (DESRUO) VALUES (?) RETURNING CODRUO`;
68
+ let result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, createRoleQuery, [role.descrizioneRuolo]);
69
+ codiceRuolo = result[0].CODRUO;
70
+ console.log("CODICE RUOLO: ", result);
71
+ }
72
+ else {
73
+ let updateRoleQuery = `UPDATE RUOLI SET DESRUO = ? WHERE CODRUO = ?`;
74
+ yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, updateRoleQuery, [role.descrizioneRuolo, role.codiceRuolo]);
75
+ codiceRuolo = role.codiceRuolo;
76
+ let deleteRoleMenuQuery = `DELETE FROM RUOLI_MNU WHERE CODRUO = ?`;
77
+ yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, deleteRoleMenuQuery, [codiceRuolo]);
78
+ }
79
+ let createRoleMenuQuery = `INSERT INTO RUOLI_MNU (CODRUO, CODMNU, TIPABI) VALUES (?, ?, ?)`;
80
+ for (let menu of role.menu) {
81
+ yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, createRoleMenuQuery, [codiceRuolo, menu.codiceMenu, menu.tipoAbilitazione]);
82
+ }
83
+ }
84
+ catch (error) {
85
+ throw error;
86
+ }
87
+ });
88
+ }
62
89
  getRolesWithMenus() {
63
90
  return __awaiter(this, void 0, void 0, function* () {
64
91
  try {
@@ -76,7 +103,6 @@ let PermissionService = class PermissionService {
76
103
  `;
77
104
  let result = yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, []);
78
105
  result = result.map(Utilities_1.RestUtilities.convertKeysToCamelCase);
79
- console.log("RESULT: ", result);
80
106
  const ruoliMap = new Map();
81
107
  for (const row of result) {
82
108
  const { codiceRuolo, descrizioneRuolo, codiceMenu, descrizioneMenu, tipoAbilitazione } = row;
@@ -107,7 +133,7 @@ let PermissionService = class PermissionService {
107
133
  const query = isSuperAdmin
108
134
  ? `SELECT
109
135
  M.CODMNU AS codice_menu,
110
- 10 AS tipo_abilitazione,
136
+ 30 AS tipo_abilitazione,
111
137
  M.DESMNU AS descrizione_menu,
112
138
  G.DESGRP AS descrizione_gruppo,
113
139
  G.CODGRP AS codice_gruppo,
@@ -117,7 +143,8 @@ let PermissionService = class PermissionService {
117
143
  FROM MENU M
118
144
  INNER JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
119
145
  WHERE M.FLGENABLED = 1 AND G.FLGENABLED = 1`
120
- : `SELECT
146
+ : `WITH AbilitazioniTotali AS (
147
+ SELECT
121
148
  A.CODMNU AS codice_menu,
122
149
  A.TIPABI AS tipo_abilitazione,
123
150
  M.DESMNU AS descrizione_menu,
@@ -129,11 +156,67 @@ let PermissionService = class PermissionService {
129
156
  FROM ABILITAZIONI A
130
157
  INNER JOIN MENU M ON A.CODMNU = M.CODMNU
131
158
  INNER JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
132
- WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND G.FLGENABLED = 1`;
133
- return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, isSuperAdmin ? [] : [codiceUtente])
159
+ WHERE A.CODUTE = ? AND M.FLGENABLED = 1 AND G.FLGENABLED = 1
160
+
161
+ UNION ALL
162
+
163
+ SELECT
164
+ RM.CODMNU AS codice_menu,
165
+ 5 AS tipo_abilitazione,
166
+ M.DESMNU AS descrizione_menu,
167
+ G.DESGRP AS descrizione_gruppo,
168
+ G.CODGRP AS codice_gruppo,
169
+ M.ICON AS icona,
170
+ M.CODTIP AS tipo,
171
+ M.PAGINA AS pagina
172
+ FROM RUOLI_UTENTI RU
173
+ INNER JOIN RUOLI R ON RU.CODRUL = R.CODRUL
174
+ INNER JOIN RUOLI_MENU RM ON R.CODRUL = RM.CODRUL
175
+ INNER JOIN MENU M ON RM.CODMNU = M.CODMNU
176
+ INNER JOIN MENU_GRP G ON G.CODGRP = M.CODGRP
177
+ WHERE RU.CODUTE = ? AND M.FLGENABLED = 1 AND G.FLGENABLED = 1
178
+ )
179
+ SELECT codice_menu, tipo_abilitazione, descrizione_menu, descrizione_gruppo, codice_gruppo, icona, tipo, pagina
180
+ FROM (
181
+ SELECT *, ROW_NUMBER() OVER (PARTITION BY codice_menu ORDER BY tipo_abilitazione DESC) AS row_num
182
+ FROM AbilitazioniTotali
183
+ ) AS Ranked
184
+ WHERE row_num = 1`;
185
+ const queryParams = isSuperAdmin ? [] : [codiceUtente, codiceUtente];
186
+ return yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, query, queryParams)
134
187
  .then(results => results.map(Utilities_1.RestUtilities.convertKeysToCamelCase));
135
188
  });
136
189
  }
190
+ assignRolesToUser(codiceUtente, roles) {
191
+ return __awaiter(this, void 0, void 0, function* () {
192
+ try {
193
+ const deleteQuery = `DELETE FROM UTENTI_RUOLI WHERE CODUTE = ?`;
194
+ yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, deleteQuery, [codiceUtente]);
195
+ const insertQuery = `INSERT INTO UTENTI_RUOLI (CODUTE, CODRUO) VALUES (?, ?)`;
196
+ for (const codiceRuolo of roles) {
197
+ yield Orm_1.Orm.query(this.accessiOptions.databaseOptions, insertQuery, [codiceUtente, codiceRuolo]);
198
+ }
199
+ }
200
+ catch (error) {
201
+ throw error;
202
+ }
203
+ });
204
+ }
205
+ assignPermissionsToUser(codiceUtente, permissions) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ try {
208
+ const deleteQuery = `DELETE FROM ABILITAZIONI WHERE CODUTE = ?`;
209
+ yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, deleteQuery, [codiceUtente]);
210
+ const insertQuery = `INSERT INTO ABILITAZIONI (CODUTE, CODMNU, TIPABI) VALUES (?, ?, ?)`;
211
+ for (const permission of permissions) {
212
+ yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, insertQuery, [codiceUtente, permission.codiceMenu, permission.tipoAbilitazione]);
213
+ }
214
+ }
215
+ catch (error) {
216
+ throw error;
217
+ }
218
+ });
219
+ }
137
220
  };
138
221
  exports.PermissionService = PermissionService;
139
222
  exports.PermissionService = PermissionService = __decorate([
@@ -1,9 +1,10 @@
1
1
  import { AccessiOptions } from "../../AccessiModule";
2
2
  import { UserQueryResult } from "../../models/QueryResults/UserQueryResult";
3
- import { StatoRegistrazione } from "../../models/StatoRegistrazione";
4
- import { IFiltriUtente, IUser, IUserService } from "./IUserService";
3
+ import { StatoRegistrazione } from "../../Dtos/StatoRegistrazione";
5
4
  import { EmailService } from "../EmailService/EmailService";
6
- export declare class UserService implements IUserService {
5
+ import { User } from "../../Dtos/User";
6
+ import { FiltriUtente } from "../../Dtos/FiltriUtente";
7
+ export declare class UserService {
7
8
  private readonly accessiOptions;
8
9
  private readonly emailService;
9
10
  constructor(accessiOptions: AccessiOptions, emailService: EmailService);
@@ -11,11 +12,11 @@ export declare class UserService implements IUserService {
11
12
  getCodiceUtenteByUsername(username: string): Promise<{
12
13
  codiceUtente: string;
13
14
  }>;
14
- getUserByUsername(username: string): Promise<IUser | null>;
15
- getUserFilters(codiceUtente: string): Promise<IFiltriUtente[]>;
16
- register(registrationData: IUser): Promise<void>;
15
+ getUserByUsername(username: string): Promise<User | null>;
16
+ getUserFilters(codiceUtente: string): Promise<FiltriUtente[]>;
17
+ register(registrationData: User): Promise<void>;
17
18
  setRegistrazioneConfermata(userKey: string): Promise<void>;
18
- updateUser(user: UserQueryResult): Promise<void>;
19
+ updateUser(user: User): Promise<void>;
19
20
  deleteUser(codiceCliente: string): Promise<void>;
20
21
  setGdpr(codiceUtente: string): Promise<any>;
21
22
  setStatoRegistrazione(statoRegistrazione: StatoRegistrazione, codiceUtente: string): Promise<any>;
@@ -26,7 +26,7 @@ const common_1 = require("@nestjs/common");
26
26
  const autobind_1 = require("../../../autobind");
27
27
  const Orm_1 = require("../../../Orm");
28
28
  const Utilities_1 = require("../../../Utilities");
29
- const StatoRegistrazione_1 = require("../../models/StatoRegistrazione");
29
+ const StatoRegistrazione_1 = require("../../Dtos/StatoRegistrazione");
30
30
  const EmailService_1 = require("../EmailService/EmailService");
31
31
  let UserService = class UserService {
32
32
  constructor(accessiOptions, emailService) {
@@ -163,15 +163,15 @@ let UserService = class UserService {
163
163
  throw new Error("Impossibile aggiornare senza codice utente.");
164
164
  const queryUtenti = `
165
165
  UPDATE UTENTI
166
- SET usrname = ?, flggdpr = ?, datgdpr=?, datins=?, datscapwd=?, stareg=?
166
+ SET usrname = ?, flggdpr = ?, stareg=?
167
167
  WHERE CODUTE = ?`;
168
- const paramsUtenti = [user.username, user.flagGdpr, user.dataGdpr, user.dataInserimento, user.dataScadenzaPassword, user.statoRegistrazione, user.codiceUtente];
168
+ const paramsUtenti = [user.username, user.flagGdpr, user.statoRegistrazione, user.codiceUtente];
169
169
  yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, queryUtenti, paramsUtenti);
170
170
  const queryUtentiConfig = `
171
171
  UPDATE UTENTI_CONFIG
172
172
  SET cognome = ?, nome = ?, avatar=?, flg2fatt=?, codlingua=?, cellulare=?, flgsuper=?, pagdef=?, json_metadata=?
173
173
  WHERE CODUTE = ?`;
174
- const paramsUtentiConfig = [user.cognome, user.nome, user.avatar, user.flagDueFattori, user.codiceLingua, user.cellulare, user.flagSuper, user.pagDef, user.jsonMetadata, user.codiceUtente];
174
+ const paramsUtentiConfig = [user.cognome, user.nome, user.avatar, user.flagDueFattori, user.codiceLingua, user.cellulare, user.flagSuper, user.paginaDefault, user.jsonMetadata, user.codiceUtente];
175
175
  yield Orm_1.Orm.execute(this.accessiOptions.databaseOptions, queryUtentiConfig, paramsUtentiConfig);
176
176
  }
177
177
  catch (error) {
@@ -2,6 +2,4 @@ import { Application } from "express";
2
2
  import { AccessiOptions } from "./AccessiModule";
3
3
  export declare function initializeAccessiModule(app: Application, options: AccessiOptions): Promise<void>;
4
4
  export { AccessiModule } from "./AccessiModule";
5
- export { StatoRegistrazione } from "./models/StatoRegistrazione";
6
- export { ILoginResult } from "./Services/AuthService/IAuthService";
7
- export { IRoleWithMenus } from "./Services/PermissionService/IPermissionService";
5
+ export * from "./Dtos";
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
17
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
18
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -9,7 +23,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
23
  });
10
24
  };
11
25
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.StatoRegistrazione = exports.AccessiModule = void 0;
26
+ exports.AccessiModule = void 0;
13
27
  exports.initializeAccessiModule = initializeAccessiModule;
14
28
  const core_1 = require("@nestjs/core");
15
29
  const platform_express_1 = require("@nestjs/platform-express");
@@ -30,23 +44,27 @@ function initializeAccessiModule(app, options) {
30
44
  });
31
45
  (0, SwaggerConfig_1.setupSwagger)(nestApp);
32
46
  yield nestApp.init();
33
- console.log('Verifica API NestJS registrate:');
47
+ /*
48
+ console.log('Verifica API NestJS registrate:');
34
49
  const server = nestApp.getHttpAdapter().getInstance();
35
50
  const router = server.router;
36
- const availableRoutes = router.stack
51
+
52
+
53
+ const availableRoutes: [] = router.stack
37
54
  .map(layer => {
38
- var _a, _b;
39
- if (layer.route) {
40
- return {
41
- route: {
42
- path: (_a = layer.route) === null || _a === void 0 ? void 0 : _a.path,
43
- method: (_b = layer.route) === null || _b === void 0 ? void 0 : _b.stack[0].method,
44
- },
45
- };
46
- }
47
- })
55
+ if (layer.route) {
56
+ return {
57
+ route: {
58
+ path: layer.route?.path,
59
+ method: layer.route?.stack[0].method,
60
+ },
61
+ };
62
+ }
63
+ })
48
64
  .filter(item => item !== undefined);
49
65
  console.log(availableRoutes);
66
+
67
+ */
50
68
  }
51
69
  catch (error) {
52
70
  console.error("Errore in initialize AccessiModule:", error);
@@ -56,5 +74,4 @@ function initializeAccessiModule(app, options) {
56
74
  }
57
75
  var AccessiModule_2 = require("./AccessiModule");
58
76
  Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return AccessiModule_2.AccessiModule; } });
59
- var StatoRegistrazione_1 = require("./models/StatoRegistrazione");
60
- Object.defineProperty(exports, "StatoRegistrazione", { enumerable: true, get: function () { return StatoRegistrazione_1.StatoRegistrazione; } });
77
+ __exportStar(require("./Dtos"), exports);
@@ -1,4 +1,4 @@
1
- import { TipoAbilitazione } from "../../Services/PermissionService/IPermissionService";
1
+ import { TipoAbilitazione } from "../../Dtos/TipoAbilitazione";
2
2
  export interface MenuAbilitazioniResult {
3
3
  codiceMnu: string;
4
4
  tipoAbilitazione: TipoAbilitazione;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setupSwagger = setupSwagger;
4
4
  const swagger_1 = require("@nestjs/swagger");
5
+ const swaggerUrl = "swagger/accessi";
5
6
  function setupSwagger(app) {
6
7
  const config = new swagger_1.DocumentBuilder()
7
8
  .setTitle("Accessi API")
@@ -10,6 +11,6 @@ function setupSwagger(app) {
10
11
  .addBearerAuth() // Per abilitare l'autenticazione JWT
11
12
  .build();
12
13
  const document = swagger_1.SwaggerModule.createDocument(app, config);
13
- swagger_1.SwaggerModule.setup("swagger", app, document);
14
- console.log("✅ Swagger disponibile su: http://localhost:3000/swagger");
14
+ swagger_1.SwaggerModule.setup(swaggerUrl, app, document);
15
+ console.log("✅ Swagger disponibile su: http://localhost:3000/" + swaggerUrl);
15
16
  }
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ import { Orm } from "./Orm";
5
5
  import { DateUtilities, RestUtilities, DatabaseUtilities, StatusCode } from "./Utilities";
6
6
  import { autobind } from "./autobind";
7
7
  import { DocumentGenerator } from "./ContractGenerator";
8
- export { AccessiModule, StatoRegistrazione, ILoginResult, IRoleWithMenus } from "./accessi-module";
8
+ export { RoleWithMenus } from "./accessi-module/Dtos/RoleWithMenus";
9
+ export * from "./accessi-module";
9
10
  export * from "es-node-firebird";
10
11
  export { autobind, ExecutionTimeLogger, Logger, LogLevels, Orm, DateUtilities, RestUtilities, DatabaseUtilities, DatabaseUpdater, StatusCode, DocumentGenerator };
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.DocumentGenerator = exports.StatusCode = exports.DatabaseUpdater = exports.DatabaseUtilities = exports.RestUtilities = exports.DateUtilities = exports.Orm = exports.LogLevels = exports.Logger = exports.ExecutionTimeLogger = exports.autobind = exports.StatoRegistrazione = exports.AccessiModule = void 0;
17
+ exports.DocumentGenerator = exports.StatusCode = exports.DatabaseUpdater = exports.DatabaseUtilities = exports.RestUtilities = exports.DateUtilities = exports.Orm = exports.LogLevels = exports.Logger = exports.ExecutionTimeLogger = exports.autobind = exports.RoleWithMenus = void 0;
18
18
  const DatabaseUpdater_1 = require("./DatabaseUpdater");
19
19
  Object.defineProperty(exports, "DatabaseUpdater", { enumerable: true, get: function () { return DatabaseUpdater_1.DatabaseUpdater; } });
20
20
  const ExecutionTimeLogger_1 = require("./ExecutionTimeLogger");
@@ -33,7 +33,7 @@ const autobind_1 = require("./autobind");
33
33
  Object.defineProperty(exports, "autobind", { enumerable: true, get: function () { return autobind_1.autobind; } });
34
34
  const ContractGenerator_1 = require("./ContractGenerator");
35
35
  Object.defineProperty(exports, "DocumentGenerator", { enumerable: true, get: function () { return ContractGenerator_1.DocumentGenerator; } });
36
- var accessi_module_1 = require("./accessi-module");
37
- Object.defineProperty(exports, "AccessiModule", { enumerable: true, get: function () { return accessi_module_1.AccessiModule; } });
38
- Object.defineProperty(exports, "StatoRegistrazione", { enumerable: true, get: function () { return accessi_module_1.StatoRegistrazione; } });
36
+ var RoleWithMenus_1 = require("./accessi-module/Dtos/RoleWithMenus");
37
+ Object.defineProperty(exports, "RoleWithMenus", { enumerable: true, get: function () { return RoleWithMenus_1.RoleWithMenus; } });
38
+ __exportStar(require("./accessi-module"), exports);
39
39
  __exportStar(require("es-node-firebird"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "emilsoftware-utilities",
3
- "version": "1.3.97",
3
+ "version": "1.3.98",
4
4
  "description": "Utilities for EmilSoftware",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",