monkey-front-core 0.0.350 → 0.0.351

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.
@@ -5,7 +5,73 @@ export class MonkeyEcxAuthGuardByRole {
5
5
  // not to do
6
6
  }
7
7
  static forRoles(roles, companyType, byExclusion) {
8
- return 'oi';
8
+ class RoleCheck {
9
+ constructor(monkeyecxAuthenticationService, router) {
10
+ this.monkeyecxAuthenticationService = monkeyecxAuthenticationService;
11
+ this.router = router;
12
+ this.tokenCredentials = null;
13
+ // not to do
14
+ }
15
+ navigateToErrorPage() {
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) {
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() {
57
+ console.log('roles');
58
+ console.log(roles);
59
+ if (!this.tokenCredentials) {
60
+ this.tokenCredentials = await this.monkeyecxAuthenticationService.getToken();
61
+ }
62
+ console.log('this.tokenCredentials');
63
+ console.log(this.tokenCredentials);
64
+ console.log('checando');
65
+ if (!this.allowedSecurityAccess(roles)) {
66
+ console.log('checou erro');
67
+ this.navigateToErrorPage();
68
+ return false;
69
+ }
70
+ console.log('checou ok');
71
+ return true;
72
+ }
73
+ }
74
+ return RoleCheck;
9
75
  }
10
76
  }
11
77
  MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -16,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
16
82
  providedIn: 'root'
17
83
  }]
18
84
  }], ctorParameters: function () { return []; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGgvbW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7UUFDRSxZQUFZO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBZSxFQUFFLFdBQW9CLEVBQUUsV0FBcUI7UUFDMUUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztxSEFQVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleUVjeEF1dGhHdWFyZEJ5Um9sZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIG5vdCB0byBkb1xuICB9XG5cbiAgc3RhdGljIGZvclJvbGVzKHJvbGVzOiBzdHJpbmdbXSwgY29tcGFueVR5cGU/OiBzdHJpbmcsIGJ5RXhjbHVzaW9uPzogYm9vbGVhbikge1xuICAgIHJldHVybiAnb2knO1xuICB9XG59XG5cbi8qXG5ASW5qZWN0YWJsZSh7XG4gICAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgICB9KVxuICAgIGNsYXNzIFJvbGVDaGVjayBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgICAgIHByaXZhdGUgdG9rZW5DcmVkZW50aWFsczogYW55ID0gbnVsbDtcblxuICAgICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbW9ua2V5ZWN4QXV0aGVudGljYXRpb25TZXJ2aWNlOiBNb25rZXlFY3hBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgICAgICkge1xuICAgICAgICAvLyBub3QgdG8gZG9cbiAgICAgIH1cblxuICAgICAgcHJpdmF0ZSBuYXZpZ2F0ZVRvRXJyb3JQYWdlKCkge1xuICAgICAgICBsZXQgcGF0aCA9ICcvYXBwL3BhZ2VzL2ZvcmJpZGRlbic7XG4gICAgICAgIGlmIChjb21wYW55VHlwZSkge1xuICAgICAgICAgIHBhdGggPSBgL2FwcC8ke2NvbXBhbnlUeXBlfS9wYWdlcy9mb3JiaWRkZW5gO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucm91dGVyPy5uYXZpZ2F0ZShbcGF0aC50b0xvd2VyQ2FzZSgpXSk7XG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgZ2V0Um9sZSgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHRva2VuQ3JlZGVudGlhbHMgfSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKCF0b2tlbkNyZWRlbnRpYWxzKSByZXR1cm4gJyc7XG4gICAgICAgIGlmICh0b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09ICd0cnVlJykge1xuICAgICAgICAgIHJldHVybiAnUFJPR1JBTV9BRE1JTic7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRva2VuQ3JlZGVudGlhbHM/LnByb2dyYW1BZG1pbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHJldHVybiAnUFJPR1JBTV9BRE1JTic7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdG9rZW5DcmVkZW50aWFscz8ucm9sZSB8fCAnJztcbiAgICAgIH1cblxuICAgICAgcHJpdmF0ZSBhbGxvd2VkU2VjdXJpdHlBY2Nlc3Mocm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghcm9sZXM/Lmxlbmd0aCkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgY29uc3QgZm91bmQgPSByb2xlcz8uaW5kZXhPZih0aGlzLmdldFJvbGUoKSk7XG4gICAgICAgIGxldCByZXQgPSBmYWxzZTtcbiAgICAgICAgaWYgKGJ5RXhjbHVzaW9uKSB7XG4gICAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICAgICAgcmV0ID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChmb3VuZCA+IC0xKSB7XG4gICAgICAgICAgICByZXQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJvbGVzIHx8IHJvbGVzLmxlbmd0aCA9PT0gMCB8fCB0aGlzLmdldFJvbGUoKSA9PT0gJ1BST0dSQU1fQURNSU4nKSB7XG4gICAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgfVxuXG4gICAgICBhc3luYyBjYW5BY3RpdmF0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ3JvbGVzJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHJvbGVzKTtcbiAgICAgICAgaWYgKCF0aGlzLnRva2VuQ3JlZGVudGlhbHMpIHtcbiAgICAgICAgICB0aGlzLnRva2VuQ3JlZGVudGlhbHMgPSBhd2FpdCB0aGlzLm1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRUb2tlbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnRva2VuQ3JlZGVudGlhbHMnKTtcbiAgICAgICAgY29uc29sZS5sb2codGhpcy50b2tlbkNyZWRlbnRpYWxzKTtcbiAgICAgICAgY29uc29sZS5sb2coJ2NoZWNhbmRvJyk7XG4gICAgICAgIGlmICghdGhpcy5hbGxvd2VkU2VjdXJpdHlBY2Nlc3Mocm9sZXMpKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ2NoZWNvdSBlcnJvJyk7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvRXJyb3JQYWdlKCk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVjb3Ugb2snKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUm9sZUNoZWNrO1xuKi9cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LWZyb250LWNvcmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGgvbW9ua2V5ZWN4LWF1dGgtZ3VhcmQtcm9sZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzNDLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkM7UUFDRSxZQUFZO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBZSxFQUFFLFdBQW9CLEVBQUUsV0FBcUI7UUFDMUUsTUFBTSxTQUFTO1lBR2IsWUFDVSw4QkFBOEQsRUFDOUQsTUFBYztnQkFEZCxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO2dCQUM5RCxXQUFNLEdBQU4sTUFBTSxDQUFRO2dCQUpoQixxQkFBZ0IsR0FBUSxJQUFJLENBQUM7Z0JBTW5DLFlBQVk7WUFDZCxDQUFDO1lBRU8sbUJBQW1CO2dCQUN6QixJQUFJLElBQUksR0FBRyxzQkFBc0IsQ0FBQztnQkFDbEMsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsSUFBSSxHQUFHLFFBQVEsV0FBVyxrQkFBa0IsQ0FBQztpQkFDOUM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlDLENBQUM7WUFFTyxPQUFPO2dCQUNiLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQztnQkFFbEMsSUFBSSxDQUFDLGdCQUFnQjtvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxnQkFBZ0IsRUFBRSxZQUFZLEtBQUssTUFBTSxFQUFFO29CQUM3QyxPQUFPLGVBQWUsQ0FBQztpQkFDeEI7Z0JBQ0QsSUFBSSxnQkFBZ0IsRUFBRSxZQUFZLEtBQUssSUFBSSxFQUFFO29CQUMzQyxPQUFPLGVBQWUsQ0FBQztpQkFDeEI7Z0JBRUQsT0FBTyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3RDLENBQUM7WUFFTyxxQkFBcUIsQ0FBQyxLQUFlO2dCQUMzQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU07b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBRWhDLE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzdDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztnQkFDaEIsSUFBSSxXQUFXLEVBQUU7b0JBQ2YsR0FBRyxHQUFHLElBQUksQ0FBQztvQkFDWCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTt3QkFDZCxHQUFHLEdBQUcsS0FBSyxDQUFDO3FCQUNiO2lCQUNGO3FCQUFNO29CQUNMLEdBQUcsR0FBRyxLQUFLLENBQUM7b0JBQ1osSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ2QsR0FBRyxHQUFHLElBQUksQ0FBQztxQkFDWjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUU7b0JBQ3RFLEdBQUcsR0FBRyxJQUFJLENBQUM7aUJBQ1o7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1lBRUQsS0FBSyxDQUFDLFdBQVc7Z0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUM5RTtnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUMzQixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUV6QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O3FIQWpGVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vbmtleUVjeEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbW9ua2V5ZWN4LWF1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNb25rZXlFY3hBdXRoR3VhcmRCeVJvbGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBub3QgdG8gZG9cbiAgfVxuXG4gIHN0YXRpYyBmb3JSb2xlcyhyb2xlczogc3RyaW5nW10sIGNvbXBhbnlUeXBlPzogc3RyaW5nLCBieUV4Y2x1c2lvbj86IGJvb2xlYW4pIHtcbiAgICBjbGFzcyBSb2xlQ2hlY2sgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gICAgICBwcml2YXRlIHRva2VuQ3JlZGVudGlhbHM6IGFueSA9IG51bGw7XG5cbiAgICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG1vbmtleWVjeEF1dGhlbnRpY2F0aW9uU2VydmljZTogTW9ua2V5RWN4QXV0aGVudGljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICAgICApIHtcbiAgICAgICAgLy8gbm90IHRvIGRvXG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgbmF2aWdhdGVUb0Vycm9yUGFnZSgpIHtcbiAgICAgICAgbGV0IHBhdGggPSAnL2FwcC9wYWdlcy9mb3JiaWRkZW4nO1xuICAgICAgICBpZiAoY29tcGFueVR5cGUpIHtcbiAgICAgICAgICBwYXRoID0gYC9hcHAvJHtjb21wYW55VHlwZX0vcGFnZXMvZm9yYmlkZGVuYDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGUoW3BhdGgudG9Mb3dlckNhc2UoKV0pO1xuICAgICAgfVxuXG4gICAgICBwcml2YXRlIGdldFJvbGUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyB0b2tlbkNyZWRlbnRpYWxzIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghdG9rZW5DcmVkZW50aWFscykgcmV0dXJuICcnO1xuICAgICAgICBpZiAodG9rZW5DcmVkZW50aWFscz8ucHJvZ3JhbUFkbWluID09PSAndHJ1ZScpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0b2tlbkNyZWRlbnRpYWxzPy5wcm9ncmFtQWRtaW4gPT09IHRydWUpIHtcbiAgICAgICAgICByZXR1cm4gJ1BST0dSQU1fQURNSU4nO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRva2VuQ3JlZGVudGlhbHM/LnJvbGUgfHwgJyc7XG4gICAgICB9XG5cbiAgICAgIHByaXZhdGUgYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXJvbGVzPy5sZW5ndGgpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGZvdW5kID0gcm9sZXM/LmluZGV4T2YodGhpcy5nZXRSb2xlKCkpO1xuICAgICAgICBsZXQgcmV0ID0gZmFsc2U7XG4gICAgICAgIGlmIChieUV4Y2x1c2lvbikge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgICAgaWYgKGZvdW5kID4gLTEpIHtcbiAgICAgICAgICAgIHJldCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXQgPSBmYWxzZTtcbiAgICAgICAgICBpZiAoZm91bmQgPiAtMSkge1xuICAgICAgICAgICAgcmV0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyb2xlcyB8fCByb2xlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5nZXRSb2xlKCkgPT09ICdQUk9HUkFNX0FETUlOJykge1xuICAgICAgICAgIHJldCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH1cblxuICAgICAgYXN5bmMgY2FuQWN0aXZhdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyb2xlcycpO1xuICAgICAgICBjb25zb2xlLmxvZyhyb2xlcyk7XG4gICAgICAgIGlmICghdGhpcy50b2tlbkNyZWRlbnRpYWxzKSB7XG4gICAgICAgICAgdGhpcy50b2tlbkNyZWRlbnRpYWxzID0gYXdhaXQgdGhpcy5tb25rZXllY3hBdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VG9rZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygndGhpcy50b2tlbkNyZWRlbnRpYWxzJyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMudG9rZW5DcmVkZW50aWFscyk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdjaGVjYW5kbycpO1xuICAgICAgICBpZiAoIXRoaXMuYWxsb3dlZFNlY3VyaXR5QWNjZXNzKHJvbGVzKSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdjaGVjb3UgZXJybycpO1xuICAgICAgICAgIHRoaXMubmF2aWdhdGVUb0Vycm9yUGFnZSgpO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnY2hlY291IG9rJyk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFJvbGVDaGVjaztcbiAgfVxufVxuIl19
@@ -4121,7 +4121,76 @@ class MonkeyEcxAuthGuardByRole {
4121
4121
  // not to do
4122
4122
  }
4123
4123
  static forRoles(roles, companyType, byExclusion) {
4124
- return 'oi';
4124
+ class RoleCheck {
4125
+ constructor(monkeyecxAuthenticationService, router) {
4126
+ this.monkeyecxAuthenticationService = monkeyecxAuthenticationService;
4127
+ this.router = router;
4128
+ this.tokenCredentials = null;
4129
+ // not to do
4130
+ }
4131
+ navigateToErrorPage() {
4132
+ var _a;
4133
+ let path = '/app/pages/forbidden';
4134
+ if (companyType) {
4135
+ path = `/app/${companyType}/pages/forbidden`;
4136
+ }
4137
+ (_a = this.router) === null || _a === void 0 ? void 0 : _a.navigate([path.toLowerCase()]);
4138
+ }
4139
+ getRole() {
4140
+ const { tokenCredentials } = this;
4141
+ if (!tokenCredentials)
4142
+ return '';
4143
+ if ((tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.programAdmin) === 'true') {
4144
+ return 'PROGRAM_ADMIN';
4145
+ }
4146
+ if ((tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.programAdmin) === true) {
4147
+ return 'PROGRAM_ADMIN';
4148
+ }
4149
+ return (tokenCredentials === null || tokenCredentials === void 0 ? void 0 : tokenCredentials.role) || '';
4150
+ }
4151
+ allowedSecurityAccess(roles) {
4152
+ if (!(roles === null || roles === void 0 ? void 0 : roles.length))
4153
+ return true;
4154
+ const found = roles === null || roles === void 0 ? void 0 : roles.indexOf(this.getRole());
4155
+ let ret = false;
4156
+ if (byExclusion) {
4157
+ ret = true;
4158
+ if (found > -1) {
4159
+ ret = false;
4160
+ }
4161
+ }
4162
+ else {
4163
+ ret = false;
4164
+ if (found > -1) {
4165
+ ret = true;
4166
+ }
4167
+ }
4168
+ if (!roles || roles.length === 0 || this.getRole() === 'PROGRAM_ADMIN') {
4169
+ ret = true;
4170
+ }
4171
+ return ret;
4172
+ }
4173
+ canActivate() {
4174
+ return __awaiter(this, void 0, void 0, function* () {
4175
+ console.log('roles');
4176
+ console.log(roles);
4177
+ if (!this.tokenCredentials) {
4178
+ this.tokenCredentials = yield this.monkeyecxAuthenticationService.getToken();
4179
+ }
4180
+ console.log('this.tokenCredentials');
4181
+ console.log(this.tokenCredentials);
4182
+ console.log('checando');
4183
+ if (!this.allowedSecurityAccess(roles)) {
4184
+ console.log('checou erro');
4185
+ this.navigateToErrorPage();
4186
+ return false;
4187
+ }
4188
+ console.log('checou ok');
4189
+ return true;
4190
+ });
4191
+ }
4192
+ }
4193
+ return RoleCheck;
4125
4194
  }
4126
4195
  }
4127
4196
  MonkeyEcxAuthGuardByRole.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MonkeyEcxAuthGuardByRole, deps: [], target: i0.ɵɵFactoryTarget.Injectable });