package edu.ualberta.med.biobank.common.permission.collectionEvent;
import edu.ualberta.med.biobank.common.action.ActionContext;
import edu.ualberta.med.biobank.common.permission.Permission;
import edu.ualberta.med.biobank.common.permission.patient.PatientUpdatePermission;
import edu.ualberta.med.biobank.model.Patient;
import edu.ualberta.med.biobank.model.PermissionEnum;
public class CollectionEventCreatePermission implements Permission {
private static final long serialVersionUID = 1L;
private final Integer patientId;
public CollectionEventCreatePermission(Integer patientId) {
this.patientId = patientId;
}
@Override
public boolean isAllowed(ActionContext context) {
Patient patient = context.load(Patient.class, patientId);
return PermissionEnum.COLLECTION_EVENT_CREATE
.isAllowed(context.getUser(), patient.getStudy())
&& new PatientUpdatePermission(patientId).isAllowed(context);
}
}