opf-validator-beta 0.0.41 → 0.0.43
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,CAgE5E;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"}
|
|
@@ -9,53 +9,60 @@ const openFinanceErrors_1 = require("../openFinanceErrors");
|
|
|
9
9
|
function validatePermissionRules(permissions) {
|
|
10
10
|
const errors = [];
|
|
11
11
|
const has = (p) => permissions.includes(p);
|
|
12
|
-
const hasAll = (
|
|
13
|
-
// 1.
|
|
14
|
-
const
|
|
15
|
-
"CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ",
|
|
16
|
-
"CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
12
|
+
const hasAll = (reqs) => reqs.every(p => has(p));
|
|
13
|
+
// --- 1. DEFINIÇÃO DOS CLUSTERS OBRIGATÓRIOS ---
|
|
14
|
+
const clusters = {
|
|
15
|
+
customers_pf: ["CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ", "CUSTOMERS_PERSONAL_ADITTIONALINFO_READ"],
|
|
16
|
+
customers_pj: ["CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ", "CUSTOMERS_BUSINESS_ADITTIONALINFO_READ"],
|
|
17
|
+
accounts: ["ACCOUNTS_READ", "ACCOUNTS_BALANCES_READ", "ACCOUNTS_TRANSACTIONS_READ", "RESOURCES_READ"],
|
|
18
|
+
credit_cards: ["CREDIT_CARDS_ACCOUNTS_READ", "CREDIT_CARDS_ACCOUNTS_BILLS_READ", "CREDIT_CARDS_ACCOUNTS_LIMITS_READ", "RESOURCES_READ"],
|
|
19
|
+
// Operações de Crédito (Cada uma requer seu set + Global Resources/Limits)
|
|
20
|
+
ops_loans: ["LOANS_READ", "LOANS_WARRANTIES_READ", "LOANS_SCHEDULED_INSTALMENTS_READ", "LOANS_PAYMENTS_READ"],
|
|
21
|
+
ops_financings: ["FINANCINGS_READ", "FINANCINGS_WARRANTIES_READ", "FINANCINGS_SCHEDULED_INSTALMENTS_READ", "FINANCINGS_PAYMENTS_READ"],
|
|
22
|
+
ops_unarranged: ["UNARRANGED_ACCOUNTS_OVERDRAFT_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_WARRANTIES_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_SCHEDULED_INSTALMENTS_READ", "UNARRANGED_ACCOUNTS_OVERDRAFT_PAYMENTS_READ"],
|
|
23
|
+
ops_invoice: ["INVOICE_FINANCINGS_READ", "INVOICE_FINANCINGS_WARRANTIES_READ", "INVOICE_FINANCINGS_SCHEDULED_INSTALMENTS_READ", "INVOICE_FINANCINGS_PAYMENTS_READ"]
|
|
24
|
+
};
|
|
25
|
+
// --- 2. REGRA: SEM_PERMISSOES_FUNCIONAIS_RESTANTES ---
|
|
26
|
+
// Este erro ocorre se o request tiver apenas Identificação ou Resources, SEM nenhum grupo de dados (Contas/Cartões/Crédito)
|
|
27
|
+
const functionalGroups = ["ACCOUNTS_", "CREDIT_CARDS_", "LOANS_", "FINANCINGS_", "UNARRANGED_", "INVOICE_", "INVESTMENTS_"];
|
|
28
|
+
const hasFunctional = permissions.some(p => functionalGroups.some(pre => p.startsWith(pre)));
|
|
29
|
+
if (!hasFunctional) {
|
|
30
|
+
// Se enviou apenas Resources ou Identificações (PF ou PJ), mas nada funcional
|
|
31
|
+
if (has("RESOURCES_READ") || has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ")) {
|
|
32
|
+
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("A solicitação não contém permissões funcionais completas."));
|
|
33
|
+
return errors; // O teste exige parar aqui
|
|
34
|
+
}
|
|
23
35
|
}
|
|
24
|
-
//
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("
|
|
36
|
+
// --- 3. REGRA: COMBINACAO_PERMISSOES_INCORRETA (Clusters Incompletos) ---
|
|
37
|
+
// Conflito PF e PJ
|
|
38
|
+
if ((has("CUSTOMERS_PERSONAL_IDENTIFICATIONS_READ") || has("CUSTOMERS_PERSONAL_ADITTIONALINFO_READ")) &&
|
|
39
|
+
(has("CUSTOMERS_BUSINESS_IDENTIFICATIONS_READ") || has("CUSTOMERS_BUSINESS_ADITTIONALINFO_READ"))) {
|
|
40
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Não é permitido misturar permissões PF e PJ."));
|
|
29
41
|
}
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("Grupo de Contas incompleto."));
|
|
42
|
+
// Validação Contas
|
|
43
|
+
if (permissions.some(p => p.startsWith("ACCOUNTS_")) && !hasAll(clusters.accounts)) {
|
|
44
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Contas (Accounts) incompleto."));
|
|
34
45
|
}
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("Grupo de Cartão de Crédito incompleto."));
|
|
46
|
+
// Validação Cartão de Crédito
|
|
47
|
+
if (permissions.some(p => p.startsWith("CREDIT_CARDS_")) && !hasAll(clusters.credit_cards)) {
|
|
48
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo de Cartão de Crédito incompleto."));
|
|
39
49
|
}
|
|
40
|
-
//
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
errors.push(openFinanceErrors_1.CommonErrors.SEM_PERMISSOES_FUNCIONAIS_RESTANTES("Operações de Crédito exigem RESOURCES_READ e CREDIT_OPERATIONS_LIMITS_READ."));
|
|
50
|
+
// Validação Operações de Crédito (Onde o teste costuma falhar)
|
|
51
|
+
const isCreditOp = (p) => p.startsWith("LOANS_") || p.startsWith("FINANCINGS_") || p.startsWith("UNARRANGED_") || p.startsWith("INVOICE_");
|
|
52
|
+
if (permissions.some(isCreditOp)) {
|
|
53
|
+
// Requisito Global de Crédito
|
|
54
|
+
if (!has("RESOURCES_READ") || !has("CREDIT_OPERATIONS_LIMITS_READ")) {
|
|
55
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Operações de Crédito exigem RESOURCES_READ e CREDIT_OPERATIONS_LIMITS_READ."));
|
|
47
56
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
checkSubGroup("UNARRANGED_ACCOUNTS_OVERDRAFT_", "Adiantamento a Depositante");
|
|
58
|
-
checkSubGroup("INVOICE_FINANCINGS_", "Direitos Creditórios Descontados");
|
|
57
|
+
// Subgrupos individuais
|
|
58
|
+
if (has("LOANS_READ") && !hasAll(clusters.ops_loans))
|
|
59
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Loans incompleto."));
|
|
60
|
+
if (has("FINANCINGS_READ") && !hasAll(clusters.ops_financings))
|
|
61
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Financings incompleto."));
|
|
62
|
+
if (has("UNARRANGED_ACCOUNTS_OVERDRAFT_READ") && !hasAll(clusters.ops_unarranged))
|
|
63
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Unarranged incompleto."));
|
|
64
|
+
if (has("INVOICE_FINANCINGS_READ") && !hasAll(clusters.ops_invoice))
|
|
65
|
+
errors.push(openFinanceErrors_1.CommonErrors.COMBINACAO_PERMISSOES_INCORRETA("Grupo Invoice incompleto."));
|
|
59
66
|
}
|
|
60
67
|
return errors;
|
|
61
68
|
}
|
|
@@ -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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"}
|