/// <summary> /// Builds the Permissions report to export to an HTML file /// </summary> /// <param name="writer">The StreamWriter to write the report to</param> protected virtual void BuildExportReport(StreamWriter writer) { var application = CurrentApplication; var report = new PermissionReport(); while (application != null) { var appPermissions = PermissionService.GetApplicationPermisisons(application); report.AddApplicationTitle(application) .AddPermissionGrid(appPermissions); if (application.GroupId.HasValue) application = GroupApplicationService.GetGroup(application.GroupId.Value); else application = null; } var sitePermissions = PermissionService.GetSitePermisisons(); report.AddTitle("Overall Site Permissions") .AddPermissionGrid(sitePermissions); writer.Write(report.WriteReport()); }
/// <summary> /// Updates the Permission Display to show permissions /// for the CurrentApplication /// </summary> protected virtual void UpdatePermissionDisplay() { IEnumerable<PermissionEntry> permissions; var report = new PermissionReport(); try { if (CurrentApplication == null) { permissions = PermissionService.GetSitePermisisons(); report.AddTitle("Overall Site Permissions"); } else { permissions = PermissionService.GetApplicationPermisisons(CurrentApplication); report.AddApplicationTitle(CurrentApplication); } // Convert permissions to array to prevent LINQ queries hitting the permissions // endpoint multiple times report.AddPermissionGrid(permissions.ToArray()); permissionDisplayBrowser.DocumentText = report.WriteReport(); } catch (WebException ex) { StringBuilder b = new StringBuilder("<h1>An error occured obtaining permissions</h1>"); b.Append("<p>"); b.Append(ex.GetType().ToString()); b.Append("<br />"); b.Append(ex.Message); b.Append("</p>"); var reader = new StreamReader(ex.Response.GetResponseStream()); b.Append(reader.ReadToEnd()); permissionDisplayBrowser.DocumentText = b.ToString(); } }