From 09f53f64594cbb15f3b3471b9c67110655361842 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Fri, 4 Dec 2020 04:32:45 +0100 Subject: [PATCH] WIP: state change permissions --- src/main/java/org/caosdb/server/permissions/EntityACL.java | 4 +++- src/main/java/org/caosdb/server/transaction/Update.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/caosdb/server/permissions/EntityACL.java b/src/main/java/org/caosdb/server/permissions/EntityACL.java index 5adaca78..9c2fa6c7 100644 --- a/src/main/java/org/caosdb/server/permissions/EntityACL.java +++ b/src/main/java/org/caosdb/server/permissions/EntityACL.java @@ -253,7 +253,9 @@ public class EntityACL { public final Element toElement() { final Element ret = new Element("EntityACL"); - for (final EntityACI aci : this.acl) { + final List<EntityACI> localAcl = new ArrayList<>(this.acl); + localAcl.addAll(GLOBAL_PERMISSIONS.acl); + for (final EntityACI aci : localAcl) { final boolean isDenial = isDenial(aci.getBitSet()); final boolean isPriority = isPriorityBitSet(aci.getBitSet()); final Element e = new Element(isDenial ? "Deny" : "Grant"); diff --git a/src/main/java/org/caosdb/server/transaction/Update.java b/src/main/java/org/caosdb/server/transaction/Update.java index 894728cc..75ec7532 100644 --- a/src/main/java/org/caosdb/server/transaction/Update.java +++ b/src/main/java/org/caosdb/server/transaction/Update.java @@ -40,6 +40,7 @@ import org.caosdb.server.entity.FileProperties; import org.caosdb.server.entity.RetrieveEntity; import org.caosdb.server.entity.container.TransactionContainer; import org.caosdb.server.entity.container.UpdateContainer; +import org.caosdb.server.entity.wrapper.EntityWrapper; import org.caosdb.server.entity.wrapper.Parent; import org.caosdb.server.entity.wrapper.Property; import org.caosdb.server.permissions.EntityPermission; @@ -239,7 +240,8 @@ public class Update extends WriteTransaction<UpdateContainer> { } // entity role - if (newEntity.hasRole() + if (!(newEntity instanceof EntityWrapper) + && newEntity.hasRole() && oldEntity.hasRole() && !newEntity.getRole().equals(oldEntity.getRole()) || newEntity.hasRole() ^ oldEntity.hasRole()) { -- GitLab