dts-backoffice-util 14.3.0 → 14.4.1
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/README.md +34 -4
- package/esm2020/lib/services/menu-datasul.service.mjs +59 -4
- package/fesm2015/dts-backoffice-util.mjs +56 -4
- package/fesm2015/dts-backoffice-util.mjs.map +1 -1
- package/fesm2020/dts-backoffice-util.mjs +56 -4
- package/fesm2020/dts-backoffice-util.mjs.map +1 -1
- package/lib/services/menu-datasul.service.d.ts +6 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e A
|
|
|
12
12
|
|
|
13
13
|
| PO-UI | Angular | Versão dtsBackofficeUtil |
|
|
14
14
|
|-|-| -|
|
|
15
|
-
| v14 | v14 | 14.
|
|
15
|
+
| v14 | v14 | 14.4.1 |
|
|
16
16
|
| v6 | v13 | 6.0.2 |
|
|
17
17
|
| v5 | v12 | 5.0.1 |
|
|
18
18
|
| v4 | v11 | 4.0.1 |
|
|
@@ -102,13 +102,15 @@ Métodos:
|
|
|
102
102
|
|
|
103
103
|
| Nome | Descrição |
|
|
104
104
|
|-|-|
|
|
105
|
-
| callProgress | Executa uma tela Progress que esteja cadastrada no menu.<br>**Parâmetros:**<br>- program (object): Objeto com os seguintes atributos:<br>prg (string): Nome do programa no menu.<br>params (Array(object)): Array de Objetos de Parâmetros. O objeto possui dois atributos: "type" com o tipo de dado (character, integer, logical, etc...). E "value" com o conteúdo.<br>**Retorno:** Não há. |
|
|
106
|
-
| openPath | Executa uma tela PO-UI que esteja cadastrada no menu.<br>**Parâmetros:**<br>- programName (string): Nome interno do Programa, no cadastro de menu.<br>- params (string): Parâmetros que serão adicionados na URL.<br>- parent (boolean): Indica se a tela deve abrir na mesma Aba do Navegador (valor: **true**) ou em outra Aba do Navegador (valor: **false**). **Obs:** Quando a tela abrir na mesma Aba do Navegador, irá abrir em outra Aba do Menu do Datasul.<br>**Retorno:** Não há. |
|
|
107
|
-
| sendNotification | Apresenta uma notificação ao usuário.<br>**Parâmetros:**<br>- notification (object): Objeto com os seguintes atributos:<br>type (string): Tipo de notificação (success, warning, error).<br>title (string): Título da Notificação.<br>detail (string): Descrição da Notificação.<br>**Retorno:** Não há. |
|
|
105
|
+
| callProgress | Executa uma tela Progress que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- program (object): Objeto com os seguintes atributos:<br>prg (string): Nome do programa no menu.<br>params (Array(object)): Array de Objetos de Parâmetros. O objeto possui dois atributos: "type" com o tipo de dado (character, integer, logical, etc...). E "value" com o conteúdo.<br>**Retorno:** Não há. |
|
|
106
|
+
| openPath | Executa uma tela PO-UI que esteja cadastrada no menu.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- programName (string): Nome interno do Programa, no cadastro de menu.<br>- params (string): Parâmetros que serão adicionados na URL.<br>- parent (boolean): Indica se a tela deve abrir na mesma Aba do Navegador (valor: **true**) ou em outra Aba do Navegador (valor: **false**). **Obs:** Quando a tela abrir na mesma Aba do Navegador, irá abrir em outra Aba do Menu do Datasul.<br>**Retorno:** Não há. |
|
|
107
|
+
| sendNotification | Apresenta uma notificação ao usuário.<br>**Importante:** Este método realiza uma integração direta com o Menu do Datasul (parte HTML do Menu). Portanto, ele somente funciona quando o projeto está sendo executado por dentro do Menu do Datasul.<br>**Parâmetros:**<br>- notification (object): Objeto com os seguintes atributos:<br>type (string): Tipo de notificação (success, warning, error).<br>title (string): Título da Notificação.<br>detail (string): Descrição da Notificação.<br>**Retorno:** Não há. |
|
|
108
|
+
| programSecurity | Verifica a Segurança do Menu, identificando se o usuário corrente possui acesso a um ou mais programas.<br>**Parâmetros:**<br>- programName (string ou Array): Nome do Programa cadastro no Menu, que se deseja consultar a segurança. Podendo ser informado uma string simples com o Nome do Programa, ou um Array de strings com a lista de Programas.<br>**Retorno:** response (Observable(Array)): Array com as informações dos Programas pesquisados. O objeto contido no Array terá dois atributos:<br>programName (string): Nome do Programa no Menu.<br>hasAccess (boolean): Valor "TRUE" ou "FALSE", indicando se o usuário tem acesso ao programa. **Obs:** Se o programa não estiver cadastro no Menu, o retorno deste atributo será "FALSE". |
|
|
108
109
|
---
|
|
109
110
|
|
|
110
111
|
Exemplo de uso:
|
|
111
112
|
```
|
|
113
|
+
// Executando uma tela Progress
|
|
112
114
|
program = {
|
|
113
115
|
prg: 'bas_lote_liquidac_acr',
|
|
114
116
|
params: [
|
|
@@ -118,14 +120,42 @@ program = {
|
|
|
118
120
|
};
|
|
119
121
|
this.menuDatasulService.callProgress(program);
|
|
120
122
|
|
|
123
|
+
// Executando uma Tela HTML
|
|
121
124
|
this.menuDatasulService.openPath('html.inquiryItem', '1509;10;1', true);
|
|
122
125
|
|
|
126
|
+
// Disparando uma Notificação
|
|
123
127
|
notification = {
|
|
124
128
|
type: 'success',
|
|
125
129
|
title: 'Operação foi executada com Sucesso.',
|
|
126
130
|
detail: 'A Operação 4343 foi executada conforme parametrizado e finalizou.'
|
|
127
131
|
};
|
|
128
132
|
this.menuDatasulService.sendNotification(notification);
|
|
133
|
+
|
|
134
|
+
// Validando a Segurança de um Programa
|
|
135
|
+
this.menuDatasulService
|
|
136
|
+
.programSecurity('html.cashControl')
|
|
137
|
+
.subscribe((response: Array<Object>) => {
|
|
138
|
+
console.log('response:', response[0]);
|
|
139
|
+
// Resposta: { programName: "html.cashControl", hasAccess: true }
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Validando a Segurança de uma Lista de Programas
|
|
143
|
+
let programList = [];
|
|
144
|
+
programList.push('pr0590');
|
|
145
|
+
programList.push('html.prgNoExist');
|
|
146
|
+
programList.push('bas_empresa');
|
|
147
|
+
|
|
148
|
+
this.menuDatasulService
|
|
149
|
+
.programSecurity(programList)
|
|
150
|
+
.subscribe((response: Array<Object>) => {
|
|
151
|
+
console.log('response:', response);
|
|
152
|
+
/* Resposta:
|
|
153
|
+
[
|
|
154
|
+
0: { programName: "pr0590", hasAccess: false }
|
|
155
|
+
1: { programName: "html.prgNoExist", hasAccess: false }
|
|
156
|
+
2: { programName: "bas_empresa", hasAccess: true }
|
|
157
|
+
] */
|
|
158
|
+
});
|
|
129
159
|
```
|
|
130
160
|
|
|
131
161
|
<br>
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { forkJoin, map } from 'rxjs';
|
|
3
|
+
import { of } from 'rxjs';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
3
6
|
export class MenuDatasulService {
|
|
4
|
-
constructor() {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
this.urlMenuPrograms = '/dts/datasul-rest/resources/prg/fwk/v1/menuPrograms/list';
|
|
10
|
+
}
|
|
5
11
|
/**
|
|
6
12
|
* var program = {};
|
|
7
13
|
* program['prg'] = "cd0210";
|
|
@@ -32,10 +38,59 @@ export class MenuDatasulService {
|
|
|
32
38
|
window.open(baseUrl);
|
|
33
39
|
}
|
|
34
40
|
}
|
|
41
|
+
programSecurity(programName) {
|
|
42
|
+
let programList = [];
|
|
43
|
+
if (Array.isArray(programName)) {
|
|
44
|
+
programList = programName;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (programName && programName !== '') {
|
|
48
|
+
programList.push(programName);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (!programList || programList.length === 0) {
|
|
52
|
+
return of({
|
|
53
|
+
code: 400,
|
|
54
|
+
message: 'Não foi possível validar a Segurança dos Programas, lista vazia !',
|
|
55
|
+
detailedMessage: 'A lista de programas indicados para validação de segurança é inválida ou está vazia.'
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const aRequest = [];
|
|
59
|
+
programList.forEach(programSearch => {
|
|
60
|
+
aRequest.push(this.http.post(this.urlMenuPrograms, { search: programSearch }));
|
|
61
|
+
});
|
|
62
|
+
return forkJoin(aRequest).pipe(map((response) => {
|
|
63
|
+
if (!response) {
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
if (!Array.isArray(response)) {
|
|
67
|
+
return response;
|
|
68
|
+
}
|
|
69
|
+
const responseReturn = new Array();
|
|
70
|
+
for (let idx = 0; idx < programList.length; idx++) {
|
|
71
|
+
const responseProg = response[idx];
|
|
72
|
+
let hasAcess = false;
|
|
73
|
+
if (responseProg && responseProg.programs &&
|
|
74
|
+
Array.isArray(responseProg.programs) &&
|
|
75
|
+
responseProg.programs.length > 0) {
|
|
76
|
+
responseProg.programs.forEach(prog => {
|
|
77
|
+
if (prog.prg === programList[idx]) {
|
|
78
|
+
hasAcess = true;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
responseReturn.push({
|
|
83
|
+
programName: programList[idx],
|
|
84
|
+
hasAccess: hasAcess
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return responseReturn;
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
35
90
|
}
|
|
36
|
-
/** @nocollapse */ MenuDatasulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
91
|
+
/** @nocollapse */ MenuDatasulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
92
|
/** @nocollapse */ MenuDatasulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService });
|
|
38
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, decorators: [{
|
|
39
94
|
type: Injectable
|
|
40
|
-
}], ctorParameters: function () { return []; } });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kYXRhc3VsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvbWVudS1kYXRhc3VsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFHMUIsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRjVCLG9CQUFlLEdBQUcsMERBQTBELENBQUM7SUFFN0MsQ0FBQztJQUV6Qzs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLE9BQU87UUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLFlBQVk7UUFDaEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsV0FBbUIsRUFBRSxNQUFXLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDM0QsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM3RixJQUFJLE9BQU8sR0FBRyxJQUFJLFdBQVcsTUFBTSxXQUFXLGlCQUFpQixXQUFXLElBQUksQ0FBQztRQUUvRSxJQUFJLE1BQU0sRUFBRTtZQUNSLE9BQU8sR0FBRyxHQUFHLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztTQUNwQztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQW1DO1FBQ3RELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUIsV0FBVyxHQUFHLFdBQVcsQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxXQUFXLElBQUksV0FBVyxLQUFLLEVBQUUsRUFBRTtnQkFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQztTQUNKO1FBRUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQyxPQUFPLEVBQUUsQ0FBQztnQkFDTixJQUFJLEVBQUUsR0FBRztnQkFDVCxPQUFPLEVBQUUsbUVBQW1FO2dCQUM1RSxlQUFlLEVBQUUsc0ZBQXNGO2FBQzFHLENBQUMsQ0FBQztTQUNOO1FBRUQsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQUUsT0FBTyxRQUFRLENBQUM7YUFBRTtZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFBRSxPQUFPLFFBQVEsQ0FBQzthQUFFO1lBRWxELE1BQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7WUFFM0MsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUVyQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsUUFBUTtvQkFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO29CQUNwQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBRWxDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNqQyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUMvQixRQUFRLEdBQUcsSUFBSSxDQUFDO3lCQUNuQjtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtnQkFFRCxjQUFjLENBQUMsSUFBSSxDQUFDO29CQUNoQixXQUFXLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztvQkFDN0IsU0FBUyxFQUFFLFFBQVE7aUJBQ3RCLENBQUMsQ0FBQzthQUNOO1lBRUQsT0FBTyxjQUFjLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O2tJQTlGUSxrQkFBa0I7c0lBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBNZW51RGF0YXN1bFNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgdXJsTWVudVByb2dyYW1zID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZndrL3YxL21lbnVQcm9ncmFtcy9saXN0JztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIHByb2dyYW0gPSB7fTtcclxuICAgICAqIHByb2dyYW1bJ3ByZyddID0gXCJjZDAyMTBcIjtcclxuICAgICAqIHByb2dyYW1bJ3BhcmFtcyddID0gJzAxfDEyMzQ1NidcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhbGxQcm9ncmVzcyhwcm9ncmFtKSB7XHJcbiAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKHsgcHJvZ3JhbSB9LCAnKicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogdmFyIG5vdGlmaWNhdGlvbiA9IHt9O1xyXG4gICAgICogbm90aWZpY2F0aW9uWyd0eXBlJ10gPSAnc3VjY2Vzcyc7XHJcbiAgICAgKiBub3RpZmljYXRpb25bJ3RpdGxlJ10gPSAnTm90aWZpY2F0aW9uIFRpdGxlJ1xyXG4gICAgICogbm90aWZpY2F0aW9uWydkZXRhaWwnXSA9ICdOb3RpZmljYXRpb24gRGV0YWlsJ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoeyBub3RpZmljYXRpb24gfSwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb3BlblBhdGgocHJvZ3JhbU5hbWU6IHN0cmluZywgcGFyYW1zOiBhbnksIHBhcmVudCA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkYXRhc3VsUGF0aCA9IGRvY3VtZW50LnJlZmVycmVyLmluZGV4T2YoJ3RvdHZzLW1lbnUnKSA+IDAgPyAndG90dnMtbWVudScgOiAnbWVudS1odG1sJztcclxuICAgICAgICBsZXQgYmFzZVVybCA9IGAvJHtkYXRhc3VsUGF0aH0vIy8ke2RhdGFzdWxQYXRofS9wcm9ncmFtLWh0bWwvJHtwcm9ncmFtTmFtZX0vI2A7XHJcblxyXG4gICAgICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgICAgICAgYmFzZVVybCA9IGAke2Jhc2VVcmx9LyR7cGFyYW1zfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGJhc2VVcmwsICdfcGFyZW50Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4oYmFzZVVybCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwcm9ncmFtU2VjdXJpdHkocHJvZ3JhbU5hbWU6IHN0cmluZyB8IEFycmF5PHN0cmluZz4pOiBPYnNlcnZhYmxlPE9iamVjdD4ge1xyXG4gICAgICAgIGxldCBwcm9ncmFtTGlzdCA9IFtdO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb2dyYW1OYW1lKSkge1xyXG4gICAgICAgICAgICBwcm9ncmFtTGlzdCA9IHByb2dyYW1OYW1lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChwcm9ncmFtTmFtZSAmJiBwcm9ncmFtTmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHByb2dyYW1MaXN0LnB1c2gocHJvZ3JhbU5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXByb2dyYW1MaXN0IHx8IHByb2dyYW1MaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yoe1xyXG4gICAgICAgICAgICAgICAgY29kZTogNDAwLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ07Do28gZm9pIHBvc3PDrXZlbCB2YWxpZGFyIGEgU2VndXJhbsOnYSBkb3MgUHJvZ3JhbWFzLCBsaXN0YSB2YXppYSAhJyxcclxuICAgICAgICAgICAgICAgIGRldGFpbGVkTWVzc2FnZTogJ0EgbGlzdGEgZGUgcHJvZ3JhbWFzIGluZGljYWRvcyBwYXJhIHZhbGlkYcOnw6NvIGRlIHNlZ3VyYW7Dp2Egw6kgaW52w6FsaWRhIG91IGVzdMOhIHZhemlhLidcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBhUmVxdWVzdCA9IFtdO1xyXG4gICAgICAgIHByb2dyYW1MaXN0LmZvckVhY2gocHJvZ3JhbVNlYXJjaCA9PiB7XHJcbiAgICAgICAgICAgIGFSZXF1ZXN0LnB1c2godGhpcy5odHRwLnBvc3Q8T2JqZWN0Pih0aGlzLnVybE1lbnVQcm9ncmFtcywgeyBzZWFyY2g6IHByb2dyYW1TZWFyY2ggfSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4oYVJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IE9iamVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH1cclxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZXNwb25zZSkpIHsgcmV0dXJuIHJlc3BvbnNlOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VSZXR1cm4gPSBuZXcgQXJyYXk8T2JqZWN0PigpO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHByb2dyYW1MaXN0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNwb25zZVByb2cgPSByZXNwb25zZVtpZHhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBoYXNBY2VzcyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2VQcm9nICYmIHJlc3BvbnNlUHJvZy5wcm9ncmFtcyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBBcnJheS5pc0FycmF5KHJlc3BvbnNlUHJvZy5wcm9ncmFtcykgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VQcm9nLnByb2dyYW1zLmxlbmd0aCA+IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlUHJvZy5wcm9ncmFtcy5mb3JFYWNoKHByb2cgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2cucHJnID09PSBwcm9ncmFtTGlzdFtpZHhdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzQWNlc3MgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlUmV0dXJuLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtTmFtZTogcHJvZ3JhbUxpc3RbaWR4XSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzQWNjZXNzOiBoYXNBY2Vzc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZVJldHVybjtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, EventEmitter, Component, ViewChild, Input, Output, Pipe, NgModule } from '@angular/core';
|
|
3
|
-
import { of } from 'rxjs';
|
|
3
|
+
import { of, forkJoin, map as map$1 } from 'rxjs';
|
|
4
4
|
import { map } from 'rxjs/operators';
|
|
5
5
|
import * as i1 from '@angular/common/http';
|
|
6
6
|
import { HttpErrorResponse, HttpClientModule } from '@angular/common/http';
|
|
@@ -244,7 +244,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
244
244
|
}], ctorParameters: function () { return []; } });
|
|
245
245
|
|
|
246
246
|
class MenuDatasulService {
|
|
247
|
-
constructor() {
|
|
247
|
+
constructor(http) {
|
|
248
|
+
this.http = http;
|
|
249
|
+
this.urlMenuPrograms = '/dts/datasul-rest/resources/prg/fwk/v1/menuPrograms/list';
|
|
250
|
+
}
|
|
248
251
|
/**
|
|
249
252
|
* var program = {};
|
|
250
253
|
* program['prg'] = "cd0210";
|
|
@@ -275,12 +278,61 @@ class MenuDatasulService {
|
|
|
275
278
|
window.open(baseUrl);
|
|
276
279
|
}
|
|
277
280
|
}
|
|
281
|
+
programSecurity(programName) {
|
|
282
|
+
let programList = [];
|
|
283
|
+
if (Array.isArray(programName)) {
|
|
284
|
+
programList = programName;
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
if (programName && programName !== '') {
|
|
288
|
+
programList.push(programName);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (!programList || programList.length === 0) {
|
|
292
|
+
return of({
|
|
293
|
+
code: 400,
|
|
294
|
+
message: 'Não foi possível validar a Segurança dos Programas, lista vazia !',
|
|
295
|
+
detailedMessage: 'A lista de programas indicados para validação de segurança é inválida ou está vazia.'
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
const aRequest = [];
|
|
299
|
+
programList.forEach(programSearch => {
|
|
300
|
+
aRequest.push(this.http.post(this.urlMenuPrograms, { search: programSearch }));
|
|
301
|
+
});
|
|
302
|
+
return forkJoin(aRequest).pipe(map$1((response) => {
|
|
303
|
+
if (!response) {
|
|
304
|
+
return response;
|
|
305
|
+
}
|
|
306
|
+
if (!Array.isArray(response)) {
|
|
307
|
+
return response;
|
|
308
|
+
}
|
|
309
|
+
const responseReturn = new Array();
|
|
310
|
+
for (let idx = 0; idx < programList.length; idx++) {
|
|
311
|
+
const responseProg = response[idx];
|
|
312
|
+
let hasAcess = false;
|
|
313
|
+
if (responseProg && responseProg.programs &&
|
|
314
|
+
Array.isArray(responseProg.programs) &&
|
|
315
|
+
responseProg.programs.length > 0) {
|
|
316
|
+
responseProg.programs.forEach(prog => {
|
|
317
|
+
if (prog.prg === programList[idx]) {
|
|
318
|
+
hasAcess = true;
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
responseReturn.push({
|
|
323
|
+
programName: programList[idx],
|
|
324
|
+
hasAccess: hasAcess
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
return responseReturn;
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
278
330
|
}
|
|
279
|
-
/** @nocollapse */ MenuDatasulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
331
|
+
/** @nocollapse */ MenuDatasulService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
280
332
|
/** @nocollapse */ MenuDatasulService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService });
|
|
281
333
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MenuDatasulService, decorators: [{
|
|
282
334
|
type: Injectable
|
|
283
|
-
}], ctorParameters: function () { return []; } });
|
|
335
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
284
336
|
|
|
285
337
|
class CacheParamsService {
|
|
286
338
|
constructor() {
|