package edu.ualberta.med.biobank.common.permission.patient; import edu.ualberta.med.biobank.common.action.ActionContext; import edu.ualberta.med.biobank.common.permission.Permission; import edu.ualberta.med.biobank.model.Patient; import edu.ualberta.med.biobank.model.PermissionEnum; public class PatientReadPermission implements Permission { private static final long serialVersionUID = 1L; private Integer patientId; public PatientReadPermission(Integer patientId) { this.patientId = patientId; } @Override public boolean isAllowed(ActionContext context) { Patient patient = context.get(Patient.class, patientId); if (patient == null) return PermissionEnum.PATIENT_READ.isAllowed(context.getUser(), null, null); return PermissionEnum.PATIENT_READ.isAllowed(context.getUser(), patient.getStudy()); } }