opf-validator-beta 0.0.37 → 0.0.38
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentValidationHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAEjE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CA+D5E;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,WAAW,EAAE,EACnC,cAAc,EAAE,MAAM,WAAW,EAAE,EACnC,kBAAkB,EAAE,MAAM,WAAW,EAAE,EACvC,mBAAmB,EAAE,MAAM,WAAW,EAAE,GACvC,4BAA4B,CAiC9B"}
|
|
@@ -10,42 +10,45 @@ function validatePermissionRules(permissions) {
|
|
|
10
10
|
const errors = [];
|
|
11
11
|
const has = (p) => permissions.includes(p);
|
|
12
12
|
const hasAll = (required) => required.every(p => has(p));
|
|
13
|
-
// 1.
|
|
13
|
+
// 1. RESOURCES_READ ou IDENTIFICATIONS isoladas (SEM nenhuma funcional restante)
|
|
14
14
|
const identificationPerms = [
|
|
15
15
|
"CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
|
|
16
16
|
"CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ"
|
|
17
17
|
];
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const isOnlyResources = permissions.length === 1 && has("RESOURCES_READ");
|
|
19
|
+
const isOnlyId = identificationPerms.some(p => permissions.length === 1 && has(p));
|
|
20
|
+
const isOnlyIdAndResources = permissions.length === 2 && has("RESOURCES_READ") && identificationPerms.some(has);
|
|
21
|
+
if (isOnlyResources || isOnlyId || isOnlyIdAndResources) {
|
|
22
|
+
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("A solicitação contém apenas permissões de base (Resources/Identificação) sem permissões funcionais (Contas, Cartões, etc)."));
|
|
20
23
|
}
|
|
21
|
-
// 2.
|
|
24
|
+
// 2. PF e PJ não podem coexistir (Erro de conflito de lógica)
|
|
22
25
|
const hasPersonal = has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_PERSONAL_ADITTIONALINFO_READ");
|
|
23
26
|
const hasBusiness = has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_ADITTIONALINFO_READ");
|
|
24
27
|
if (hasPersonal && hasBusiness) {
|
|
25
28
|
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Permissões de clientes PF e PJ não podem ser informadas em conjunto."));
|
|
26
29
|
}
|
|
27
|
-
// 3. Cluster: Contas (ACCOUNTS)
|
|
30
|
+
// 3. Cluster: Contas (ACCOUNTS)
|
|
28
31
|
const accountsCluster = ["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"];
|
|
29
32
|
if (permissions.some(p => p.startsWith("ACCOUNTS_")) && !hasAll(accountsCluster)) {
|
|
30
|
-
errors.push(openFinanceErrors_1.CommonErrors.
|
|
33
|
+
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("Grupo de Contas incompleto."));
|
|
31
34
|
}
|
|
32
|
-
// 4. Cluster: Cartão de Crédito (CREDIT_CARDS)
|
|
35
|
+
// 4. Cluster: Cartão de Crédito (CREDIT_CARDS)
|
|
33
36
|
const creditCardCluster = ["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ", "CREDIT_CARDS_ACCOUNTS_LIMITS_READ", "RESOURCES_READ"];
|
|
34
37
|
if (permissions.some(p => p.startsWith("CREDIT_CARDS_")) && !hasAll(creditCardCluster)) {
|
|
35
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
38
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Cartão de Crédito incompleto."));
|
|
36
39
|
}
|
|
37
|
-
// 5. Cluster: Operações de Crédito
|
|
40
|
+
// 5. Cluster: Operações de Crédito
|
|
38
41
|
const creditOpsPrefixes = ["LOANS_", "FINANCINGS_", "UNARRANGED_ACCOUNTS_OVERDRAFT_", "INVOICE_FINANCINGS_"];
|
|
39
42
|
const hasAnyCreditOp = permissions.some(p => creditOpsPrefixes.some(pre => p.startsWith(pre)));
|
|
40
43
|
if (hasAnyCreditOp) {
|
|
41
|
-
//
|
|
44
|
+
// Se enviou o "grosso" das permissões de crédito mas esqueceu os LIMITS ou RESOURCES
|
|
42
45
|
if (!has("CREDIT_OPERATIONS_LIMITS_READ") || !has("RESOURCES_READ")) {
|
|
43
46
|
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de Crédito exigem RESOURCES_READ e CREDIT_OPERATIONS_LIMITS_READ."));
|
|
44
47
|
}
|
|
45
|
-
// Regra B: Cada subgrupo deve estar completo (READ, WARRANTIES, SCHEDULED, PAYMENTS)
|
|
46
48
|
const checkSubGroup = (prefix, label) => {
|
|
47
49
|
const subGroup = [`${prefix}READ`, `${prefix}WARRANTIES_READ`, `${prefix}SCHEDULED_INSTALMENTS_READ`, `${prefix}PAYMENTS_READ`];
|
|
48
50
|
if (permissions.some(p => p.startsWith(prefix)) && !subGroup.every(p => has(p))) {
|
|
51
|
+
// Se o subgrupo de crédito (ex: Empréstimos) estiver incompleto, o erro também é COMBINACAO_PERMISSOES_INCORRETA
|
|
49
52
|
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA(`O grupo de ${label} está incompleto.`));
|
|
50
53
|
}
|
|
51
54
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"consentValidationHelpers.js","sourceRoot":"","sources":["../../../src/utils/validators/consentValidationHelpers.ts"],"names":[],"mappings":"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"}
|