PorteDelegateConnettoreRidefinito.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */
  20. package org.openspcoop2.web.ctrlstat.servlet.pd;

  21. import java.util.ArrayList;
  22. import java.util.List;

  23. import javax.servlet.http.HttpServletRequest;
  24. import javax.servlet.http.HttpServletResponse;
  25. import javax.servlet.http.HttpSession;

  26. import org.apache.commons.lang.StringUtils;
  27. import org.apache.struts.action.Action;
  28. import org.apache.struts.action.ActionForm;
  29. import org.apache.struts.action.ActionForward;
  30. import org.apache.struts.action.ActionMapping;
  31. import org.openspcoop2.core.commons.Filtri;
  32. import org.openspcoop2.core.commons.Liste;
  33. import org.openspcoop2.core.config.PortaDelegata;
  34. import org.openspcoop2.core.config.utils.UpdateProprietaOggetto;
  35. import org.openspcoop2.core.id.IDPortaDelegata;
  36. import org.openspcoop2.core.id.IDServizio;
  37. import org.openspcoop2.core.id.IDSoggetto;
  38. import org.openspcoop2.core.mapping.MappingFruizionePortaDelegata;
  39. import org.openspcoop2.core.registry.AccordoServizioParteSpecifica;
  40. import org.openspcoop2.core.registry.ConfigurazioneServizioAzione;
  41. import org.openspcoop2.core.registry.Fruitore;
  42. import org.openspcoop2.core.registry.Soggetto;
  43. import org.openspcoop2.core.registry.driver.IDServizioFactory;
  44. import org.openspcoop2.web.ctrlstat.core.ControlStationCore;
  45. import org.openspcoop2.web.ctrlstat.core.ConsoleSearch;
  46. import org.openspcoop2.web.ctrlstat.costanti.CostantiControlStation;
  47. import org.openspcoop2.web.ctrlstat.servlet.GeneralHelper;
  48. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCore;
  49. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaCostanti;
  50. import org.openspcoop2.web.ctrlstat.servlet.aps.AccordiServizioParteSpecificaHelper;
  51. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCore;
  52. import org.openspcoop2.web.ctrlstat.servlet.soggetti.SoggettiCostanti;
  53. import org.openspcoop2.web.lib.mvc.DataElement;
  54. import org.openspcoop2.web.lib.mvc.ForwardParams;
  55. import org.openspcoop2.web.lib.mvc.GeneralData;
  56. import org.openspcoop2.web.lib.mvc.PageData;
  57. import org.openspcoop2.web.lib.mvc.Parameter;
  58. import org.openspcoop2.web.lib.mvc.ServletUtils;
  59. import org.openspcoop2.web.lib.mvc.TipoOperazione;
  60. import org.openspcoop2.web.lib.users.dao.PermessiUtente;

  61. /**    
  62.  * PorteDelegateConnettoreRidefinito
  63.  *
  64.  * @author Pintori Giuliano (pintori@link.it)
  65.  * @author $Author$
  66.  * @version $Rev$, $Date$
  67.  */
  68. public class PorteDelegateConnettoreRidefinito  extends Action {

  69.     @Override
  70.     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

  71.         HttpSession session = request.getSession(true);

  72.         // Inizializzo PageData
  73.         PageData pd = new PageData();

  74.         GeneralHelper generalHelper = new GeneralHelper(session);

  75.         // Inizializzo GeneralData
  76.         GeneralData gd = generalHelper.initGeneralData(request);

  77.         try {
  78.             PorteDelegateHelper porteDelegateHelper = new PorteDelegateHelper(request, pd, session);
  79.             // prelevo il flag che mi dice da quale pagina ho acceduto la sezione delle porte delegate
  80.             Integer parentPD = ServletUtils.getIntegerAttributeFromSession(PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT, session, request);
  81.             if(parentPD == null) parentPD = PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_NONE;
  82.             String tipologia = ServletUtils.getObjectFromSession(request, session, String.class, AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE);
  83.             boolean gestioneFruitori = false;
  84.             if(tipologia!=null &&
  85.                 AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_TIPO_EROGAZIONE_VALUE_FRUIZIONE.equals(tipologia)) {
  86.                 gestioneFruitori = true;
  87.             }
  88.            
  89.             String idTab = porteDelegateHelper.getParameter(CostantiControlStation.PARAMETRO_ID_TAB);
  90.             if(!porteDelegateHelper.isModalitaCompleta() && StringUtils.isNotEmpty(idTab)) {
  91.                 ServletUtils.setObjectIntoSession(request, session, idTab, CostantiControlStation.PARAMETRO_ID_TAB);
  92.             }
  93.            
  94.             // Preparo il menu
  95.             porteDelegateHelper.makeMenu();
  96.                        
  97.             String id = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID);
  98.             int idInt = Integer.parseInt(id);
  99.             String idSoggFruitore = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_SOGGETTO);
  100.             String idAsps = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_ASPS);
  101.             if(idAsps == null)
  102.                 idAsps = "";
  103.             String idFruizione= porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_ID_FRUIZIONE);
  104.             if(idFruizione == null)
  105.                 idFruizione = "";
  106.            
  107.             boolean datiInvocazione = ServletUtils.isCheckBoxEnabled(porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_CONFIGURAZIONE_DATI_INVOCAZIONE));
  108.            
  109.             // Prendo il nome della porta
  110.             PorteDelegateCore porteDelegateCore = new PorteDelegateCore();
  111.             AccordiServizioParteSpecificaCore apsCore = new AccordiServizioParteSpecificaCore(porteDelegateCore);
  112.             SoggettiCore soggettiCore = new SoggettiCore(porteDelegateCore);
  113.            
  114.             IDSoggetto idSoggettoFruitore = null;
  115.             if(porteDelegateCore.isRegistroServiziLocale()){
  116.                 org.openspcoop2.core.registry.Soggetto soggetto = soggettiCore.getSoggettoRegistro(Integer.parseInt(idSoggFruitore));
  117.                 idSoggettoFruitore = new IDSoggetto(soggetto.getTipo(), soggetto.getNome());
  118.             }else{
  119.                 org.openspcoop2.core.config.Soggetto soggetto = soggettiCore.getSoggetto(Integer.parseInt(idSoggFruitore));
  120.                 idSoggettoFruitore = new IDSoggetto(soggetto.getTipo(), soggetto.getNome());
  121.             }

  122.             PortaDelegata portaDelegata = porteDelegateCore.getPortaDelegata(idInt);
  123.             String idporta = portaDelegata.getNome();
  124.            
  125.             String modalita = porteDelegateHelper.getParameter(PorteDelegateCostanti.PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE);
  126.            
  127.             String [] modalitaLabels = { PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_DEFAULT, PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_RIDEFINITO };
  128.             String [] modalitaValues = { PorteDelegateCostanti.VALUE_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_DEFAULT, PorteDelegateCostanti.VALUE_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_RIDEFINITO };

  129.             List<Parameter> lstParam = porteDelegateHelper.getTitoloPD(parentPD, idSoggFruitore, idAsps, idFruizione);
  130.            
  131.             String connettoreLabelDi = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_CONNETTORE_RIDEFINITO_DI;
  132.             String connettoreLabel = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_CONNETTORE_RIDEFINITO;
  133.             if(!porteDelegateHelper.isModalitaCompleta()) {
  134.                 connettoreLabelDi = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_CONNETTORE_DI;
  135.                 connettoreLabel = PorteDelegateCostanti.LABEL_PARAMETRO_PORTE_DELEGATE_CONNETTORE;
  136.             }
  137.            
  138.             String labelPerPorta = null;
  139.             if(parentPD!=null && (parentPD.intValue() == PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_CONFIGURAZIONE)) {
  140.                 labelPerPorta = porteDelegateCore.getLabelRegolaMappingFruizionePortaDelegata(
  141.                         connettoreLabelDi,
  142.                         connettoreLabel,
  143.                         portaDelegata);
  144.             }
  145.             else {
  146.                 labelPerPorta = connettoreLabelDi+idporta;
  147.             }
  148.            
  149.             lstParam.add(new Parameter(labelPerPorta,  null));
  150.            
  151.             // setto la barra del titolo
  152.             ServletUtils.setPageDataTitle(pd, lstParam);
  153.            
  154.             AccordoServizioParteSpecifica asps = null;
  155.             IDServizio idServizio = null;
  156.             if(idAsps!=null && !"".equals(idAsps)) {
  157.                 asps = apsCore.getAccordoServizioParteSpecifica(Long.parseLong(idAsps));
  158.                 idServizio = IDServizioFactory.getInstance().getIDServizioFromAccordo(asps);
  159.             }
  160.             else {
  161.                 idServizio = IDServizioFactory.getInstance().getIDServizioFromValues(portaDelegata.getServizio().getTipo(),
  162.                         portaDelegata.getServizio().getNome(),
  163.                         new IDSoggetto(portaDelegata.getSoggettoErogatore().getTipo(), portaDelegata.getSoggettoErogatore().getNome()),
  164.                         portaDelegata.getServizio().getVersione());
  165.                 asps = apsCore.getServizio(idServizio);
  166.             }
  167.            
  168.             if(asps==null) {
  169.                 throw new Exception("AccordoServizioParteSpecifica non trovato");
  170.             }
  171.            
  172.             Soggetto soggFruitore = soggettiCore.getSoggettoRegistro(Integer.parseInt(idSoggFruitore));
  173.             Fruitore fru = null;
  174.             if(gestioneFruitori) {
  175.                 for (Fruitore fruCheck : asps.getFruitoreList()) {
  176.                     if(fruCheck.getTipo().equals(idSoggettoFruitore.getTipo()) &&
  177.                             fruCheck.getNome().equals(idSoggettoFruitore.getNome())) {
  178.                         fru = fruCheck;
  179.                         break;
  180.                     }
  181.                 }
  182.                 if(fru==null) {
  183.                     throw new Exception("Fruitore con id '"+idSoggettoFruitore.getTipo()+"/"+idSoggettoFruitore.getNome()+"' non trovato");
  184.                 }
  185.             }
  186.             else {
  187.                 for (Fruitore fruCheck : asps.getFruitoreList()) {
  188.                     if(fruCheck.getTipo().equals(soggFruitore.getTipo()) &&
  189.                             fruCheck.getNome().equals(soggFruitore.getNome())) {
  190.                         fru = fruCheck;
  191.                         break;
  192.                     }
  193.                 }
  194.                 if(fru==null) {
  195.                     throw new Exception("Fruitore con id '"+soggFruitore.getTipo()+"/"+soggFruitore.getNome()+"' non trovato");
  196.                 }
  197.             }
  198.             Long idSoggettoLong = fru.getIdSoggetto();
  199.             if(idSoggettoLong==null) {
  200.                 idSoggettoLong = soggettiCore.getIdSoggetto(fru.getNome(), fru.getTipo());
  201.             }
  202.            
  203.             List<String> listaAzioni  = portaDelegata.getAzione().getAzioneDelegataList();
  204.            
  205.             Parameter pId = new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID, asps.getId()+"");
  206.             Parameter pMyId = new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_MY_ID, fru.getId() + "");              
  207.             Parameter actionIdPorta = new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_FRUITORE_VIEW_CONNETTORE_MAPPING_AZIONE_ID_PORTA,portaDelegata.getId()+"");
  208.             Parameter pIdSoggettoErogatore = new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_ID_SOGGETTO_EROGATORE, asps.getIdSoggetto()+"");
  209.             List<Parameter> listParameter = new ArrayList<>();
  210.             listParameter.add(pId);
  211.             listParameter.add(pMyId);
  212.             listParameter.add(pIdSoggettoErogatore);
  213.             listParameter.add(new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_PROVIDER_FRUITORE, idSoggettoLong + ""));
  214.             listParameter.add(actionIdPorta);
  215.             if(listaAzioni!=null && !listaAzioni.isEmpty()) {
  216.                 Parameter action = new Parameter(AccordiServizioParteSpecificaCostanti.PARAMETRO_APS_FRUITORE_VIEW_CONNETTORE_MAPPING_AZIONE,listaAzioni.get(0));
  217.                 listParameter.add(action);
  218.             }
  219.            
  220.             String servletConnettore = AccordiServizioParteSpecificaCostanti.SERVLET_NAME_APS_FRUITORI_CHANGE;
  221.             Parameter[] parametriServletConnettore =listParameter.toArray(new Parameter[listParameter.size()]);
  222.            
  223.             // imposto menu' contestuale
  224.             porteDelegateHelper.impostaComandiMenuContestualePD(idSoggFruitore, idAsps, idFruizione);
  225.            
  226.             if( porteDelegateHelper.isEditModeInProgress()){
  227.                
  228.                 if(modalita == null) {
  229.                     modalita = PorteDelegateCostanti.VALUE_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_RIDEFINITO;
  230.                 }
  231.                
  232.                 // preparo i campi
  233.                 List<DataElement> dati = new ArrayList<>();
  234.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  235.                
  236.                 dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.OTHER,id, idSoggFruitore, null,idAsps,
  237.                         idFruizione, portaDelegata.getTipoSoggettoProprietario(), portaDelegata.getNomeSoggettoProprietario(), dati);
  238.                
  239.                 dati = porteDelegateHelper.addConnettoreDefaultRidefinitoToDati(dati,TipoOperazione.OTHER, modalita, modalitaValues,modalitaLabels,true,servletConnettore,parametriServletConnettore);
  240.                
  241.                 pd.setDati(dati);
  242.                
  243.                 if(modalita.equals(PorteDelegateCostanti.VALUE_PARAMETRO_PORTE_DELEGATE_MODALITA_CONNETTORE_RIDEFINITO)) {
  244.                     pd.disableOnlyButton();
  245.                 }
  246.                
  247.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  248.                 // Forward control to the specified success URI
  249.                 return ServletUtils.getStrutsForwardEditModeInProgress(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_CONNETTORE_RIDEFINITO,
  250.                         ForwardParams.OTHER(""));
  251.             }
  252.            
  253.             // Controlli sui campi immessi
  254.             boolean isOk = porteDelegateHelper.connettoreDefaultRidefinitoCheckData(TipoOperazione.OTHER, modalita);
  255.            
  256.             if(!isOk) {
  257.                 // preparo i campi
  258.                 List<DataElement> dati = new ArrayList<>();

  259.                 dati.add(ServletUtils.getDataElementForEditModeFinished());
  260.                
  261.                 dati = porteDelegateHelper.addHiddenFieldsToDati(TipoOperazione.OTHER,id, idSoggFruitore, null,idAsps,
  262.                         idFruizione, portaDelegata.getTipoSoggettoProprietario(), portaDelegata.getNomeSoggettoProprietario(), dati);
  263.                
  264.                 dati = porteDelegateHelper.addConnettoreDefaultRidefinitoToDati(dati,TipoOperazione.OTHER, modalita, modalitaValues,modalitaLabels,false,servletConnettore,parametriServletConnettore);
  265.                
  266.                 pd.setDati(dati);

  267.                 ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);

  268.                 return ServletUtils.getStrutsForwardEditModeCheckError(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_CONNETTORE_RIDEFINITO, ForwardParams.OTHER(""));
  269.             }
  270.            
  271.            
  272.            
  273.             Fruitore fruitore = null;
  274.             for (Fruitore fruitoreCheck : asps.getFruitoreList()) {
  275.                 if(fruitoreCheck.getTipo().equals(idSoggettoFruitore.getTipo()) && fruitoreCheck.getNome().equals(idSoggettoFruitore.getNome())) {
  276.                     fruitore = fruitoreCheck;
  277.                     break;
  278.                 }
  279.             }
  280.             if(fruitore==null) {
  281.                 throw new Exception("Fruitore con id '"+idSoggettoFruitore.getTipo()+"/"+idSoggettoFruitore.getNome()+"' non trovato");
  282.             }
  283.             for (int i = 0; i < fruitore.sizeConfigurazioneAzioneList(); i++) {
  284.                 ConfigurazioneServizioAzione confAz = fruitore.getConfigurazioneAzione(i);
  285.                 if(confAz.getAzioneList().contains(portaDelegata.getAzione().getAzioneDelegata(0))) {
  286.                     fruitore.removeConfigurazioneAzione(i);
  287.                     break;
  288.                 }
  289.             }
  290.            
  291.            
  292.             String userLogin = ServletUtils.getUserLoginFromSession(session);
  293.            
  294.             IDPortaDelegata idPD = new IDPortaDelegata();
  295.             idPD.setNome(portaDelegata.getNome());
  296.             UpdateProprietaOggetto updateProprietaOggetto = new UpdateProprietaOggetto(idPD, userLogin);
  297.            
  298.             porteDelegateCore.performUpdateOperation(userLogin, porteDelegateHelper.smista(), asps, updateProprietaOggetto);
  299.            
  300.             // Preparo la lista
  301.             ConsoleSearch ricerca = (ConsoleSearch) ServletUtils.getSearchObjectFromSession(request, session, ConsoleSearch.class);


  302.             List<PortaDelegata> lista = null;
  303.             int idLista = -1;
  304.            
  305.             switch (parentPD) {
  306.             case PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_CONFIGURAZIONE:
  307.                
  308.                 int idAspsInt = Integer.parseInt(idAsps);
  309.                 AccordiServizioParteSpecificaHelper apsHelper = new AccordiServizioParteSpecificaHelper(request, pd, session);
  310.                
  311.                 if(datiInvocazione) {
  312.                    
  313.                     if(gestioneFruitori) {
  314.                        
  315.                         idLista = Liste.SERVIZI;
  316.                        
  317.                         ricerca = apsHelper.checkSearchParameters(idLista, ricerca);
  318.                        
  319.                         ricerca.addFilter(idLista, Filtri.FILTRO_DOMINIO, SoggettiCostanti.SOGGETTO_DOMINIO_ESTERNO_VALUE);
  320.                        
  321.                         String superUser =   ServletUtils.getUserLoginFromSession(session);
  322.                         PermessiUtente pu = ServletUtils.getUserFromSession(request, session).getPermessi();
  323.                         boolean [] permessi = new boolean[2];
  324.                         permessi[0] = pu.isServizi();
  325.                         permessi[1] = pu.isAccordiCooperazione();
  326.                         List<AccordoServizioParteSpecifica> lista2 = null;
  327.                         if(apsCore.isVisioneOggettiGlobale(superUser)){
  328.                             lista2 = apsCore.soggettiServizioList(null, ricerca,permessi, gestioneFruitori, false);
  329.                         }else{
  330.                             lista2 = apsCore.soggettiServizioList(superUser, ricerca, permessi, gestioneFruitori, false);
  331.                         }

  332.                         apsHelper.prepareServiziList(ricerca, lista2);
  333.                        
  334.                     }
  335.                     else {
  336.                    
  337.                         idLista = Liste.SERVIZI_FRUITORI;
  338.                         ricerca = porteDelegateHelper.checkSearchParameters(idLista, ricerca);
  339.                        
  340.                         List<Fruitore> listaFruitori = apsCore.serviziFruitoriList(idAspsInt, ricerca);
  341.                         apsHelper.prepareServiziFruitoriList(listaFruitori, idAsps, ricerca);
  342.                        
  343.                     }
  344.                 }
  345.                 else {
  346.                     idLista = Liste.CONFIGURAZIONE_FRUIZIONE;
  347.                     ricerca = porteDelegateHelper.checkSearchParameters(idLista, ricerca);
  348.                    
  349.                     List<MappingFruizionePortaDelegata> listaMapping = apsCore.serviziFruitoriMappingList((long) Integer.parseInt(idFruizione), idSoggettoFruitore, idServizio, ricerca);
  350.                     apsHelper.serviziFruitoriMappingList(listaMapping, idAsps, idSoggFruitore, idSoggettoFruitore, idFruizione, ricerca);
  351.                 }
  352.                
  353.                 break;
  354.             case PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_SOGGETTO:
  355.                 idLista = Liste.PORTE_DELEGATE_BY_SOGGETTO;
  356.                 ricerca = porteDelegateHelper.checkSearchParameters(idLista, ricerca);
  357.                 lista = porteDelegateCore.porteDelegateList(Integer.parseInt(idSoggFruitore), ricerca);
  358.                 porteDelegateHelper.preparePorteDelegateList(ricerca, lista,idLista);
  359.                 break;
  360.             case PorteDelegateCostanti.ATTRIBUTO_PORTE_DELEGATE_PARENT_NONE:
  361.             default:
  362.                 idLista = Liste.PORTE_DELEGATE;
  363.                 ricerca = porteDelegateHelper.checkSearchParameters(idLista, ricerca);
  364.                 lista = porteDelegateCore.porteDelegateList(null, ricerca);
  365.                 porteDelegateHelper.preparePorteDelegateList(ricerca, lista,idLista);
  366.                 break;
  367.             }

  368.             ServletUtils.setGeneralAndPageDataIntoSession(request, session, gd, pd);
  369.            
  370.             ForwardParams fwP = ForwardParams.OTHER("");
  371.             if(!porteDelegateHelper.isModalitaCompleta()) {
  372.                 fwP = PorteDelegateCostanti.TIPO_OPERAZIONE_CONFIGURAZIONE;
  373.             }          
  374.            
  375.             // Forward control to the specified success URI
  376.             return ServletUtils.getStrutsForwardEditModeFinished(mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_CONNETTORE_RIDEFINITO, fwP);
  377.         } catch (Exception e) {
  378.             return ServletUtils.getStrutsForwardError(ControlStationCore.getLog(), e, pd, request, session, gd, mapping, PorteDelegateCostanti.OBJECT_NAME_PORTE_DELEGATE_CONNETTORE_RIDEFINITO,    ForwardParams.OTHER(""));
  379.         }  
  380.     }
  381. }