monkey-front-core 0.0.355 → 0.0.357
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/esm2020/lib/core/services/auth/monkeyecx-auth-guard-role.service.mjs +70 -11
- package/fesm2015/monkey-front-core.mjs +71 -12
- package/fesm2015/monkey-front-core.mjs.map +1 -1
- package/fesm2020/monkey-front-core.mjs +67 -10
- package/fesm2020/monkey-front-core.mjs.map +1 -1
- package/lib/core/services/auth/monkeyecx-auth-guard-role.service.d.ts +16 -0
- package/monkey-front-core-0.0.357.tgz +0 -0
- package/package.json +1 -1
- package/monkey-front-core-0.0.355.tgz +0 -0
|
@@ -1,27 +1,86 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../storage";
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
3
5
|
export class MonkeyEcxAuthGuardByRole {
|
|
4
|
-
constructor() {
|
|
6
|
+
constructor(tokenStorage, router) {
|
|
7
|
+
this.tokenStorage = tokenStorage;
|
|
8
|
+
this.router = router;
|
|
9
|
+
this.securityCredentials = null;
|
|
10
|
+
this.tokenCredentials = null;
|
|
5
11
|
// not to do
|
|
6
12
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
navigateToErrorPage() {
|
|
14
|
+
const { tokenCredentials } = this;
|
|
15
|
+
const companyType = tokenCredentials?.companyType;
|
|
16
|
+
let path = '/app/pages/forbidden';
|
|
17
|
+
if (companyType) {
|
|
18
|
+
path = `/app/${companyType}/pages/forbidden`;
|
|
19
|
+
}
|
|
20
|
+
this.router?.navigate([path.toLowerCase()]);
|
|
21
|
+
}
|
|
22
|
+
getRole() {
|
|
23
|
+
const { tokenCredentials } = this;
|
|
24
|
+
if (!tokenCredentials)
|
|
25
|
+
return '';
|
|
26
|
+
if (tokenCredentials?.programAdmin === 'true') {
|
|
27
|
+
return 'PROGRAM_ADMIN';
|
|
28
|
+
}
|
|
29
|
+
if (tokenCredentials?.programAdmin === true) {
|
|
30
|
+
return 'PROGRAM_ADMIN';
|
|
31
|
+
}
|
|
32
|
+
return tokenCredentials?.role || '';
|
|
33
|
+
}
|
|
34
|
+
allowedSecurityAccess(roles, byExclusion) {
|
|
35
|
+
if (!roles?.length)
|
|
36
|
+
return true;
|
|
37
|
+
const found = roles?.indexOf(this.getRole());
|
|
38
|
+
let ret = false;
|
|
39
|
+
if (byExclusion) {
|
|
40
|
+
ret = true;
|
|
41
|
+
if (found > -1) {
|
|
42
|
+
ret = false;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
ret = false;
|
|
47
|
+
if (found > -1) {
|
|
48
|
+
ret = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {
|
|
52
|
+
ret = true;
|
|
53
|
+
}
|
|
54
|
+
return ret;
|
|
55
|
+
}
|
|
56
|
+
async canActivate(route, state) {
|
|
57
|
+
this.securityCredentials = route.data?.securityCredentials;
|
|
58
|
+
console.log('this.securityCredentials');
|
|
59
|
+
console.log(this.securityCredentials);
|
|
60
|
+
if (this.securityCredentials) {
|
|
61
|
+
const { roles, byExclusion } = this.securityCredentials;
|
|
62
|
+
if (!this.tokenCredentials) {
|
|
63
|
+
this.tokenCredentials = await this.tokenStorage.getToken();
|
|
11
64
|
}
|
|
12
|
-
|
|
13
|
-
|
|
65
|
+
console.log('this.tokenCredentials');
|
|
66
|
+
console.log(this.tokenCredentials);
|
|
67
|
+
console.log('checando');
|
|
68
|
+
if (!this.allowedSecurityAccess(roles, byExclusion)) {
|
|
69
|
+
console.log('checou erro');
|
|
70
|
+
this.navigateToErrorPage();
|
|
71
|
+
return false;
|
|
14
72
|
}
|
|
73
|
+
console.log('checou ok');
|
|
15
74
|
}
|
|
16
|
-
return
|
|
75
|
+
return true;
|
|
17
76
|
}
|
|
18
77
|
}
|
|
19
|
-
MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [{ token: i1.MonkeyEcxTokenStorageService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
79
|
MonkeyEcxAuthGuardByRole.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, providedIn: 'root' });
|
|
21
80
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, decorators: [{
|
|
22
81
|
type: Injectable,
|
|
23
82
|
args: [{
|
|
24
83
|
providedIn: 'root'
|
|
25
84
|
}]
|
|
26
|
-
}], ctorParameters: function () { return []; } });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGgvbW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7UUFDRSxZQUFZO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBZSxFQUFFLFdBQW9CLEVBQUUsV0FBcUI7UUFDMUUsTUFBTSxTQUFTO1lBQ2I7Z0JBQ0UsWUFBWTtZQUNkLENBQUM7WUFFRCxLQUFLLENBQUMsV0FBVztnQkFDZixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3FIQWpCVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZEJ5Um9sZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIG5vdCB0byBkb1xuICB9XG5cbiAgc3RhdGljIGZvclJvbGVzKHJvbGVzOiBzdHJpbmdbXSwgY29tcGFueVR5cGU/OiBzdHJpbmcsIGJ5RXhjbHVzaW9uPzogYm9vbGVhbikge1xuICAgIGNsYXNzIFJvbGVDaGVjayBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvLyBub3QgdG8gZG9cbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2FuQWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSb2xlQ2hlY2s7XG4gIH1cbn1cblxuLyogQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4QXV0aEd1YXJkQnlSb2xlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBzdGF0aWMgZm9yUm9sZXMocm9sZXM6IHN0cmluZ1tdLCBjb21wYW55VHlwZT86IHN0cmluZywgYnlFeGNsdXNpb24/OiBib29sZWFuKSB7XG4gICAgQEluamVjdGFibGUoe1xuICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gICAgfSlcbiAgICBjbGFzcyBSb2xlQ2hlY2sgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gICAgICBwcml2YXRlIHRva2VuQ3JlZGVudGlhbHM6IGFueSA9IG51bGw7XG5cbiAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZTogTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICAgICApIHtcbiAgICAgICAgLy8gbm90IHRvIGRvXG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgbmF2aWdhdGVUb0Vycm9yUGFnZSgpIHtcbiAgICAgICAgbGV0IHBhdGggPSAnL2FwcC9wYWdlcy9mb3JiaWRkZW4nO1xuICAgICAgICBpZiAoY29tcGFueVR5cGUpIHtcbiAgICAgICAgICBwYXRoID0gYC9hcHAvJHtjb21wYW55VHlwZX0vcGFnZXMvZm9yYmlkZGVuYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGUoW3BhdGgudG9Mb3dlckNhc2UoKV0pO1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIGdldFJvbGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB0b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuICAgICAgICBpZiAodG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuQ3JlZGVudGlhbHM/LnJvbGUgfHwgJyc7XG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXJvbGVzPy5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGZvdW5kID0gcm9sZXM/LmluZGV4T2YodGhpcy5nZXRSb2xlKCkpO1xuICAgICAgICBsZXQgcmV0ID0gZmFsc2U7XG4gICAgICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb2xlcyB8fCByb2xlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5nZXRSb2xlKCkgPT09ICdQUk9HUkFNX0FETUlOJykge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2FuQWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyb2xlcycpO1xuICAgICAgICBjb25zb2xlLmxvZyhyb2xlcyk7XG4gICAgICAgIGlmICghdGhpcy50b2tlbkNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgdGhpcy50b2tlbkNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5tb25rZXllY3hBdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy50b2tlbkNyZWRlbnRpYWxzJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMudG9rZW5DcmVkZW50aWFscyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVjYW5kbycpO1xuICAgICAgICBpZiAoIXRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGVjb3UgZXJybycpO1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSgpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnY2hlY291IG9rJyk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFJvbGVDaGVjaztcbiAgfVxufSAqL1xuIl19
|
|
85
|
+
}], ctorParameters: function () { return [{ type: i1.MonkeyEcxTokenStorageService }, { type: i2.Router }]; } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGgvbW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNVLFlBQTBDLEVBQzFDLE1BQWM7UUFEZCxpQkFBWSxHQUFaLFlBQVksQ0FBOEI7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVRoQix3QkFBbUIsR0FHaEIsSUFBSSxDQUFDO1FBRVIscUJBQWdCLEdBQVEsSUFBSSxDQUFDO1FBTW5DLFlBQVk7SUFDZCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7UUFDbEQsSUFBSSxJQUFJLEdBQUcsc0JBQXNCLENBQUM7UUFDbEMsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLEdBQUcsUUFBUSxXQUFXLGtCQUFrQixDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRWxDLElBQUksQ0FBQyxnQkFBZ0I7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNqQyxJQUFJLGdCQUFnQixFQUFFLFlBQVksS0FBSyxNQUFNLEVBQUU7WUFDN0MsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFDRCxJQUFJLGdCQUFnQixFQUFFLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDM0MsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFFRCxPQUFPLGdCQUFnQixFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEtBQWUsRUFBRSxXQUFvQjtRQUNqRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUVoQyxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLFdBQVcsRUFBRTtZQUNmLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZCxHQUFHLEdBQUcsS0FBSyxDQUFDO2FBQ2I7U0FDRjthQUFNO1lBQ0wsR0FBRyxHQUFHLEtBQUssQ0FBQztZQUNaLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUM7YUFDWjtTQUNGO1FBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFO1lBQ3RFLEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUN6RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQztRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQzVEO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsRUFBRTtnQkFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzNCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztxSEFsRlUsd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNb25rZXlFY3hUb2tlblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZEJ5Um9sZSBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHJpdmF0ZSBzZWN1cml0eUNyZWRlbnRpYWxzOiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdLFxuICAgIGJ5RXhjbHVzaW9uOiBib29sZWFuXG4gIH0gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHRva2VuQ3JlZGVudGlhbHM6IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2tlblN0b3JhZ2U6IE1vbmtleUVjeFRva2VuU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb0Vycm9yUGFnZSgpIHtcbiAgICBjb25zdCB7IHRva2VuQ3JlZGVudGlhbHMgfSA9IHRoaXM7XG4gICAgY29uc3QgY29tcGFueVR5cGUgPSB0b2tlbkNyZWRlbnRpYWxzPy5jb21wYW55VHlwZTtcbiAgICBsZXQgcGF0aCA9ICcvYXBwL3BhZ2VzL2ZvcmJpZGRlbic7XG4gICAgaWYgKGNvbXBhbnlUeXBlKSB7XG4gICAgICBwYXRoID0gYC9hcHAvJHtjb21wYW55VHlwZX0vcGFnZXMvZm9yYmlkZGVuYDtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlKFtwYXRoLnRvTG93ZXJDYXNlKCldKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgdG9rZW5DcmVkZW50aWFscyB9ID0gdGhpcztcblxuICAgIGlmICghdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuICAgIGlmICh0b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09ICd0cnVlJykge1xuICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcbiAgICB9XG4gICAgaWYgKHRva2VuQ3JlZGVudGlhbHM/LnByb2dyYW1BZG1pbiA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcbiAgICB9XG5cbiAgICByZXR1cm4gdG9rZW5DcmVkZW50aWFscz8ucm9sZSB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzOiBzdHJpbmdbXSwgYnlFeGNsdXNpb246IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAoIXJvbGVzPy5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgY29uc3QgZm91bmQgPSByb2xlcz8uaW5kZXhPZih0aGlzLmdldFJvbGUoKSk7XG4gICAgbGV0IHJldCA9IGZhbHNlO1xuICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXQgPSBmYWxzZTtcbiAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgIHJldCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuZ2V0Um9sZSgpID09PSAnUFJPR1JBTV9BRE1JTicpIHtcbiAgICAgIHJldCA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBhc3luYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnNlY3VyaXR5Q3JlZGVudGlhbHMgPSByb3V0ZS5kYXRhPy5zZWN1cml0eUNyZWRlbnRpYWxzO1xuICAgIGNvbnNvbGUubG9nKCd0aGlzLnNlY3VyaXR5Q3JlZGVudGlhbHMnKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlY3VyaXR5Q3JlZGVudGlhbHMpO1xuICAgIGlmICh0aGlzLnNlY3VyaXR5Q3JlZGVudGlhbHMpIHtcbiAgICAgIGNvbnN0IHsgcm9sZXMsIGJ5RXhjbHVzaW9uIH0gPSB0aGlzLnNlY3VyaXR5Q3JlZGVudGlhbHM7XG4gICAgICBpZiAoIXRoaXMudG9rZW5DcmVkZW50aWFscykge1xuICAgICAgICB0aGlzLnRva2VuQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLnRva2VuU3RvcmFnZS5nZXRUb2tlbigpO1xuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coJ3RoaXMudG9rZW5DcmVkZW50aWFscycpO1xuICAgICAgY29uc29sZS5sb2codGhpcy50b2tlbkNyZWRlbnRpYWxzKTtcbiAgICAgIGNvbnNvbGUubG9nKCdjaGVjYW5kbycpO1xuICAgICAgaWYgKCF0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2Vzcyhyb2xlcywgYnlFeGNsdXNpb24pKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVjb3UgZXJybycpO1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY29uc29sZS5sb2coJ2NoZWNvdSBvaycpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qIEBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZEJ5Um9sZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIG5vdCB0byBkb1xuICB9XG5cbiAgc3RhdGljIGZvclJvbGVzKHJvbGVzOiBzdHJpbmdbXSwgY29tcGFueVR5cGU/OiBzdHJpbmcsIGJ5RXhjbHVzaW9uPzogYm9vbGVhbikge1xuICAgIEBJbmplY3RhYmxlKHtcbiAgICAgIHByb3ZpZGVkSW46ICdyb290J1xuICAgIH0pXG4gICAgY2xhc3MgUm9sZUNoZWNrIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICAgICAgcHJpdmF0ZSB0b2tlbkNyZWRlbnRpYWxzOiBhbnkgPSBudWxsO1xuXG4gICAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBtb25rZXllY3hBdXRoZW50aWNhdGlvblNlcnZpY2U6IE1vbmtleUVjeEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICAgICAgKSB7XG4gICAgICAgIC8vIG5vdCB0byBkb1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIG5hdmlnYXRlVG9FcnJvclBhZ2UoKSB7XG4gICAgICAgIGxldCBwYXRoID0gJy9hcHAvcGFnZXMvZm9yYmlkZGVuJztcbiAgICAgICAgaWYgKGNvbXBhbnlUeXBlKSB7XG4gICAgICAgICAgcGF0aCA9IGAvYXBwLyR7Y29tcGFueVR5cGV9L3BhZ2VzL2ZvcmJpZGRlbmA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlKFtwYXRoLnRvTG93ZXJDYXNlKCldKTtcbiAgICAgIH1cblxuICAgICAgcHJpdmF0ZSBnZXRSb2xlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdG9rZW5DcmVkZW50aWFscyB9ID0gdGhpcztcblxuICAgICAgICBpZiAoIXRva2VuQ3JlZGVudGlhbHMpIHJldHVybiAnJztcbiAgICAgICAgaWYgKHRva2VuQ3JlZGVudGlhbHM/LnByb2dyYW1BZG1pbiA9PT0gJ3RydWUnKSB7XG4gICAgICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSB0cnVlKSB7XG4gICAgICAgICAgcmV0dXJuICdQUk9HUkFNX0FETUlOJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0b2tlbkNyZWRlbnRpYWxzPy5yb2xlIHx8ICcnO1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIGFsbG93ZWRTZWN1cml0eUFjY2Vzcyhyb2xlczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFyb2xlcz8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBjb25zdCBmb3VuZCA9IHJvbGVzPy5pbmRleE9mKHRoaXMuZ2V0Um9sZSgpKTtcbiAgICAgICAgbGV0IHJldCA9IGZhbHNlO1xuICAgICAgICBpZiAoYnlFeGNsdXNpb24pIHtcbiAgICAgICAgICByZXQgPSB0cnVlO1xuICAgICAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgICAgICByZXQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0ID0gZmFsc2U7XG4gICAgICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghcm9sZXMgfHwgcm9sZXMubGVuZ3RoID09PSAwIHx8IHRoaXMuZ2V0Um9sZSgpID09PSAnUFJPR1JBTV9BRE1JTicpIHtcbiAgICAgICAgICByZXQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgICB9XG5cbiAgICAgIGFzeW5jIGNhbkFjdGl2YXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zb2xlLmxvZygncm9sZXMnKTtcbiAgICAgICAgY29uc29sZS5sb2cocm9sZXMpO1xuICAgICAgICBpZiAoIXRoaXMudG9rZW5DcmVkZW50aWFscykge1xuICAgICAgICAgIHRoaXMudG9rZW5DcmVkZW50aWFscyA9IGF3YWl0IHRoaXMubW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJ3RoaXMudG9rZW5DcmVkZW50aWFscycpO1xuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnRva2VuQ3JlZGVudGlhbHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnY2hlY2FuZG8nKTtcbiAgICAgICAgaWYgKCF0aGlzLmFsbG93ZWRTZWN1cml0eUFjY2Vzcyhyb2xlcykpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnY2hlY291IGVycm8nKTtcbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG9FcnJvclBhZ2UoKTtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNvdSBvaycpO1xuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBSb2xlQ2hlY2s7XG4gIH1cbn0gKi9cbiJdfQ==
|
|
@@ -4117,31 +4117,90 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
4117
4117
|
}], ctorParameters: function () { return [{ type: MonkeyEcxAuthenticationService }]; } });
|
|
4118
4118
|
|
|
4119
4119
|
class MonkeyEcxAuthGuardByRole {
|
|
4120
|
-
constructor() {
|
|
4120
|
+
constructor(tokenStorage, router) {
|
|
4121
|
+
this.tokenStorage = tokenStorage;
|
|
4122
|
+
this.router = router;
|
|
4123
|
+
this.securityCredentials = null;
|
|
4124
|
+
this.tokenCredentials = null;
|
|
4121
4125
|
// not to do
|
|
4122
4126
|
}
|
|
4123
|
-
|
|
4124
|
-
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
+
navigateToErrorPage() {
|
|
4128
|
+
var _a;
|
|
4129
|
+
const { tokenCredentials } = this;
|
|
4130
|
+
const companyType = tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.companyType;
|
|
4131
|
+
let path = '/app/pages/forbidden';
|
|
4132
|
+
if (companyType) {
|
|
4133
|
+
path = `/app/${companyType}/pages/forbidden`;
|
|
4134
|
+
}
|
|
4135
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.navigate([path.toLowerCase()]);
|
|
4136
|
+
}
|
|
4137
|
+
getRole() {
|
|
4138
|
+
const { tokenCredentials } = this;
|
|
4139
|
+
if (!tokenCredentials)
|
|
4140
|
+
return '';
|
|
4141
|
+
if ((tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.programAdmin) === 'true') {
|
|
4142
|
+
return 'PROGRAM_ADMIN';
|
|
4143
|
+
}
|
|
4144
|
+
if ((tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.programAdmin) === true) {
|
|
4145
|
+
return 'PROGRAM_ADMIN';
|
|
4146
|
+
}
|
|
4147
|
+
return (tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.role) || '';
|
|
4148
|
+
}
|
|
4149
|
+
allowedSecurityAccess(roles, byExclusion) {
|
|
4150
|
+
if (!(roles === null || roles === void 0 ? void 0 : roles.length))
|
|
4151
|
+
return true;
|
|
4152
|
+
const found = roles === null || roles === void 0 ? void 0 : roles.indexOf(this.getRole());
|
|
4153
|
+
let ret = false;
|
|
4154
|
+
if (byExclusion) {
|
|
4155
|
+
ret = true;
|
|
4156
|
+
if (found > -1) {
|
|
4157
|
+
ret = false;
|
|
4127
4158
|
}
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4159
|
+
}
|
|
4160
|
+
else {
|
|
4161
|
+
ret = false;
|
|
4162
|
+
if (found > -1) {
|
|
4163
|
+
ret = true;
|
|
4132
4164
|
}
|
|
4133
4165
|
}
|
|
4134
|
-
|
|
4166
|
+
if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {
|
|
4167
|
+
ret = true;
|
|
4168
|
+
}
|
|
4169
|
+
return ret;
|
|
4170
|
+
}
|
|
4171
|
+
canActivate(route, state) {
|
|
4172
|
+
var _a;
|
|
4173
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
4174
|
+
this.securityCredentials = (_a = route.data) === null || _a === void 0 ? void 0 : _a.securityCredentials;
|
|
4175
|
+
console.log('this.securityCredentials');
|
|
4176
|
+
console.log(this.securityCredentials);
|
|
4177
|
+
if (this.securityCredentials) {
|
|
4178
|
+
const { roles, byExclusion } = this.securityCredentials;
|
|
4179
|
+
if (!this.tokenCredentials) {
|
|
4180
|
+
this.tokenCredentials = yield this.tokenStorage.getToken();
|
|
4181
|
+
}
|
|
4182
|
+
console.log('this.tokenCredentials');
|
|
4183
|
+
console.log(this.tokenCredentials);
|
|
4184
|
+
console.log('checando');
|
|
4185
|
+
if (!this.allowedSecurityAccess(roles, byExclusion)) {
|
|
4186
|
+
console.log('checou erro');
|
|
4187
|
+
this.navigateToErrorPage();
|
|
4188
|
+
return false;
|
|
4189
|
+
}
|
|
4190
|
+
console.log('checou ok');
|
|
4191
|
+
}
|
|
4192
|
+
return true;
|
|
4193
|
+
});
|
|
4135
4194
|
}
|
|
4136
4195
|
}
|
|
4137
|
-
MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4196
|
+
MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [{ token: MonkeyEcxTokenStorageService }, { token: i2$2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4138
4197
|
MonkeyEcxAuthGuardByRole.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, providedIn: 'root' });
|
|
4139
4198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, decorators: [{
|
|
4140
4199
|
type: Injectable,
|
|
4141
4200
|
args: [{
|
|
4142
4201
|
providedIn: 'root'
|
|
4143
4202
|
}]
|
|
4144
|
-
}], ctorParameters: function () { return []; } });
|
|
4203
|
+
}], ctorParameters: function () { return [{ type: MonkeyEcxTokenStorageService }, { type: i2$2.Router }]; } });
|
|
4145
4204
|
|
|
4146
4205
|
class MonkeyEcxAuthGuard {
|
|
4147
4206
|
constructor(monkeyecxAuthenticationService) {
|