using System; using System.Data; using System.Collections; using System.Net; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.Reporting; using CMS.UIControls; public partial class CMSModules_Reporting_CMSPages_GetReportGraph : CMSPage { protected Guid sGraphGuid; protected void Page_Load(object sender, EventArgs e) { //check if it is request for saved graph - by graph guid sGraphGuid = QueryHelper.GetGuid("graphguid", Guid.Empty); if (sGraphGuid != Guid.Empty) { SavedGraphInfo sGraphInfo = SavedGraphInfoProvider.GetSavedGraphInfo(sGraphGuid); if (sGraphInfo != null) { SavedReportInfo savedReport = SavedReportInfoProvider.GetSavedReportInfo(sGraphInfo.SavedGraphSavedReportID); ReportInfo report = ReportInfoProvider.GetReportInfo(savedReport.SavedReportReportID); //check graph security settings if (report.ReportAccess != ReportAccessEnum.All) { if (!CMSContext.CurrentUser.IsAuthenticated()) { Response.StatusCode = (int)HttpStatusCode.Unauthorized; return; } else { // Check 'Read' permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.reporting", "Read")) { RedirectToAccessDenied("cms.reporting", "Read"); } } } //send response with image data SendGraph(sGraphInfo); return; } } // Bad parameters, guid ... -> not found RequestHelper.Respond404(); } /// /// Sends the graph. /// /// Graph obj containing graph protected void SendGraph(SavedGraphInfo graphObj) { if (graphObj != null) { SendGraph(graphObj.SavedGraphMimeType, graphObj.SavedGraphBinary); } } /// /// Sends the graph. /// /// Response mime type /// Raw data to be sent protected void SendGraph(string mimeType, byte[] graph) { // Clear response. CookieHelper.ClearResponseCookies(); Response.Clear(); Response.Cache.SetCacheability(HttpCacheability.NoCache); // Prepare response Response.ContentType = mimeType; Response.OutputStream.Write(graph, 0, graph.Length); //RequestHelper.CompleteRequest(); RequestHelper.EndResponse(); } }