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