package edu.ualberta.med.biobank.common.permission.clinic; import edu.ualberta.med.biobank.common.action.ActionContext; import edu.ualberta.med.biobank.common.permission.Permission; import edu.ualberta.med.biobank.model.Clinic; import edu.ualberta.med.biobank.model.PermissionEnum; public class ClinicReadPermission implements Permission { private static final long serialVersionUID = 1L; private final Integer clinicId; public ClinicReadPermission() { this.clinicId = null; } public ClinicReadPermission(Integer clinicId) { this.clinicId = clinicId; } public ClinicReadPermission(Clinic clinic) { this(clinic.getId()); } @Override public boolean isAllowed(ActionContext context) { if (clinicId != null) { Clinic clinic = context.load(Clinic.class, clinicId); return PermissionEnum.CLINIC_READ.isAllowed(context.getUser(), clinic); } return PermissionEnum.CLINIC_READ.isAllowed(context.getUser()); } }