package edu.ualberta.med.biobank.common.permission.specimen;
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.Specimen;
import edu.ualberta.med.biobank.model.Study;
public class SpecimenUpdatePermission implements Permission {
private static final long serialVersionUID = 1L;
private final Integer specimenId;
public SpecimenUpdatePermission(Integer specimenId) {
this.specimenId = specimenId;
}
@Override
public boolean isAllowed(ActionContext context) {
Specimen specimen = context.get(Specimen.class, specimenId);
Center center = specimen.getCurrentCenter();
Study study = specimen.getCollectionEvent().getPatient().getStudy();
return PermissionEnum.SPECIMEN_UPDATE.isAllowed(context.getUser(),
center, study);
}
}