Skip to content
Snippets Groups Projects

Draft: F acm permissions2

Closed Timm Fitschen requested to merge f-acm-permissions2 into dev
13 files
+ 42
538
Compare changes
  • Side-by-side
  • Inline

Files

@@ -8,6 +8,12 @@ import org.caosdb.server.jobs.JobAnnotation;
import org.caosdb.server.jobs.JobExecutionTime;
import org.caosdb.server.transaction.WriteTransaction;
/**
* Check if the attempted state transition is allowed.
*
* @author Timm Fitschen (t.fitschen@indiscale.com)
*
*/
@JobAnnotation(
time = JobExecutionTime.CHECK,
transaction = WriteTransaction.class,
@@ -20,6 +26,11 @@ public class CheckStateTransition extends EntityStateJob {
new Message(MessageType.Error, "Initial state not allowed.");
private static final Message FINAL_STATE_NOT_ALLOWED =
new Message(MessageType.Error, "Final state not allowed.");
/**
* The forceFinalState flag is especially useful if you want to delete
* entities in the middle of the state machine's usual state cycle.
*/
private static final String FORCE_FINAL_STATE = "forceFinalState";
@Override
@@ -87,8 +98,7 @@ public class CheckStateTransition extends EntityStateJob {
private void checkFinalState(State fromState) throws Message {
if (!fromState.isFinal()) {
if ("true"
.equalsIgnoreCase(getTransaction().getContainer().getFlags().get(FORCE_FINAL_STATE))) {
if ("true".equalsIgnoreCase(getTransaction().getContainer().getFlags().get(FORCE_FINAL_STATE)) || "true".equalsIgnoreCase(getEntity().getFlag(FORCE_FINAL_STATE))) {
// TODO permissions
return;
}
Loading