Skip to content

Commit

Permalink
Allineata lettura delle liste di flussi rendicontazione nelle API-Rag…
Browse files Browse the repository at this point in the history
…ioneria a quanto fatto per le API-Backoffice.

Corretto check autorizzazione del dettaglio di un flusso di rendicontazione per tutte le API.
  • Loading branch information
pintorig committed Dec 13, 2021
1 parent 8bbae50 commit 37d1009
Show file tree
Hide file tree
Showing 16 changed files with 353 additions and 119 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,11 @@ Examples:
| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 2 |
| applicazione_dominio1_star.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom2 | 403 | errore_auth.json | 3 |

Scenario Outline: Lettura dettaglio operatore [<operatore>] del flusso di rendicontazione [<idFlusso>]

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "*"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": false,
"acl": [
{ "servizio": "Rendicontazioni e Incassi", "autorizzazioni": [ "R", "W" ] }
],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
Feature: Ricerca e lettura di flussi di rendicontazione con autorizzazione per UO

Background:

* callonce read('classpath:utils/api/v1/ragioneria/bunch-rendicontazioni.feature')
* def rendicontazioneSchema = read('msg/rendicontazione.json')

Scenario Outline: Lettura dettaglio applicazione [<applicazione>] del flusso di rendicontazione [<idFlusso>]

* def applicazione = read('msg/<applicazione>')
* def backofficeBaseurl = getGovPayApiBaseUrl({api: 'backoffice', versione: 'v1', autenticazione: 'basic'})
* def ragioneriaBaseurl = getGovPayApiBaseUrl({api: 'ragioneria', versione: 'v2', autenticazione: 'basic'})

Given url backofficeBaseurl
And path 'applicazioni', idA2A
And headers gpAdminBasicAutenticationHeader
And request applicazione
When method put
Then assert responseStatus == 200 || responseStatus == 201

* call read('classpath:configurazione/v1/operazioni-resetCache.feature')

Given url ragioneriaBaseurl
And path 'flussiRendicontazione'
And headers idA2ABasicAutenticationHeader
And param dataDa = dataInizio
When method get
Then status 200
And match response ==
"""
{
numRisultati: <numRisultati>,
numPagine: 1,
risultatiPerPagina: 25,
pagina: 1,
prossimiRisultati: '##null',
risultati: '#[<numRisultati>]'
}
"""

Given url ragioneriaBaseurl
And path '/flussiRendicontazione', <idFlusso>
And headers idA2ABasicAutenticationHeader
When method get
Then status <httpStatus>
And match response == read('msg/<risposta>')

Examples:
| applicazione | idFlusso | httpStatus | risposta | numRisultati |
| applicazione_star.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_star.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 5 |
| applicazione_star.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_star.json | idflusso_dom2_uo | 200 | flussoRendicontazioni.json | 5 |
| applicazione_star.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1e2.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1e2.json | idflusso_dom2_uo | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1e2.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 5 |
| applicazione_dominio1.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 |
| applicazione_dominio1.json | idflusso_dom2 | 403 | errore_auth.json | 3 |
| applicazione_dominio2.json | idflusso_dom1 | 403 | errore_auth.json | 2 |
| applicazione_dominio2.json | idflusso_dom1_uo | 403 | errore_auth.json | 2 |
| applicazione_dominio2.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 2 |
| applicazione_dominio2.json | idflusso_dom2_uo | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio2.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 2 |
| applicazione_none.json | idflusso_dom1 | 403 | errore_auth.json | 0 |
| applicazione_none.json | idflusso_dom1_uo | 403 | errore_auth.json | 0 |
| applicazione_none.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 0 |
| applicazione_none.json | idflusso_dom2_uo | 403 | errore_auth.json | 0 |
| applicazione_none.json | idflusso_dom2 | 403 | errore_auth.json | 0 |
| applicazione_dominio1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 2 |
| applicazione_dominio1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 2 |
| applicazione_dominio1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 |
| applicazione_dominio1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 1 |
| applicazione_dominio1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 1 |
| applicazione_dominio1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 |
| applicazione_dominio1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 |
| applicazione_dominio1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 1 |
| applicazione_dominio1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 1 |
| applicazione_dominio1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 1 |
| applicazione_dominio1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 |
| applicazione_dominio1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 |
| applicazione_dominio1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 1 |
| applicazione_dominio1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 |
| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 2 |
| applicazione_dominio1_star.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 |
| applicazione_dominio1_star.json | idflusso_dom2 | 403 | errore_auth.json | 3 |

Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "EC"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "*"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "#(idUnitaOperativa)"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "#(idUnitaOperativa)", "#(idUnitaOperativa2)"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ '#(idDominio)', '#(idDominio_2)' ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ { "idDominio": "#(idDominio)", "unitaOperative": [ "EC"] }, { "idDominio": "#(idDominio_2)", "unitaOperative": [ "EC"] } ],
"tipiPendenza": ['*'],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"principal": '#(idA2A)',
"codificaAvvisi": {
"codificaIuv": "34",
"regExpIuv": ".*",
"generazioneIuvInterna": false
},
"domini": [ ],
"tipiPendenza": [ ],
"apiPagamenti": false,
"apiPendenze": false,
"apiRagioneria": true,
"acl": [ ],
"servizioIntegrazione": {
"url": '#(ente_api_url + "/v1")',
"versioneApi": "REST v1"
},
"abilitato": true
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import it.govpay.bd.BDConfigWrapper;
import it.govpay.bd.BasicBD;
import it.govpay.bd.model.Fr;
import it.govpay.bd.model.IdUnitaOperativa;
import it.govpay.bd.pagamento.FrBD;
import it.govpay.bd.pagamento.filters.FrFilter;
import it.govpay.bd.viste.RendicontazioniBD;
Expand Down Expand Up @@ -160,23 +159,7 @@ public LeggiFrDTOResponse checkAutorizzazioneFlussoRendicontazione(LeggiFrDTO le
filter.setRicercaFR(true);
// filter.setSearchModeEquals(true);
filter.setCodFlusso(leggiRendicontazioniDTO.getIdFlusso());
if(leggiRendicontazioniDTO.getUnitaOperative() != null) {
List<String> idDomini = new ArrayList<>();
List<Long> idUO = new ArrayList<>();
for (IdUnitaOperativa uo : leggiRendicontazioniDTO.getUnitaOperative()) {
if(uo.getCodDominio() != null && !idDomini.contains(uo.getCodDominio())) {
idDomini.add(uo.getCodDominio());
}

if(uo.getIdUnita() != null) {
idUO.add(uo.getIdUnita());
}
}
filter.setCodDomini(idDomini);
filter.setIdUo(idUO);
}

// filter.setDominiUOAutorizzati(leggiRendicontazioniDTO.getUnitaOperative());
filter.setDominiUOAutorizzati(leggiRendicontazioniDTO.getUnitaOperative());

long count = rendicontazioniBD.count(filter);
response.setAuthorized(count > 0);
Expand Down Expand Up @@ -243,30 +226,13 @@ public ListaRendicontazioniDTOResponse listaRendicontazioni(ListaRendicontazioni
filter.setLimit(listaRendicontazioniDTO.getLimit());
filter.setEseguiCountConLimit(listaRendicontazioniDTO.isEseguiCountConLimit());

filter.setCodDomini(listaRendicontazioniDTO.getCodDomini());
filter.setIdTipiVersamento(listaRendicontazioniDTO.getIdTipiVersamento());
if(listaRendicontazioniDTO.getIdDominio() != null) {
filter.setCodDominio(listaRendicontazioniDTO.getIdDominio());
}
filter.setStatoFlusso(listaRendicontazioniDTO.getStato());
filter.setIncassato(listaRendicontazioniDTO.getIncassato());

if(listaRendicontazioniDTO.getUnitaOperative() != null) {
List<String> idDomini = new ArrayList<>();
List<Long> idUO = new ArrayList<>();
for (IdUnitaOperativa uo : listaRendicontazioniDTO.getUnitaOperative()) {
if(uo.getCodDominio() != null && !idDomini.contains(uo.getCodDominio())) {
idDomini.add(uo.getCodDominio());
}

if(uo.getIdUnita() != null) {
idUO.add(uo.getIdUnita());
}
}
filter.setCodDomini(idDomini);
filter.setIdUo(idUO);
}

filter.setDominiUOAutorizzati(listaRendicontazioniDTO.getUnitaOperative());
filter.setCodFlusso(listaRendicontazioniDTO.getCodFlusso());
filter.setIuv(listaRendicontazioniDTO.getIuv());

Expand Down

0 comments on commit 37d1009

Please sign in to comment.