package edu.ualberta.med.biobank.common.permission.processingEvent;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.permission.Permission;
import edu.ualberta.med.biobank.model.Center;
import edu.ualberta.med.biobank.model.PermissionEnum;
import edu.ualberta.med.biobank.model.ProcessingEvent;
public class ProcessingEventReadPermission implements Permission {
private static final long serialVersionUID = 1L;
private Integer peId;
private Integer centerId;
public ProcessingEventReadPermission(Integer peId) {
this.peId = peId;
}
public ProcessingEventReadPermission(Center center) {
this.centerId = center.getId();
}
@Override
public boolean isAllowed(ActionContext context) {
if (peId == null)
return PermissionEnum.PROCESSING_EVENT_READ.isAllowed(
context.getUser(), context.load(Center.class, centerId)
);
return PermissionEnum.PROCESSING_EVENT_READ.isAllowed(
context.getUser(), context.load(ProcessingEvent.class, peId)
.getCenter()
);
}
}