Skip to content
Snippets Groups Projects
Commit f832e3f5 authored by Henrik tom Wörden's avatar Henrik tom Wörden
Browse files

wip

parent 4d61a80f
No related branches found
No related tags found
2 merge requests!111Release 0.12.1,!109F select acl
Pipeline #44382 failed
......@@ -26,6 +26,7 @@ package org.caosdb.server.database.backend.transaction;
import java.util.LinkedList;
import java.util.List;
import org.apache.shiro.SecurityUtils;
import org.caosdb.server.database.BackendTransaction;
import org.caosdb.server.database.exceptions.EntityDoesNotExistException;
import org.caosdb.server.datatype.CollectionValue;
......@@ -38,6 +39,8 @@ 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;
import org.caosdb.server.utils.EntityStatus;
......@@ -220,6 +223,12 @@ public class RetrieveFullEntityTransaction extends BackendTransaction {
private void resolveReferenceValue(
final ReferenceValue value, final List<Selection> selections, final String propertyName) {
final RetrieveEntity ref = new RetrieveEntity(value.getId());
// check whether the referenced entity may be retrieved
final EntityACL entityACL = ref.getEntityACL();
if (!entityACL.isPermitted(SecurityUtils.getSubject(), EntityPermission.RETRIEVE_ENTITY)) {
return;
}
// recursion! (Only for the matching selections)
retrieveFullEntity(ref, getSubSelects(selections, propertyName));
value.setEntity(ref, true);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment