This commit is contained in:
Fabio Sinibaldi 2023-01-12 18:03:55 +01:00
parent eb3a5083b9
commit 3d03e565b4
3 changed files with 20 additions and 45 deletions

View File

@ -82,12 +82,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
log.debug("Concessione {}, managing relazione {}",document.getId(),rel); log.debug("Concessione {}, managing relazione {}",document.getId(),rel);
rel.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" relazione di scavo"); rel.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" relazione di scavo");
rel.putIfAbsent(ProfiledConcessione.SOGGETTO,doc.get(ProfiledConcessione.SOGGETTO)); rel.putIfAbsent(ProfiledConcessione.SOGGETTO,doc.get(ProfiledConcessione.SOGGETTO));
rel.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo());
rel.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess());
Access relAccess=Serialization.convert(rel.get(RegisteredFileSet.ACCESS),Access.class);
relAccess.setLicense(ConstraintCheck.defaultFor(relAccess.getLicense(),"CC-BY-4.0").evaluate());
relAccess.setPolicy(ConstraintCheck.defaultFor(relAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
rel.put(RegisteredFileSet.ACCESS,relAccess);
doc.put(ProfiledConcessione.RELAZIONE_SCAVO,rel); doc.put(ProfiledConcessione.RELAZIONE_SCAVO,rel);
@ -96,12 +90,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
Serialization.convert(doc.get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class):new Document(); Serialization.convert(doc.get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class):new Document();
log.debug("Concessione {}, managing abstract relazione {}",document.getId(),abs); log.debug("Concessione {}, managing abstract relazione {}",document.getId(),abs);
abs.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" abstract relazione di scavo"); abs.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" abstract relazione di scavo");
abs.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo());
abs.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess());
Access absAccess=Serialization.convert(abs.get(RegisteredFileSet.ACCESS),Access.class);
absAccess.setLicense(ConstraintCheck.defaultFor(absAccess.getLicense(),"CC-BY-4.0").evaluate());
absAccess.setPolicy(ConstraintCheck.defaultFor(absAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
abs.put(RegisteredFileSet.ACCESS,absAccess);
doc.put(ProfiledConcessione.ABSTRACT_RELAZIONE,abs); doc.put(ProfiledConcessione.ABSTRACT_RELAZIONE,abs);
@ -120,13 +108,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
// BBOX in registered filesets // BBOX in registered filesets
pos.put(ProfiledConcessione.RESPONSABILE,doc.get(ProfiledConcessione.RESPONSABILE)); pos.put(ProfiledConcessione.RESPONSABILE,doc.get(ProfiledConcessione.RESPONSABILE));
pos.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo());
pos.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess());
Access posAccess=Serialization.convert(rel.get(RegisteredFileSet.ACCESS),Access.class);
posAccess.setLicense(ConstraintCheck.defaultFor(posAccess.getLicense(),"CC-BY-4.0").evaluate());
posAccess.setPolicy(ConstraintCheck.defaultFor(posAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
pos.put(RegisteredFileSet.ACCESS,posAccess);
doc.put(ProfiledConcessione.POSIZIONAMENTO_SCAVO,pos); doc.put(ProfiledConcessione.POSIZIONAMENTO_SCAVO,pos);
} }
@ -139,12 +120,7 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
for (int i = 0; i <imgs.size() ; i++) { for (int i = 0; i <imgs.size() ; i++) {
Document imgDoc=Serialization.asDocument(imgs.get(i)); Document imgDoc=Serialization.asDocument(imgs.get(i));
imgDoc.putIfAbsent(ProfiledConcessione.SOGGETTO,doc.get(ProfiledConcessione.SOGGETTO)); imgDoc.putIfAbsent(ProfiledConcessione.SOGGETTO,doc.get(ProfiledConcessione.SOGGETTO));
imgDoc.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo());
imgDoc.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess());
Access imgAccess=Serialization.convert(imgDoc.get(RegisteredFileSet.ACCESS),Access.class);
imgAccess.setLicense(ConstraintCheck.defaultFor(imgAccess.getLicense(),"CC-BY-4.0").evaluate());
imgAccess.setPolicy(ConstraintCheck.defaultFor(imgAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
imgDoc.put(RegisteredFileSet.ACCESS,imgAccess);
wrapper.setElement("$."+ProfiledConcessione.IMMAGINI_RAPPRESENTATIVE+"["+i+"]",imgDoc); wrapper.setElement("$."+ProfiledConcessione.IMMAGINI_RAPPRESENTATIVE+"["+i+"]",imgDoc);
} }
} }
@ -168,12 +144,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
piantaDoc.put(ProfiledConcessione.RESPONSABILE,doc.get(ProfiledConcessione.RESPONSABILE)); piantaDoc.put(ProfiledConcessione.RESPONSABILE,doc.get(ProfiledConcessione.RESPONSABILE));
piantaDoc.putIfAbsent(RegisteredFileSet.CREATION_INFO,c.getInfo().getCreationInfo());
piantaDoc.putIfAbsent(RegisteredFileSet.ACCESS,c.getInfo().getAccess());
Access posAccess=Serialization.convert(rel.get(RegisteredFileSet.ACCESS),Access.class);
posAccess.setLicense(ConstraintCheck.defaultFor(posAccess.getLicense(),"CC-BY-4.0").evaluate());
posAccess.setPolicy(ConstraintCheck.defaultFor(posAccess.getPolicy(), AccessPolicy.OPEN).evaluate());
piantaDoc.put(RegisteredFileSet.ACCESS,posAccess);
wrapper.setElement("$."+ProfiledConcessione.PIANTE_FINE_SCAVO+"["+i+"]",piantaDoc); wrapper.setElement("$."+ProfiledConcessione.PIANTE_FINE_SCAVO+"["+i+"]",piantaDoc);
} }
} }

View File

@ -53,13 +53,13 @@ public class ConcessioniPluginTests extends BasicPluginTest {
Document rel = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.RELAZIONE_SCAVO), Document.class); Document rel = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.RELAZIONE_SCAVO), Document.class);
assertNotNull(rel.get(ProfiledConcessione.Sections.TITOLO)); assertNotNull(rel.get(ProfiledConcessione.Sections.TITOLO));
assertNotNull(rel.get(ProfiledConcessione.SOGGETTO)); assertNotNull(rel.get(ProfiledConcessione.SOGGETTO));
assertNotNull(rel.get(RegisteredFileSet.CREATION_INFO)); assertNull(rel.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(rel.get(RegisteredFileSet.ACCESS)); assertNull(rel.get(RegisteredFileSet.ACCESS));
Document abs = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class); Document abs = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class);
assertNotNull(abs.get(ProfiledConcessione.Sections.TITOLO)); assertNotNull(abs.get(ProfiledConcessione.Sections.TITOLO));
assertNotNull(abs.get(RegisteredFileSet.CREATION_INFO)); assertNull(abs.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(abs.get(RegisteredFileSet.ACCESS)); assertNull(abs.get(RegisteredFileSet.ACCESS));
Document pos = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.POSIZIONAMENTO_SCAVO), Document.class); Document pos = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.POSIZIONAMENTO_SCAVO), Document.class);
@ -67,8 +67,8 @@ public class ConcessioniPluginTests extends BasicPluginTest {
assertNotNull(pos.get(ProfiledConcessione.Sections.ABSTRACT)); assertNotNull(pos.get(ProfiledConcessione.Sections.ABSTRACT));
assertNotNull(pos.get(ProfiledConcessione.Layers.TOPIC)); assertNotNull(pos.get(ProfiledConcessione.Layers.TOPIC));
assertNotNull(pos.get(ProfiledConcessione.Layers.SUB_TOPIC)); assertNotNull(pos.get(ProfiledConcessione.Layers.SUB_TOPIC));
assertNotNull(pos.get(RegisteredFileSet.CREATION_INFO)); assertNull(pos.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(pos.get(RegisteredFileSet.ACCESS)); assertNull(pos.get(RegisteredFileSet.ACCESS));
JSONPathWrapper wrapper = new JSONPathWrapper(c.getTheDocument().toJson()); JSONPathWrapper wrapper = new JSONPathWrapper(c.getTheDocument().toJson());
@ -77,8 +77,8 @@ public class ConcessioniPluginTests extends BasicPluginTest {
try{ try{
Document img = Serialization.asDocument(o); Document img = Serialization.asDocument(o);
assertNotNull(img.get(ProfiledConcessione.SOGGETTO)); assertNotNull(img.get(ProfiledConcessione.SOGGETTO));
assertNotNull(img.get(RegisteredFileSet.CREATION_INFO)); assertNull(img.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(img.get(RegisteredFileSet.ACCESS)); assertNull(img.get(RegisteredFileSet.ACCESS));
}catch (Throwable t){ }catch (Throwable t){
System.out.println("Unable to read IMG "+o); System.out.println("Unable to read IMG "+o);
t.printStackTrace(); t.printStackTrace();
@ -94,8 +94,8 @@ public class ConcessioniPluginTests extends BasicPluginTest {
assertNotNull(pianta.get(ProfiledConcessione.Sections.ABSTRACT)); assertNotNull(pianta.get(ProfiledConcessione.Sections.ABSTRACT));
assertNotNull(pianta.get(ProfiledConcessione.Layers.TOPIC)); assertNotNull(pianta.get(ProfiledConcessione.Layers.TOPIC));
assertNotNull(pianta.get(ProfiledConcessione.Layers.SUB_TOPIC)); assertNotNull(pianta.get(ProfiledConcessione.Layers.SUB_TOPIC));
assertNotNull(pianta.get(RegisteredFileSet.CREATION_INFO)); assertNull(pianta.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(pianta.get(RegisteredFileSet.ACCESS)); assertNull(pianta.get(RegisteredFileSet.ACCESS));
}catch (Throwable t){ }catch (Throwable t){
System.out.println("Unable to read pianta "+o); System.out.println("Unable to read pianta "+o);
t.printStackTrace(); t.printStackTrace();

View File

@ -48,7 +48,6 @@ import org.gcube.application.geoportal.common.model.rest.QueryRequest;
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest; import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
import org.gcube.application.geoportal.common.model.rest.TempFile; import org.gcube.application.geoportal.common.model.rest.TempFile;
import org.gcube.application.geoportal.common.model.useCaseDescriptor.*; import org.gcube.application.geoportal.common.model.useCaseDescriptor.*;
import org.gcube.application.geoportal.common.utils.ContextUtils;
import org.gcube.application.geoportal.common.utils.StorageUtils; import org.gcube.application.geoportal.common.utils.StorageUtils;
import org.gcube.application.geoportal.service.engine.providers.PluginManager; import org.gcube.application.geoportal.service.engine.providers.PluginManager;
@ -236,7 +235,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
// TODO Set Access From UseCaseDescriptor // TODO Set Access From UseCaseDescriptor
Access access=new Access(); Access access=new Access();
access.setLicense(""); access.setLicense("CC-BY-4.0");
access.setPolicy(AccessPolicy.OPEN); access.setPolicy(AccessPolicy.OPEN);
pubInfo.setAccess(access); pubInfo.setAccess(access);
@ -625,6 +624,8 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
} }
if(!policy.canWrite(doc,u)) throw new UnauthorizedAccess("No edit rights on project "+id); if(!policy.canWrite(doc,u)) throw new UnauthorizedAccess("No edit rights on project "+id);
doc.getLifecycleInformation().cleanState(); doc.getLifecycleInformation().cleanState();
doc.getLifecycleInformation().setLastOperationStatus(LifecycleInformation.Status.OK); doc.getLifecycleInformation().setLastOperationStatus(LifecycleInformation.Status.OK);
@ -651,10 +652,14 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
Document parent = Serialization.asDocument(foundElementsByMatchingPaths.get(0)); Document parent = Serialization.asDocument(foundElementsByMatchingPaths.get(0));
Access toSetAccess = doc.getInfo().getAccess(); Access toSetAccess = new Access(doc.getInfo().getAccess().getPolicy(),doc.getInfo().getAccess().getLicense());
if(request.getToSetAccess()!=null){ if(request.getToSetAccess()!=null){
//TODO validate specified Access //TODO validate specified Access
toSetAccess = request.getToSetAccess(); String requestedLicense = request.getToSetAccess().getLicense();
if(requestedLicense!=null)toSetAccess.setLicense(requestedLicense);
AccessPolicy requestedPolicy = request.getToSetAccess().getPolicy();
if(requestedPolicy!=null)toSetAccess.setPolicy(requestedPolicy);
} }
// PREPARE REGISTERED FS // PREPARE REGISTERED FS