diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java b/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java index 9ea7d4b3867b781ead42a50b23b5a7befff048f9..dd87d5298365a4b95abc52c66c17823c5c52687a 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckDatatypePresent.java @@ -23,6 +23,7 @@ package org.caosdb.server.jobs.core; import java.util.List; +import org.apache.shiro.authz.AuthorizationException; import org.caosdb.server.database.exceptions.EntityDoesNotExistException; import org.caosdb.server.database.exceptions.EntityWasNotUniqueException; import org.caosdb.server.datatype.AbstractCollectionDatatype; @@ -97,13 +98,15 @@ public final class CheckDatatypePresent extends EntityJob { // finally, no data type throw ServerMessages.PROPERTY_HAS_NO_DATATYPE; } - } catch (final Message m) { if (m == ServerMessages.ENTITY_DOES_NOT_EXIST) { getEntity().addError(ServerMessages.UNKNOWN_DATATYPE); } else { getEntity().addError(m); } + } catch (AuthorizationException exc) { + getEntity().addError(ServerMessages.AUTHORIZATION_ERROR); + getEntity().addInfo(exc.getMessage()); } catch (final EntityDoesNotExistException exc) { getEntity().addError(ServerMessages.UNKNOWN_DATATYPE); } catch (final EntityWasNotUniqueException exc) { @@ -152,8 +155,8 @@ public final class CheckDatatypePresent extends EntityJob { } } - private void assertAllowedToUse(final EntityInterface datatype) throws Message { - checkPermission(datatype, EntityPermission.USE_AS_DATA_TYPE); + private void assertAllowedToUse(final EntityInterface datatype) { + datatype.checkPermission(EntityPermission.USE_AS_DATA_TYPE); } private void checkIfOverride() throws Message { diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java index 4e6b097e66bf2e844cad34ae22f45eedf1b6cd67..d3b28bd5f158b767469e6d7fcc3cebe9fa75edb8 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckParValid.java @@ -23,6 +23,7 @@ package org.caosdb.server.jobs.core; import com.google.common.base.Objects; +import org.apache.shiro.authz.AuthorizationException; import org.caosdb.server.database.exceptions.EntityDoesNotExistException; import org.caosdb.server.database.exceptions.EntityWasNotUniqueException; import org.caosdb.server.entity.Affiliation; @@ -118,13 +119,16 @@ public class CheckParValid extends EntityJob { } } - addError(parent, ServerMessages.ENTITY_DOES_NOT_EXIST); + parent.addError(ServerMessages.ENTITY_DOES_NOT_EXIST); } catch (final Message m) { - addError(parent, m); + parent.addError(m); + } catch (AuthorizationException e) { + parent.addError(ServerMessages.AUTHORIZATION_ERROR); + parent.addInfo(e.getMessage()); } catch (final EntityDoesNotExistException exc) { - addError(parent, ServerMessages.ENTITY_DOES_NOT_EXIST); + parent.addError(ServerMessages.ENTITY_DOES_NOT_EXIST); } catch (final EntityWasNotUniqueException exc) { - addError(parent, ServerMessages.ENTITY_NAME_DUPLICATES); + parent.addError(ServerMessages.ENTITY_NAME_DUPLICATES); } } } @@ -191,12 +195,7 @@ public class CheckParValid extends EntityJob { throw ServerMessages.AFFILIATION_ERROR; } - private void assertAllowedToUse(final EntityInterface entity) throws Message { - checkPermission(entity, EntityPermission.USE_AS_PARENT); - } - - private void addError(final EntityInterface parent, final Message m) { - parent.addError(m); - parent.setEntityStatus(EntityStatus.UNQUALIFIED); + private void assertAllowedToUse(final EntityInterface entity) { + entity.checkPermission(EntityPermission.USE_AS_PARENT); } } diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java index 112692c89a403366eb9eeb02d32355982a96a236..eeea52b85b9c1629b426660020c7e65f0e4b96ef 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckPropValid.java @@ -138,17 +138,10 @@ public class CheckPropValid extends EntityJob { // process names appendJob(ProcessNameProperties.class); - // final ProcessNameProperties processNameProperties = new - // ProcessNameProperties(); - // processNameProperties.init(getMode(), getEntity(), getContainer(), - // getTransaction()); - // getTransaction().getSchedule().add(processNameProperties); - // getTransaction().getSchedule().runJob(processNameProperties); - } - private void assertAllowedToUse(final EntityInterface property) throws Message { - checkPermission(property, EntityPermission.USE_AS_PROPERTY); + private void assertAllowedToUse(final EntityInterface property) { + property.checkPermission(EntityPermission.USE_AS_PROPERTY); } private static void deriveOverrideStatus(final Property child, final EntityInterface parent) { diff --git a/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java b/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java index f19424b127feb3273571a7826bf05382299ea58a..645f87d0b2eb0bfc045eb3d4237a40b702c044a3 100644 --- a/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java +++ b/src/main/java/org/caosdb/server/jobs/core/CheckRefidValid.java @@ -24,6 +24,7 @@ */ package org.caosdb.server.jobs.core; +import org.apache.shiro.authz.AuthorizationException; import org.caosdb.server.database.exceptions.EntityDoesNotExistException; import org.caosdb.server.database.exceptions.EntityWasNotUniqueException; import org.caosdb.server.datatype.CollectionValue; @@ -71,13 +72,13 @@ public class CheckRefidValid extends EntityJob implements Observer { } } catch (final Message m) { getEntity().addError(m); - getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); + } catch (AuthorizationException exc) { + getEntity().addError(ServerMessages.AUTHORIZATION_ERROR); + getEntity().addInfo(exc.getMessage()); } catch (final EntityDoesNotExistException e) { getEntity().addError(ServerMessages.REFERENCED_ENTITY_DOES_NOT_EXIST); - getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); } catch (final EntityWasNotUniqueException e) { getEntity().addError(ServerMessages.REFERENCE_NAME_DUPLICATES); - getEntity().setEntityStatus(EntityStatus.UNQUALIFIED); } } @@ -139,8 +140,8 @@ public class CheckRefidValid extends EntityJob implements Observer { } } - private void assertAllowedToUse(final EntityInterface referencedEntity) throws Message { - checkPermission(referencedEntity, EntityPermission.USE_AS_REFERENCE); + private void assertAllowedToUse(final EntityInterface referencedEntity) { + referencedEntity.checkPermission(EntityPermission.USE_AS_REFERENCE); } @Override