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.
- package/dist/accessi-module/AccessiModule.js +2 -1
- package/dist/accessi-module/Controllers/AccessiController.d.ts +2 -2
- package/dist/accessi-module/Controllers/AccessiController.js +3 -2
- package/dist/accessi-module/Controllers/AuthController.js +15 -0
- package/dist/accessi-module/Controllers/EmailController.d.ts +1 -1
- package/dist/accessi-module/Controllers/EmailController.js +8 -2
- package/dist/accessi-module/Controllers/PermissionController.d.ts +12 -2
- package/dist/accessi-module/Controllers/PermissionController.js +169 -16
- package/dist/accessi-module/Controllers/UserController.d.ts +17 -0
- package/dist/accessi-module/Controllers/UserController.js +185 -0
- package/dist/accessi-module/Dtos/Abilitazione.d.ts +6 -0
- package/dist/accessi-module/Dtos/Abilitazione.js +47 -0
- package/dist/accessi-module/Dtos/AbilitazioneMenu.d.ts +11 -0
- package/dist/accessi-module/Dtos/AbilitazioneMenu.js +91 -0
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/AssignPermissionsToUserRequest.js +28 -0
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.d.ts +3 -0
- package/dist/accessi-module/Dtos/AssignRolesToUserRequest.js +24 -0
- package/dist/accessi-module/Dtos/FiltriUtente.d.ts +10 -0
- package/dist/accessi-module/Dtos/FiltriUtente.js +87 -0
- package/dist/accessi-module/Dtos/LoginRequest.d.ts +4 -0
- package/dist/accessi-module/Dtos/LoginRequest.js +35 -0
- package/dist/accessi-module/Dtos/LoginResult.d.ts +10 -0
- package/dist/accessi-module/Dtos/LoginResult.js +34 -0
- package/dist/accessi-module/Dtos/MenuItem.d.ts +6 -0
- package/dist/accessi-module/Dtos/MenuItem.js +33 -0
- package/dist/accessi-module/Dtos/Permission.d.ts +4 -0
- package/dist/accessi-module/Dtos/Permission.js +32 -0
- package/dist/accessi-module/Dtos/RoleWithMenus.d.ts +6 -0
- package/dist/accessi-module/Dtos/RoleWithMenus.js +32 -0
- package/dist/accessi-module/Dtos/TipoAbilitazione.d.ts +6 -0
- package/dist/accessi-module/{Services/PermissionService/IPermissionService.js → Dtos/TipoAbilitazione.js} +1 -1
- package/dist/accessi-module/Dtos/TokenResult.d.ts +5 -0
- package/dist/accessi-module/Dtos/TokenResult.js +38 -0
- package/dist/accessi-module/Dtos/User.d.ts +16 -0
- package/dist/accessi-module/Dtos/User.js +111 -0
- package/dist/accessi-module/Dtos/index.d.ts +14 -0
- package/dist/accessi-module/Dtos/index.js +30 -0
- package/dist/accessi-module/Services/AuthService/AuthService.d.ts +6 -5
- package/dist/accessi-module/Services/AuthService/AuthService.js +23 -19
- package/dist/accessi-module/Services/EmailService/EmailService.d.ts +1 -2
- package/dist/accessi-module/Services/EmailService/EmailService.js +1 -1
- package/dist/accessi-module/Services/PermissionService/PermissionService.d.ts +9 -5
- package/dist/accessi-module/Services/PermissionService/PermissionService.js +88 -5
- package/dist/accessi-module/Services/UserService/UserService.d.ts +8 -7
- package/dist/accessi-module/Services/UserService/UserService.js +4 -4
- package/dist/accessi-module/index.d.ts +1 -3
- package/dist/accessi-module/index.js +32 -15
- package/dist/accessi-module/models/QueryResults/MenuAbilitazioniResult.d.ts +1 -1
- package/dist/accessi-module/swagger/SwaggerConfig.js +3 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -4
- package/package.json +1 -1
- package/dist/accessi-module/Services/AuthService/IAuthService.d.ts +0 -64
- package/dist/accessi-module/Services/AuthService/IAuthService.js +0 -2
- package/dist/accessi-module/Services/EmailService/IEmailService.d.ts +0 -21
- package/dist/accessi-module/Services/EmailService/IEmailService.js +0 -2
- package/dist/accessi-module/Services/PermissionService/IPermissionService.d.ts +0 -59
- package/dist/accessi-module/Services/UserService/IUserService.d.ts +0 -110
- package/dist/accessi-module/Services/UserService/IUserService.js +0 -2
- /package/dist/accessi-module/{models → Dtos}/StatoRegistrazione.d.ts +0 -0
- /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
|
-
|
|
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<
|
|
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():
|
|
14
|
-
getDemoUser():
|
|
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("../../
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
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("../../
|
|
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 {
|
|
3
|
-
import {
|
|
4
|
-
|
|
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
|
-
|
|
10
|
-
|
|
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
|
-
|
|
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
|
-
: `
|
|
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
|
-
|
|
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 "../../
|
|
4
|
-
import { IFiltriUtente, IUser, IUserService } from "./IUserService";
|
|
3
|
+
import { StatoRegistrazione } from "../../Dtos/StatoRegistrazione";
|
|
5
4
|
import { EmailService } from "../EmailService/EmailService";
|
|
6
|
-
|
|
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<
|
|
15
|
-
getUserFilters(codiceUtente: string): Promise<
|
|
16
|
-
register(registrationData:
|
|
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:
|
|
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("../../
|
|
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 = ?,
|
|
166
|
+
SET usrname = ?, flggdpr = ?, stareg=?
|
|
167
167
|
WHERE CODUTE = ?`;
|
|
168
|
-
const paramsUtenti = [user.username, user.flagGdpr, user.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
47
|
+
/*
|
|
48
|
+
console.log('Verifica API NestJS registrate:');
|
|
34
49
|
const server = nestApp.getHttpAdapter().getInstance();
|
|
35
50
|
const router = server.router;
|
|
36
|
-
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
const availableRoutes: [] = router.stack
|
|
37
54
|
.map(layer => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
60
|
-
Object.defineProperty(exports, "StatoRegistrazione", { enumerable: true, get: function () { return StatoRegistrazione_1.StatoRegistrazione; } });
|
|
77
|
+
__exportStar(require("./Dtos"), exports);
|
|
@@ -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(
|
|
14
|
-
console.log("✅ Swagger disponibile su: http://localhost:3000/
|
|
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 {
|
|
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.
|
|
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
|
|
37
|
-
Object.defineProperty(exports, "
|
|
38
|
-
|
|
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);
|