diff --git a/src/main/java/org/caosdb/server/entity/UpdateEntity.java b/src/main/java/org/caosdb/server/entity/UpdateEntity.java index c8c3d9d3f732d7891f9efb1204bc7124725a2e2c..aa6d591602df66cc9317351cf6a1ea980bc53ea3 100644 --- a/src/main/java/org/caosdb/server/entity/UpdateEntity.java +++ b/src/main/java/org/caosdb/server/entity/UpdateEntity.java @@ -22,21 +22,11 @@ */ package org.caosdb.server.entity; -import org.caosdb.server.transaction.WriteTransaction; import org.caosdb.server.utils.EntityStatus; import org.jdom2.Element; -/** - * UpdateEntity class represents entities which are to be updated. The previous version is appeded - * during the {@link WriteTransaction} transactions initialization. - * - * @author Timm Fitschen <t.fitschen@indiscale.com> - */ public class UpdateEntity extends WritableEntity { - /** The previous version of this entity. */ - private EntityInterface original = null; - public UpdateEntity(final Element element) { super(element); } @@ -45,12 +35,4 @@ public class UpdateEntity extends WritableEntity { public boolean skipJob() { return getEntityStatus() != EntityStatus.QUALIFIED; } - - public void setOriginal(EntityInterface original) { - this.original = original; - } - - public EntityInterface getOriginal() { - return this.original; - } } diff --git a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java index 570fce2c2b001699fdb48c1379e807ae05d62996..abda78b6feeb0de7104de5365877b28d474058fe 100644 --- a/src/main/java/org/caosdb/server/transaction/WriteTransaction.java +++ b/src/main/java/org/caosdb/server/transaction/WriteTransaction.java @@ -215,7 +215,13 @@ public class WriteTransaction extends Transaction<WritableContainer> .setFile(oldEntity.getFileProperties().retrieveFromFileSystem()); } - ((UpdateEntity) entity).setOriginal(oldEntity); + try { + checkPermissions(entity, deriveUpdate(entity, oldEntity)); + } catch (final AuthorizationException exc) { + entity.setEntityStatus(EntityStatus.UNQUALIFIED); + entity.addError(ServerMessages.AUTHORIZATION_ERROR); + entity.addInfo(exc.getMessage()); + } } break innerLoop; } @@ -284,18 +290,6 @@ public class WriteTransaction extends Transaction<WritableContainer> @Override protected void preCheck() throws InterruptedException, Exception { for (final EntityInterface entity : getContainer()) { - try { - if (entity.getEntityStatus() == EntityStatus.QUALIFIED) { - checkPermissions(entity, deriveUpdate(entity, ((UpdateEntity) entity).getOriginal())); - } - } catch (final AuthorizationException exc) { - entity.setEntityStatus(EntityStatus.UNQUALIFIED); - entity.addError(ServerMessages.AUTHORIZATION_ERROR); - entity.addInfo(exc.getMessage()); - } catch (ClassCastException exc) { - // not an update entity. ignore. - } - // set default EntityACL if none present if (entity.getEntityACL() == null) { entity.setEntityACL(EntityACL.getOwnerACLFor(SecurityUtils.getSubject()));