Skip to content
Snippets Groups Projects

Release 0.12.1

Merged Timm Fitschen requested to merge release-0.12.1 into main
6 files
+ 198
34
Compare changes
  • Side-by-side
  • Inline

Files

@@ -27,7 +27,6 @@ package org.caosdb.server.database.backend.transaction;
import java.util.LinkedList;
import java.util.List;
import org.apache.shiro.subject.Subject;
import org.caosdb.server.accessControl.Principal;
import org.caosdb.server.database.BackendTransaction;
import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
import org.caosdb.server.datatype.CollectionValue;
@@ -40,7 +39,6 @@ import org.caosdb.server.entity.RetrieveEntity;
import org.caosdb.server.entity.Role;
import org.caosdb.server.entity.container.Container;
import org.caosdb.server.entity.wrapper.Property;
import org.caosdb.server.permissions.EntityACL;
import org.caosdb.server.permissions.EntityPermission;
import org.caosdb.server.query.Query;
import org.caosdb.server.query.Query.Selection;
@@ -63,11 +61,10 @@ public class RetrieveFullEntityTransaction extends BackendTransaction {
private final Container<? extends EntityInterface> container;
private final Subject subject;
public RetrieveFullEntityTransaction(final EntityInterface entity) {
final Container<EntityInterface> c = new Container<>();
c.add(entity);
this.container = c;
this.subject = null;
@SuppressWarnings("unchecked")
public RetrieveFullEntityTransaction(final EntityInterface entity, Subject subject) {
this(new Container<>(), subject);
((Container<EntityInterface>) this.container).add(entity);
}
public RetrieveFullEntityTransaction(
@@ -76,13 +73,8 @@ public class RetrieveFullEntityTransaction extends BackendTransaction {
this.subject = subject;
}
public RetrieveFullEntityTransaction(final Container<? extends EntityInterface> container) {
this.container = container;
this.subject = null;
}
public RetrieveFullEntityTransaction(final EntityID id) {
this(new RetrieveEntity(id));
public RetrieveFullEntityTransaction(final EntityID id, Subject subject) {
this(new RetrieveEntity(id), subject);
}
@Override
@@ -235,15 +227,11 @@ public class RetrieveFullEntityTransaction extends BackendTransaction {
final RetrieveEntity ref = new RetrieveEntity(value.getId());
if (this.subject != null) {
System.out.println(((Principal) this.subject.getPrincipal()).getUsername());
// final EntityInterface e =
// execute(new RetrieveSparseEntity(q.getKey(), null), query.getAccess()).getEntity();
// check whether the referenced entity may be retrieved
// recursion! (Only for the matching selections)
retrieveFullEntity(ref, getSubSelects(selections, propertyName));
final EntityACL entityACL = ref.getEntityACL();
if (!entityACL.isPermitted(this.subject, EntityPermission.RETRIEVE_ENTITY)) {
// check whether the referenced entity is readable
if (!ref.getEntityACL().isPermitted(this.subject, EntityPermission.RETRIEVE_ENTITY)) {
return;
}
value.setEntity(ref, true);
Loading