package edu.ualberta.med.biobank.common.permission.dispatch;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.action.exception.ModelNotFoundException;
import edu.ualberta.med.biobank.common.permission.Permission;
import edu.ualberta.med.biobank.common.util.DispatchState;
import edu.ualberta.med.biobank.model.Dispatch;
import edu.ualberta.med.biobank.model.PermissionEnum;
public class DispatchDeletePermission implements Permission {
private static final long serialVersionUID = 1L;
private Integer shipmentId;
public DispatchDeletePermission(Integer shipId) {
this.shipmentId = shipId;
}
@Override
public boolean isAllowed(ActionContext context) {
if (shipmentId != null) {
Dispatch ship = null;
try {
ship = context.load(Dispatch.class, shipmentId);
} catch (ModelNotFoundException e) {
return false;
}
if (DispatchState.getState(ship.getState()).equals(
DispatchState.CREATION))
return PermissionEnum.DISPATCH_DELETE.isAllowed(
context.getUser(),
ship.getSenderCenter());
}
return false;
}
}