diff --git a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java index 334e408a82ddc343ed634979dc76e0b11f33a94b..3ce061210a75992ab402cb838df1e961d06ff4ca 100644 --- a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java +++ b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java @@ -401,12 +401,13 @@ public class WriteTransaction extends Transaction<WritableContainer> } // entity role - if (!(newEntity instanceof Property && oldEntity instanceof Property) - && newEntity.hasRole() + if (newEntity.hasRole() && oldEntity.hasRole() && !newEntity.getRole().equals(oldEntity.getRole()) || newEntity.hasRole() ^ oldEntity.hasRole()) { - needPermissions.add(EntityPermission.UPDATE_ROLE); + if (!(newEntity instanceof Property && oldEntity instanceof Property)) { + needPermissions.add(EntityPermission.UPDATE_ROLE); + } updatetable = true; }