package org.sakaiproject.tool.gradebook.ui.helpers.beans.locallogic; import org.sakaiproject.service.gradebook.shared.GradebookService; import org.sakaiproject.tool.gradebook.ui.helpers.producers.*; import org.sakaiproject.tool.gradebook.ui.helpers.params.GradebookItemViewParams; import org.sakaiproject.tool.gradebook.ui.helpers.params.GradeGradebookItemViewParams; import uk.org.ponder.rsf.builtin.UVBProducer; import uk.org.ponder.rsf.viewstate.ViewParameters; public class LocalPermissionLogic { private GradebookService gradebookService; public void setGradebookService(GradebookService gradebookService) { this.gradebookService = gradebookService; } public Boolean checkCurrentUserHasViewPermission(ViewParameters incoming) { if (GradebookItemProducer.VIEW_ID.equals(incoming.viewID)) { String contextId = ((GradebookItemViewParams) incoming).contextId; return gradebookService.currentUserHasEditPerm(contextId); } else if (GradeGradebookItemProducer.VIEW_ID.equals(incoming.viewID)) { String gradebookUid = ((GradeGradebookItemViewParams) incoming).contextId; String userId = ((GradeGradebookItemViewParams) incoming).userId; Long gradableObjectId = ((GradeGradebookItemViewParams) incoming).assignmentId; return gradebookService.isUserAbleToGradeItemForStudent(gradebookUid, gradableObjectId, userId); } else if (FinishedHelperProducer.VIEW_ID.equals(incoming.viewID)) { return Boolean.TRUE; } else if (UVBProducer.VIEW_ID.equals(incoming.viewID)) { return Boolean.TRUE; } return Boolean.FALSE; } }