monkey-front-core 0.0.344 → 0.0.345

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