monkey-front-core 0.0.355 → 0.0.356

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.
@@ -1,27 +1,86 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ import * as i1 from "./monkeyecx-authentication.service";
4
+ import * as i2 from "@angular/router";
3
5
  export class MonkeyEcxAuthGuardByRole {
4
- constructor() {
6
+ constructor(monkeyecxAuthenticationService, router) {
7
+ this.monkeyecxAuthenticationService = monkeyecxAuthenticationService;
8
+ this.router = router;
9
+ this.securityCredentials = null;
10
+ this.tokenCredentials = null;
5
11
  // not to do
6
12
  }
7
- static forRoles(roles, companyType, byExclusion) {
8
- class RoleCheck {
9
- constructor() {
10
- // not to do
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.monkeyecxAuthenticationService.getToken();
11
64
  }
12
- async canActivate() {
13
- return true;
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 RoleCheck;
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.MonkeyEcxAuthenticationService }, { 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.MonkeyEcxAuthenticationService }, { type: i2.Router }]; } });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGgvbW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFPM0MsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUNVLDhCQUE4RCxFQUM5RCxNQUFjO1FBRGQsbUNBQThCLEdBQTlCLDhCQUE4QixDQUFnQztRQUM5RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGhCLHdCQUFtQixHQUdoQixJQUFJLENBQUM7UUFFUixxQkFBZ0IsR0FBUSxJQUFJLENBQUM7UUFNbkMsWUFBWTtJQUNkLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztRQUNsRCxJQUFJLElBQUksR0FBRyxzQkFBc0IsQ0FBQztRQUNsQyxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksR0FBRyxRQUFRLFdBQVcsa0JBQWtCLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLE9BQU87UUFDYixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFbEMsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksZ0JBQWdCLEVBQUUsWUFBWSxLQUFLLE1BQU0sRUFBRTtZQUM3QyxPQUFPLGVBQWUsQ0FBQztTQUN4QjtRQUNELElBQUksZ0JBQWdCLEVBQUUsWUFBWSxLQUFLLElBQUksRUFBRTtZQUMzQyxPQUFPLGVBQWUsQ0FBQztTQUN4QjtRQUVELE9BQU8sZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8scUJBQXFCLENBQUMsS0FBZSxFQUFFLFdBQW9CO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRWhDLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLElBQUksV0FBVyxFQUFFO1lBQ2YsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNYLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNkLEdBQUcsR0FBRyxLQUFLLENBQUM7YUFDYjtTQUNGO2FBQU07WUFDTCxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ1osSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsR0FBRyxHQUFHLElBQUksQ0FBQzthQUNaO1NBQ0Y7UUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUU7WUFDdEUsR0FBRyxHQUFHLElBQUksQ0FBQztTQUNaO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3pFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDO1FBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVCLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUM5RTtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEVBQUU7Z0JBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMxQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7cUhBbEZVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9tb25rZXllY3gtYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZEJ5Um9sZSBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHJpdmF0ZSBzZWN1cml0eUNyZWRlbnRpYWxzOiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdLFxuICAgIGJ5RXhjbHVzaW9uOiBib29sZWFuXG4gIH0gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHRva2VuQ3JlZGVudGlhbHM6IGFueSA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtb25rZXllY3hBdXRoZW50aWNhdGlvblNlcnZpY2U6IE1vbmtleUVjeEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIC8vIG5vdCB0byBkb1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRXJyb3JQYWdlKCkge1xuICAgIGNvbnN0IHsgdG9rZW5DcmVkZW50aWFscyB9ID0gdGhpcztcbiAgICBjb25zdCBjb21wYW55VHlwZSA9IHRva2VuQ3JlZGVudGlhbHM/LmNvbXBhbnlUeXBlO1xuICAgIGxldCBwYXRoID0gJy9hcHAvcGFnZXMvZm9yYmlkZGVuJztcbiAgICBpZiAoY29tcGFueVR5cGUpIHtcbiAgICAgIHBhdGggPSBgL2FwcC8ke2NvbXBhbnlUeXBlfS9wYWdlcy9mb3JiaWRkZW5gO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGUoW3BhdGgudG9Mb3dlckNhc2UoKV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb2xlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgeyB0b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xuXG4gICAgaWYgKCF0b2tlbkNyZWRlbnRpYWxzKSByZXR1cm4gJyc7XG4gICAgaWYgKHRva2VuQ3JlZGVudGlhbHM/LnByb2dyYW1BZG1pbiA9PT0gJ3RydWUnKSB7XG4gICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgIH1cbiAgICBpZiAodG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbkNyZWRlbnRpYWxzPy5yb2xlIHx8ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3Mocm9sZXM6IHN0cmluZ1tdLCBieUV4Y2x1c2lvbjogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICghcm9sZXM/Lmxlbmd0aCkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBmb3VuZCA9IHJvbGVzPy5pbmRleE9mKHRoaXMuZ2V0Um9sZSgpKTtcbiAgICBsZXQgcmV0ID0gZmFsc2U7XG4gICAgaWYgKGJ5RXhjbHVzaW9uKSB7XG4gICAgICByZXQgPSB0cnVlO1xuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgcmV0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyb2xlcyB8fCByb2xlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5nZXRSb2xlKCkgPT09ICdQUk9HUkFNX0FETUlOJykge1xuICAgICAgcmV0ID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIGFzeW5jIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuc2VjdXJpdHlDcmVkZW50aWFscyA9IHJvdXRlLmRhdGE/LnNlY3VyaXR5Q3JlZGVudGlhbHM7XG4gICAgY29uc29sZS5sb2coJ3RoaXMuc2VjdXJpdHlDcmVkZW50aWFscycpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VjdXJpdHlDcmVkZW50aWFscyk7XG4gICAgaWYgKHRoaXMuc2VjdXJpdHlDcmVkZW50aWFscykge1xuICAgICAgY29uc3QgeyByb2xlcywgYnlFeGNsdXNpb24gfSA9IHRoaXMuc2VjdXJpdHlDcmVkZW50aWFscztcbiAgICAgIGlmICghdGhpcy50b2tlbkNyZWRlbnRpYWxzKSB7XG4gICAgICAgIHRoaXMudG9rZW5DcmVkZW50aWFscyA9IGF3YWl0IHRoaXMubW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLmdldFRva2VuKCk7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygndGhpcy50b2tlbkNyZWRlbnRpYWxzJyk7XG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnRva2VuQ3JlZGVudGlhbHMpO1xuICAgICAgY29uc29sZS5sb2coJ2NoZWNhbmRvJyk7XG4gICAgICBpZiAoIXRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzLCBieUV4Y2x1c2lvbikpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNvdSBlcnJvJyk7XG4gICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjb25zb2xlLmxvZygnY2hlY291IG9rJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuLyogQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4QXV0aEd1YXJkQnlSb2xlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gbm90IHRvIGRvXG4gIH1cblxuICBzdGF0aWMgZm9yUm9sZXMocm9sZXM6IHN0cmluZ1tdLCBjb21wYW55VHlwZT86IHN0cmluZywgYnlFeGNsdXNpb24/OiBib29sZWFuKSB7XG4gICAgQEluamVjdGFibGUoe1xuICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gICAgfSlcbiAgICBjbGFzcyBSb2xlQ2hlY2sgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gICAgICBwcml2YXRlIHRva2VuQ3JlZGVudGlhbHM6IGFueSA9IG51bGw7XG5cbiAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZTogTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICAgICApIHtcbiAgICAgICAgLy8gbm90IHRvIGRvXG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgbmF2aWdhdGVUb0Vycm9yUGFnZSgpIHtcbiAgICAgICAgbGV0IHBhdGggPSAnL2FwcC9wYWdlcy9mb3JiaWRkZW4nO1xuICAgICAgICBpZiAoY29tcGFueVR5cGUpIHtcbiAgICAgICAgICBwYXRoID0gYC9hcHAvJHtjb21wYW55VHlwZX0vcGFnZXMvZm9yYmlkZGVuYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGUoW3BhdGgudG9Mb3dlckNhc2UoKV0pO1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIGdldFJvbGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB0b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuICAgICAgICBpZiAodG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuQ3JlZGVudGlhbHM/LnJvbGUgfHwgJyc7XG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXJvbGVzPy5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGZvdW5kID0gcm9sZXM/LmluZGV4T2YodGhpcy5nZXRSb2xlKCkpO1xuICAgICAgICBsZXQgcmV0ID0gZmFsc2U7XG4gICAgICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb2xlcyB8fCByb2xlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5nZXRSb2xlKCkgPT09ICdQUk9HUkFNX0FETUlOJykge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2FuQWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyb2xlcycpO1xuICAgICAgICBjb25zb2xlLmxvZyhyb2xlcyk7XG4gICAgICAgIGlmICghdGhpcy50b2tlbkNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgdGhpcy50b2tlbkNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5tb25rZXllY3hBdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy50b2tlbkNyZWRlbnRpYWxzJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMudG9rZW5DcmVkZW50aWFscyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVjYW5kbycpO1xuICAgICAgICBpZiAoIXRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGVjb3UgZXJybycpO1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSgpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnY2hlY291IG9rJyk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFJvbGVDaGVjaztcbiAgfVxufSAqL1xuIl19
@@ -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(monkeyecxAuthenticationService, router) {
4121
+ this.monkeyecxAuthenticationService = monkeyecxAuthenticationService;
4122
+ this.router = router;
4123
+ this.securityCredentials = null;
4124
+ this.tokenCredentials = null;
4121
4125
  // not to do
4122
4126
  }
4123
- static forRoles(roles, companyType, byExclusion) {
4124
- class RoleCheck {
4125
- constructor() {
4126
- // not to do
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
- canActivate() {
4129
- return __awaiter(this, void 0, void 0, function* () {
4130
- return true;
4131
- });
4159
+ }
4160
+ else {
4161
+ ret = false;
4162
+ if (found > -1) {
4163
+ ret = true;
4132
4164
  }
4133
4165
  }
4134
- return RoleCheck;
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.monkeyecxAuthenticationService.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: MonkeyEcxAuthenticationService }, { 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: MonkeyEcxAuthenticationService }, { type: i2$2.Router }]; } });
4145
4204
 
4146
4205
  class MonkeyEcxAuthGuard {
4147
4206
  constructor(monkeyecxAuthenticationService) {