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);
rel.putIfAbsent(ProfiledConcessione.Sections.TITOLO,doc.getString(ProfiledConcessione.NOME)+" relazione di scavo");
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);
@ -96,12 +90,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
Serialization.convert(doc.get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class):new Document();
log.debug("Concessione {}, managing abstract relazione {}",document.getId(),abs);
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);
@ -120,13 +108,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
// BBOX in registered filesets
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);
}
@ -139,12 +120,7 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
for (int i = 0; i <imgs.size() ; i++) {
Document imgDoc=Serialization.asDocument(imgs.get(i));
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);
}
}
@ -168,12 +144,6 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements
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);
}
}

View File

@ -53,13 +53,13 @@ public class ConcessioniPluginTests extends BasicPluginTest {
Document rel = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.RELAZIONE_SCAVO), Document.class);
assertNotNull(rel.get(ProfiledConcessione.Sections.TITOLO));
assertNotNull(rel.get(ProfiledConcessione.SOGGETTO));
assertNotNull(rel.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(rel.get(RegisteredFileSet.ACCESS));
assertNull(rel.get(RegisteredFileSet.CREATION_INFO));
assertNull(rel.get(RegisteredFileSet.ACCESS));
Document abs = Serialization.convert(c.getTheDocument().get(ProfiledConcessione.ABSTRACT_RELAZIONE), Document.class);
assertNotNull(abs.get(ProfiledConcessione.Sections.TITOLO));
assertNotNull(abs.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(abs.get(RegisteredFileSet.ACCESS));
assertNull(abs.get(RegisteredFileSet.CREATION_INFO));
assertNull(abs.get(RegisteredFileSet.ACCESS));
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.Layers.TOPIC));
assertNotNull(pos.get(ProfiledConcessione.Layers.SUB_TOPIC));
assertNotNull(pos.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(pos.get(RegisteredFileSet.ACCESS));
assertNull(pos.get(RegisteredFileSet.CREATION_INFO));
assertNull(pos.get(RegisteredFileSet.ACCESS));
JSONPathWrapper wrapper = new JSONPathWrapper(c.getTheDocument().toJson());
@ -77,8 +77,8 @@ public class ConcessioniPluginTests extends BasicPluginTest {
try{
Document img = Serialization.asDocument(o);
assertNotNull(img.get(ProfiledConcessione.SOGGETTO));
assertNotNull(img.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(img.get(RegisteredFileSet.ACCESS));
assertNull(img.get(RegisteredFileSet.CREATION_INFO));
assertNull(img.get(RegisteredFileSet.ACCESS));
}catch (Throwable t){
System.out.println("Unable to read IMG "+o);
t.printStackTrace();
@ -94,8 +94,8 @@ public class ConcessioniPluginTests extends BasicPluginTest {
assertNotNull(pianta.get(ProfiledConcessione.Sections.ABSTRACT));
assertNotNull(pianta.get(ProfiledConcessione.Layers.TOPIC));
assertNotNull(pianta.get(ProfiledConcessione.Layers.SUB_TOPIC));
assertNotNull(pianta.get(RegisteredFileSet.CREATION_INFO));
assertNotNull(pianta.get(RegisteredFileSet.ACCESS));
assertNull(pianta.get(RegisteredFileSet.CREATION_INFO));
assertNull(pianta.get(RegisteredFileSet.ACCESS));
}catch (Throwable t){
System.out.println("Unable to read pianta "+o);
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.TempFile;
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.service.engine.providers.PluginManager;
@ -236,7 +235,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
// TODO Set Access From UseCaseDescriptor
Access access=new Access();
access.setLicense("");
access.setLicense("CC-BY-4.0");
access.setPolicy(AccessPolicy.OPEN);
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);
doc.getLifecycleInformation().cleanState();
doc.getLifecycleInformation().setLastOperationStatus(LifecycleInformation.Status.OK);
@ -651,10 +652,14 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
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){
//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