package org.sakaiproject.tool.gradebook.ui.helpers.params; import org.sakaiproject.tool.gradebook.ui.helpers.producers.AuthorizationFailedProducer; import org.sakaiproject.tool.gradebook.ui.helpers.beans.locallogic.LocalPermissionLogic; import uk.org.ponder.rsf.viewstate.AnyViewParameters; import uk.org.ponder.rsf.viewstate.SimpleViewParameters; import uk.org.ponder.rsf.viewstate.ViewParameters; import uk.org.ponder.rsf.viewstate.ViewParamsInterceptor; public class GradebookViewParamsInterceptor implements ViewParamsInterceptor{ private LocalPermissionLogic localPermissionLogic; public void setLocalPermissionLogic(LocalPermissionLogic localPermissionLogic) { this.localPermissionLogic = localPermissionLogic; } public AnyViewParameters adjustViewParameters(ViewParameters incoming) { //Always allow the authorization failed page to pass through if (AuthorizationFailedProducer.VIEW_ID.equals(incoming.viewID)) { return incoming; } //Check permissions for each view if (localPermissionLogic.checkCurrentUserHasViewPermission(incoming)) { return incoming; } return new SimpleViewParameters(AuthorizationFailedProducer.VIEW_ID); } }