Feature_20435 #3
|
@ -74,7 +74,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
LOG.debug("Built map with form data: " + toMap);
|
||||
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
|
||||
|
||||
Concessione concessioneService = null;
|
||||
Concessione concessioneNew;
|
||||
String mongoId = null;
|
||||
ServiceUtil serviceUtil = new ServiceUtil();
|
||||
MongoConcessioni clientMongo = null;
|
||||
|
@ -97,11 +97,11 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
LOG.debug(ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " building with client obj: " + idp);
|
||||
Concessione concessione = ConvertToServiceModel.toConcessione(idp, user);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.INFORMAZIONI_DI_PROGETTO + " as server obj: " + concessione);
|
||||
|
||||
//Register New Concessione
|
||||
concessioneService=clientMongo.createNew(concessione);
|
||||
mongoId = concessioneService.getMongo_id();
|
||||
|
||||
//Register New Concessione
|
||||
concessioneNew=clientMongo.createNew(concessione);
|
||||
|
||||
|
||||
// ABSTRACT_RELAZIONE_DI_SCAVO
|
||||
list = toMap.get(ConcessioniFormCardTitle.ABSTRACT_RELAZIONE_DI_SCAVO);
|
||||
if (list == null || list.isEmpty() || list.get(0) == null || list.get(0).getListGDB() == null)
|
||||
|
@ -126,18 +126,10 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
LOG.debug(ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " building with client obj: " + rds);
|
||||
RelazioneScavo relazioneDiScavo = ConvertToServiceModel.toRelazioneScavo(abstractRelazioneDiScavo, rds);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.RELAZIONE_DI_SCAVO + " as server obj: " + relazioneDiScavo);
|
||||
//Setting Relazione
|
||||
concessioneService.setRelazioneScavo(relazioneDiScavo);
|
||||
|
||||
// Building TempFile for Relazione
|
||||
List<TempFile> files = serviceUtil.toTemFiles(rds.getFilesUploaded());
|
||||
// Upload file to Concessione
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+files.size()+" file/s");
|
||||
}
|
||||
//Setting Relazione
|
||||
concessioneNew.setRelazioneScavo(relazioneDiScavo);
|
||||
|
||||
|
||||
// IMMAGINI_RAPPRESENTATIVE
|
||||
list = toMap.get(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE);
|
||||
|
@ -146,22 +138,22 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
"Error: no data found for " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE.getTitle());
|
||||
|
||||
List<GenericDatasetBean> imgRaprsLst = list.get(0).getListGDB();
|
||||
for (GenericDatasetBean imgRapr : imgRaprsLst) {
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr);
|
||||
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
|
||||
|
||||
// Building TempFile for Immagini
|
||||
files = serviceUtil.toTemFiles(imgRapr.getFilesUploaded());
|
||||
// Upload file to Concessione
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.IMMAGINI, files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.IMMAGINI + "with "+files.size()+" file/s");
|
||||
List<UploadedImage> immaginiRappresentativeService = null;
|
||||
if(imgRaprsLst.size()>0) {
|
||||
immaginiRappresentativeService = new ArrayList<UploadedImage>(imgRaprsLst.size());
|
||||
for (GenericDatasetBean imgRapr : imgRaprsLst) {
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " building with client obj: " + imgRapr);
|
||||
UploadedImage img = ConvertToServiceModel.toImmaginiRappresentative(imgRapr);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.IMMAGINI_RAPPRESENTATIVE + " as server obj: " + img);
|
||||
immaginiRappresentativeService.add(img);
|
||||
}
|
||||
}
|
||||
|
||||
//Setting Immagini Rappresentative
|
||||
if(immaginiRappresentativeService!=null) {
|
||||
concessioneNew.setImmaginiRappresentative(immaginiRappresentativeService);
|
||||
}
|
||||
|
||||
// POSIZIONAMENTO_DELL_AREA_DI_INDAGINE
|
||||
list = toMap.get(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE);
|
||||
|
@ -171,21 +163,19 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
|
||||
listGDB = list.get(0).getListGDB();
|
||||
GenericDatasetBean pad = listGDB.get(0);
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
|
||||
+ pad);
|
||||
LayerConcessione layerPad = ConvertToServiceModel.toLayerConcessione(pad);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
|
||||
+ layerPad);
|
||||
LayerConcessione layerPad = null;
|
||||
if(pad!=null) {
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " building with client obj: "
|
||||
+ pad);
|
||||
layerPad = ConvertToServiceModel.toLayerConcessione(pad);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.POSIZIONAMENTO_DELL_AREA_DI_INDAGINE + " as server obj: "
|
||||
+ layerPad);
|
||||
}
|
||||
|
||||
// Building TempFile for POSIZIONAMENTO
|
||||
files = serviceUtil.toTemFiles(pad.getFilesUploaded());
|
||||
// Upload file to Concessione
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO, files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.POSIZIONAMENTO + "with "+files.size()+" file/s");
|
||||
//Setting Posizionamento Di Scavo
|
||||
if(layerPad!=null) {
|
||||
concessioneNew.setPosizionamentoScavo(layerPad);
|
||||
}
|
||||
|
||||
// PIANTA_DI_FINE_SCAVO
|
||||
|
@ -195,25 +185,91 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
"Error: no data found for " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO.getTitle());
|
||||
|
||||
listGDB = list.get(0).getListGDB();
|
||||
List<GenericDatasetBean> listPfs = listGDB;
|
||||
//Managing N:N
|
||||
for (GenericDatasetBean pfs : listGDB) {
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " building with client obj: " + pfs);
|
||||
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " as server obj: " + layerPfs);
|
||||
List<LayerConcessione> pianteFineScavo = null;
|
||||
if(listPfs.size()>0) {
|
||||
pianteFineScavo = new ArrayList<LayerConcessione>(listPfs.size());
|
||||
for (GenericDatasetBean pfs : listPfs) {
|
||||
LOG.debug("\n\n");
|
||||
LOG.debug(ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " building with client obj: " + pfs);
|
||||
LayerConcessione layerPfs = ConvertToServiceModel.toLayerConcessione(pfs);
|
||||
LOG.debug("Built " + ConcessioniFormCardTitle.PIANTA_DI_FINE_SCAVO + " as server obj: " + layerPfs);
|
||||
pianteFineScavo.add(layerPfs);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Setting Piante fine Scavo
|
||||
if(pianteFineScavo!=null) {
|
||||
concessioneNew.setPianteFineScavo(pianteFineScavo);
|
||||
}
|
||||
|
||||
//Registering Meta
|
||||
clientMongo.replace(concessioneNew);
|
||||
mongoId = concessioneNew.getMongo_id();
|
||||
LOG.info("Registered the meta. Called mongo.replace for: "+concessioneNew);
|
||||
|
||||
//UPLOADING FILES
|
||||
LOG.info("Now uploading the files...");
|
||||
// Building TempFile for Relazione
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
List<TempFile> files = serviceUtil.toTemFiles(rds.getFilesUploaded());
|
||||
// Upload file to Concessione. Should be one file.
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.RELAZIONE, files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.RELAZIONE + "with "+files.size()+" file/s");
|
||||
}
|
||||
|
||||
// Building TempFile for PIANTA_DI_FINE_SCAVO
|
||||
files = serviceUtil.toTemFiles(pfs.getFilesUploaded());
|
||||
// Upload file to Concessione Section by Path 'Relazione'
|
||||
//IMMAGINI RAPPRESENTATIVE
|
||||
for (int i=0; i<imgRaprsLst.size(); i++) {
|
||||
LOG.debug("\n\n");
|
||||
GenericDatasetBean imgRapr = imgRaprsLst.get(i);
|
||||
// Building TempFile for Immagini
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
files = serviceUtil.toTemFiles(imgRapr.getFilesUploaded());
|
||||
// Upload file to Concessione. The size is always 1 so it is consistent with the 'for' index
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.PIANTE, files);
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.imgByIndex(i), files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.PIANTE + "with "+files.size()+" file/s");
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.IMMAGINI + "with "+files.size()+" file/s");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//POSIZIONAMENTO
|
||||
// Building TempFile for POSIZIONAMENTO
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
files = serviceUtil.toTemFiles(pad.getFilesUploaded());
|
||||
// Upload file to Concessione
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.POSIZIONAMENTO, files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.POSIZIONAMENTO + "with "+files.size()+" file/s");
|
||||
}
|
||||
|
||||
//PIANTE FINE SCAVO
|
||||
if(listPfs.size()>0) {
|
||||
for (int i=0; i<listPfs.size(); i++) {
|
||||
// Building TempFile for PIANTA_DI_FINE_SCAVO
|
||||
GenericDatasetBean pfs = listPfs.get(i);
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
files = serviceUtil.toTemFiles(pfs.getFilesUploaded());
|
||||
// Upload file to Concessione Section by Path 'Relazione'
|
||||
if (files!=null && files.size() > 0) {
|
||||
// saving into back-end
|
||||
AddSectionToConcessioneRequest request = new AddSectionToConcessioneRequest(Paths.piantaByIndex(i), files);
|
||||
clientMongo.registerFile(mongoId, request);
|
||||
LOG.info("Registered the mongoId "+mongoId+" request " + Paths.PIANTE + "with "+files.size()+" file/s");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("Error on converting form data: ", e);
|
||||
throw new Exception(
|
||||
|
@ -224,6 +280,7 @@ public class GeoportalDataEntryServiceImpl extends RemoteServiceServlet implemen
|
|||
|
||||
Concessione concessione;
|
||||
if(clientMongo!=null && mongoId!=null) {
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
concessione = clientMongo.publish(mongoId);
|
||||
//server report
|
||||
ValidationReport report = concessione.getReport();
|
||||
|
|
|
@ -5,6 +5,7 @@ package org.gcube.portlets.user.geoportaldataentry.server;
|
|||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.vomanagement.usermanagement.GroupManager;
|
||||
|
@ -67,20 +68,27 @@ public class SessionUtil {
|
|||
* Retrieve the current scope by using the portal manager.
|
||||
*
|
||||
* @param request the request
|
||||
* @param setInThread the set in thread
|
||||
* @param setContextsInThread set the scope and the security token into current thread
|
||||
* @return a GcubeUser object
|
||||
*/
|
||||
public static String getCurrentContext(HttpServletRequest request, boolean setInThread){
|
||||
public static String getCurrentContext(HttpServletRequest request, boolean setContextsInThread){
|
||||
|
||||
if(request == null)
|
||||
throw new IllegalArgumentException("HttpServletRequest is null!");
|
||||
|
||||
PortalContext pContext = PortalContext.getConfiguration();
|
||||
String context = pContext.getCurrentScope(request);
|
||||
LOG.debug("Returning context " + context);
|
||||
|
||||
if(context != null && setInThread)
|
||||
ScopeProvider.instance.set(context);
|
||||
|
||||
if(setContextsInThread) {
|
||||
GCubeUser user = getCurrentUser(request);
|
||||
String token = pContext.getCurrentUserToken(context, user.getUsername());
|
||||
|
||||
if(context!=null)
|
||||
ScopeProvider.instance.set(context);
|
||||
|
||||
if(token!=null)
|
||||
SecurityTokenProvider.instance.set(token);
|
||||
}
|
||||
|
||||
return context;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue