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.Study;
public class SpecimenLinkPermission implements Permission {
private static final long serialVersionUID = 1L;
private final Integer centerId;
private final Integer studyId;
public SpecimenLinkPermission(Integer centerId, Integer studyId) {
this.centerId = centerId;
this.studyId = studyId;
}
@Override
public boolean isAllowed(ActionContext context) {
Center center = context.load(Center.class, centerId);
Study study = context.load(Study.class, studyId);
return PermissionEnum.SPECIMEN_LINK.isAllowed(context.getUser(),
center, study)
&& new SpecimenCreatePermission(centerId, studyId)
.isAllowed(context);
}
}