/** * $Id: ReportHandlerHook.java 52273 2008-08-21 14:28:00Z art27@cantab.net $ * $URL: https://source.sakaiproject.org/contrib/evaluation/tags/1.3.0/tool/src/java/org/sakaiproject/evaluation/tool/reporting/ReportHandlerHook.java $ * ReportHandlerHook.java - evaluation - 23 Jan 2007 11:35:56 AM - azeckoski ************************************************************************** * Copyright (c) 2008 Centre for Applied Research in Educational Technologies, University of Cambridge * Licensed under the Educational Community License version 1.0 * * A copy of the Educational Community License has been included in this * distribution and is available at: http://www.opensource.org/licenses/ecl1.php * * Aaron Zeckoski (azeckoski@gmail.com) (aaronz@vt.edu) (aaron@caret.cam.ac.uk) */ package org.sakaiproject.lessonbuildertool.tool.beans; import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.lessonbuildertool.tool.view.ExportCCViewParameters; import org.sakaiproject.lessonbuildertool.ccexport.CCExport; import org.sakaiproject.tool.cover.ToolManager; import org.sakaiproject.authz.cover.SecurityService; import org.sakaiproject.lessonbuildertool.SimplePage; import uk.org.ponder.rsf.viewstate.ViewParameters; /** * Handles the generation of files for exporting results * * @author Steven Githens * @author Aaron Zeckoski (aaronz@vt.edu) */ public class ReportHandlerHook { private static Log log = LogFactory.getLog(ReportHandlerHook.class); private ViewParameters viewparams; public void setViewparams(ViewParameters viewparams) { this.viewparams = viewparams; } private HttpServletResponse response; public void setResponse(HttpServletResponse response) { this.response = response; } /* (non-Javadoc) * @see uk.org.ponder.rsf.processor.HandlerHook#handle() */ public boolean handle() { if (viewparams instanceof ExportCCViewParameters) { String siteId = ToolManager.getCurrentPlacement().getContext(); String ref = "/site/" + siteId; boolean ok = SecurityService.unlock(SimplePage.PERMISSION_LESSONBUILDER_UPDATE, ref); // In this context it's hard to report an error. However since the UI will // never present this option unless the user has permission, anyone for whom // this fails is deep in hack mode. if (!ok) return false; log.debug("Handing viewparams and response off to the reportExporter"); CCExport ccExport = new CCExport(); ccExport.doExport(siteId, response, (ExportCCViewParameters)viewparams); return true; } return false; } }