Skip to content

Commit

Permalink
fixes, test + doku
Browse files Browse the repository at this point in the history
  • Loading branch information
abarz722 committed Mar 12, 2024
1 parent 8a47ec3 commit 0d7c981
Show file tree
Hide file tree
Showing 10 changed files with 266 additions and 99 deletions.
46 changes: 34 additions & 12 deletions roles/database/files/sql/idempotent/fworch-texts.sql

Large diffs are not rendered by default.

36 changes: 32 additions & 4 deletions roles/lib/files/FWO.Report/Data/OwnerReport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@ public OwnerReport()
public OwnerReport(OwnerReport report)
{
Name = report.Name;
Connections = new (report.Connections);
Connections = report.Connections;
RegularConnections = report.RegularConnections;
Interfaces = report.Interfaces;
CommonServices = report.CommonServices;
AllObjects = report.AllObjects;
AllServices = report.AllServices;
}

public static void AssignConnectionNumbers(List<ModellingConnection> connections)
Expand Down Expand Up @@ -96,23 +101,46 @@ public List<NetworkService> GetAllServices()
return allServices;
}

public List<string> GetSrcNames(ModellingConnection conn)
public static List<string> GetSrcNames(ModellingConnection conn)
{
List<string> names = ModellingNwGroupWrapper.Resolve(conn.SourceNwGroups).ToList().ConvertAll(s => s.DisplayHtml());
names.AddRange(ModellingAppRoleWrapper.Resolve(conn.SourceAppRoles).ToList().ConvertAll(s => s.DisplayHtml()));
names.AddRange(ModellingAppServerWrapper.Resolve(conn.SourceAppServers).ToList().ConvertAll(s => s.DisplayHtml()));
return names;
}

public static List<string> GetDstNames(ModellingConnection conn)
{
List<string> names = ModellingNwGroupWrapper.Resolve(conn.DestinationNwGroups).ToList().ConvertAll(s => s.DisplayHtml());
names.AddRange(ModellingAppRoleWrapper.Resolve(conn.DestinationAppRoles).ToList().ConvertAll(s => s.DisplayHtml()));
names.AddRange(ModellingAppServerWrapper.Resolve(conn.DestinationAppServers).ToList().ConvertAll(s => s.DisplayHtml()));
return names;
}

public static List<string> GetSvcNames(ModellingConnection conn)
{
List<string> names = ModellingServiceGroupWrapper.Resolve(conn.ServiceGroups).ToList().ConvertAll(s => s.DisplayHtml());
names.AddRange(ModellingServiceWrapper.Resolve(conn.Services).ToList().ConvertAll(s => s.DisplayHtml()));
return names;
}

public List<string> GetLinkedSrcNames(ModellingConnection conn)
{
List<string> names = ModellingNwGroupWrapper.Resolve(conn.SourceNwGroups).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s)));
names.AddRange(ModellingAppRoleWrapper.Resolve(conn.SourceAppRoles).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s))));
names.AddRange(ModellingAppServerWrapper.Resolve(conn.SourceAppServers).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s))));
return names;
}

public List<string> GetDstNames(ModellingConnection conn)
public List<string> GetLinkedDstNames(ModellingConnection conn)
{
List<string> names = ModellingNwGroupWrapper.Resolve(conn.DestinationNwGroups).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s)));
names.AddRange(ModellingAppRoleWrapper.Resolve(conn.DestinationAppRoles).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s))));
names.AddRange(ModellingAppServerWrapper.Resolve(conn.DestinationAppServers).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.NwObj, ResolveObjNumber(s))));
return names;
}

public List<string> GetSvcNames(ModellingConnection conn)
public List<string> GetLinkedSvcNames(ModellingConnection conn)
{
List<string> names = ModellingServiceGroupWrapper.Resolve(conn.ServiceGroups).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.Svc, ResolveSvcNumber(s)));
names.AddRange(ModellingServiceWrapper.Resolve(conn.Services).ToList().ConvertAll(s => ConstructOutput(s, ObjCatString.Svc, ResolveSvcNumber(s))));
Expand Down
4 changes: 2 additions & 2 deletions roles/lib/files/FWO.Report/ReportBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,10 @@ public abstract class ReportBase
</head>
<body>
<h2>##Title##</h2>
<p>Filter: ##Filter##</p>
<p>##Date-of-Config##: ##GeneratedFor## (UTC)</p>
<p>##GeneratedOn##: ##Date## (UTC)</p>
<p>##OtherFilters##</p>
<p>##Filter##</p>
<hr>
##Body##
</body>
Expand Down Expand Up @@ -153,7 +153,7 @@ protected string GenerateHtmlFrame(string title, string filter, DateTime date, S
if (string.IsNullOrEmpty(htmlExport))
{
HtmlTemplate = HtmlTemplate.Replace("##Title##", title);
HtmlTemplate = HtmlTemplate.Replace("##Filter##", filter);
HtmlTemplate = HtmlTemplate.Replace("##Filter##", userConfig.GetText("filter") + ": " + filter);
HtmlTemplate = HtmlTemplate.Replace("##GeneratedOn##", userConfig.GetText("generated_on"));
HtmlTemplate = HtmlTemplate.Replace("##Date##", date.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssK"));
if(ReportType.IsChangeReport())
Expand Down
41 changes: 32 additions & 9 deletions roles/lib/files/FWO.Report/ReportConnections.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,41 +65,64 @@ public override string ExportToHtml()
}
if(ownerReport.CommonServices.Count > 0)
{
report.AppendLine($"<h4>{userConfig.GetText("common_services")}</h4>");
report.AppendLine($"<h4>{userConfig.GetText("own_common_services")}</h4>");
AppendConnectionsGroupHtml(ownerReport.CommonServices, ownerReport, ref report);
}

AppendNetworkObjectsHtml(ownerReport.AllObjects, ref report);
AppendNetworkServicesHtml(ownerReport.AllServices, ref report);
}
if(ReportData.GlobalComSvc.Count > 0)
{
report.AppendLine($"<h3>{userConfig.GetText("global_common_services")}</h3>");
AppendConnectionsGroupHtml(ReportData.GlobalComSvc, null, ref report);
}
return GenerateHtmlFrame(userConfig.GetText(ReportType.ToString()), Query.RawFilter, DateTime.Now, report);
}

private void AppendConnectionsGroupHtml(List<ModellingConnection> connections, OwnerReport ownerReport, ref StringBuilder report)
private void AppendConnectionsGroupHtml(List<ModellingConnection> connections, OwnerReport? ownerReport, ref StringBuilder report)
{
OwnerReport.AssignConnectionNumbers(connections);
bool IsGlobalComSvc = ownerReport == null;
report.AppendLine("<table>");
AppendConnectionHeadlineHtml(ref report);
AppendConnectionHeadlineHtml(ref report, IsGlobalComSvc);
foreach (var connection in connections)
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{connection.OrderNumber}</td>");
report.AppendLine($"<td>{connection.Id}</td>");
if(IsGlobalComSvc)
{
report.AppendLine($"<td>{connection.App.Name}</td>");
}
report.AppendLine($"<td>{connection.Name}</td>");
report.AppendLine($"<td>{connection.Reason}</td>");
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetSrcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetSvcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetDstNames(connection))}</td>");
if(IsGlobalComSvc)
{
report.AppendLine($"<td>{String.Join("<br>", OwnerReport.GetSrcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", OwnerReport.GetSvcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", OwnerReport.GetDstNames(connection))}</td>");
}
else
{
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetLinkedSrcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetLinkedSvcNames(connection))}</td>");
report.AppendLine($"<td>{String.Join("<br>", ownerReport.GetLinkedDstNames(connection))}</td>");
}
}
report.AppendLine("</table>");
report.AppendLine("<hr>");
}

private void AppendConnectionHeadlineHtml(ref StringBuilder report)
private void AppendConnectionHeadlineHtml(ref StringBuilder report, bool showOwnerName)
{
report.AppendLine("<tr>");
report.AppendLine($"<th>{userConfig.GetText("number")}</th>");
report.AppendLine($"<th>{userConfig.GetText("id")}</th>");
if(showOwnerName)
{
report.AppendLine($"<th>{userConfig.GetText("owner")}</th>");
}
report.AppendLine($"<th>{userConfig.GetText("name")}</th>");
report.AppendLine($"<th>{userConfig.GetText("func_reason")}</th>");
report.AppendLine($"<th>{userConfig.GetText("source")}</th>");
Expand All @@ -118,7 +141,7 @@ private void AppendNetworkObjectsHtml(List<NetworkObject> networkObjects, ref St
report.AppendLine("<tr>");
report.AppendLine($"<td>{nwObj.Number}</td>");
report.AppendLine($"<td>{nwObj.Id}</td>");
report.AppendLine($"<td>{nwObj.Name}</td>");
report.AppendLine($"<td><a name={ObjCatString.NwObj}{nwObj.Number}>{nwObj.Name}</a></td>");
report.AppendLine($"<td>{nwObj.IP}</td>");
}
report.AppendLine("</table>");
Expand All @@ -145,7 +168,7 @@ private void AppendNetworkServicesHtml(List<NetworkService> networkServices, ref
report.AppendLine("<tr>");
report.AppendLine($"<td>{svc.Number}</td>");
report.AppendLine($"<td>{svc.Id}</td>");
report.AppendLine($"<td>{svc.Name}</td>");
report.AppendLine($"<td><a name={ObjCatString.Svc}{svc.Number}>{svc.Name}</a></td>");
report.AppendLine($"<td>{svc.Protocol.Name}</td>");
report.AppendLine($"<td>{svc.DestinationPort}</td>");
}
Expand Down
12 changes: 6 additions & 6 deletions roles/lib/files/FWO.Report/ReportNatRules.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ public override string ExportToHtml()
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td><a name=nwobj{nwobj.Id}>{nwobj.Name}</a></td>");
report.AppendLine($"<td>{nwobj.Type.Name}</td>");
report.AppendLine($"<td><a name={ObjCatString.NwObj}{nwobj.Id}>{nwobj.Name}</a></td>");
report.AppendLine($"<td>{(nwobj.Type.Name != "" ? userConfig.GetText(nwobj.Type.Name) : "")}</td>");
report.AppendLine($"<td>{NwObjDisplay.DisplayIp(nwobj.IP, nwobj.IpEnd, nwobj.Type.Name)}</td>");
if (nwobj.MemberNames != null && nwobj.MemberNames.Contains("|"))
report.AppendLine($"<td>{string.Join("<br>", nwobj.MemberNames.Split('|'))}</td>");
Expand Down Expand Up @@ -133,8 +133,8 @@ public override string ExportToHtml()
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td>{svcobj.Name}</td>");
report.AppendLine($"<td><a name=svc{svcobj.Id}>{svcobj.Name}</a></td>");
report.AppendLine($"<td><a name={ObjCatString.Svc}{svcobj.Id}>{svcobj.Name}</a></td>");
report.AppendLine($"<td>{(svcobj.Type.Name != "" ? userConfig.GetText(svcobj.Type.Name) : "")}</td>");
report.AppendLine($"<td>{((svcobj.Type.Name!=ObjectType.Group && svcobj.Protocol!=null)?svcobj.Protocol.Name:"")}</td>");
if (svcobj.DestinationPortEnd != null && svcobj.DestinationPortEnd != svcobj.DestinationPort)
report.AppendLine($"<td>{svcobj.DestinationPort}-{svcobj.DestinationPortEnd}</td>");
Expand Down Expand Up @@ -169,8 +169,8 @@ public override string ExportToHtml()
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td>{userobj.Name}</td>");
report.AppendLine($"<td><a name=user{userobj.Id}>{userobj.Name}</a></td>");
report.AppendLine($"<td><a name={ObjCatString.User}{userobj.Id}>{userobj.Name}</a></td>");
report.AppendLine($"<td>{(userobj.Type.Name != "" ? userConfig.GetText(userobj.Type.Name) : "")}</td>");
if (userobj.MemberNames != null && userobj.MemberNames.Contains("|"))
report.AppendLine($"<td>{string.Join("<br>", userobj.MemberNames.Split('|'))}</td>");
else
Expand Down
12 changes: 6 additions & 6 deletions roles/lib/files/FWO.Report/ReportRules.cs
Original file line number Diff line number Diff line change
Expand Up @@ -457,8 +457,8 @@ private void appendNetworkObjectsForManagementHtml(ref StringBuilder report, ref
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td><a name=nwobj{nwobj.Id}>{nwobj.Name}</a></td>");
report.AppendLine($"<td>{nwobj.Type.Name}</td>");
report.AppendLine($"<td><a name={ObjCatString.NwObj}{nwobj.Id}>{nwobj.Name}</a></td>");
report.AppendLine($"<td>{(nwobj.Type.Name != "" ? userConfig.GetText(nwobj.Type.Name) : "")}</td>");
report.AppendLine($"<td>{NwObjDisplay.DisplayIp(nwobj.IP, nwobj.IpEnd, nwobj.Type.Name)}</td>");
if (nwobj.MemberNames != null && nwobj.MemberNames.Contains('|'))
report.AppendLine($"<td>{string.Join("<br>", nwobj.MemberNames.Split('|'))}</td>");
Expand Down Expand Up @@ -494,8 +494,8 @@ private void appendNetworkServicesForManagementHtml(ref StringBuilder report, re
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td>{svcobj.Name}</td>");
report.AppendLine($"<td><a name=svc{svcobj.Id}>{svcobj.Name}</a></td>");
report.AppendLine($"<td><a name={ObjCatString.Svc}{svcobj.Id}>{svcobj.Name}</a></td>");
report.AppendLine($"<td>{(svcobj.Type.Name != "" ? userConfig.GetText(svcobj.Type.Name) : "")}</td>");
report.AppendLine($"<td>{((svcobj.Type.Name!=ObjectType.Group && svcobj.Protocol != null) ? svcobj.Protocol.Name : "")}</td>");
if (svcobj.DestinationPortEnd != null && svcobj.DestinationPortEnd != svcobj.DestinationPort)
report.AppendLine($"<td>{svcobj.DestinationPort}-{svcobj.DestinationPortEnd}</td>");
Expand Down Expand Up @@ -533,8 +533,8 @@ private void appendUsersForManagementHtml(ref StringBuilder report, ref int objN
{
report.AppendLine("<tr>");
report.AppendLine($"<td>{objNumber++}</td>");
report.AppendLine($"<td>{userobj.Name}</td>");
report.AppendLine($"<td><a name=user{userobj.Id}>{userobj.Name}</a></td>");
report.AppendLine($"<td><a name={ObjCatString.User}{userobj.Id}>{userobj.Name}</a></td>");
report.AppendLine($"<td>{(userobj.Type.Name != "" ? userConfig.GetText(userobj.Type.Name) : "")}</td>");
if (userobj.MemberNames != null && userobj.MemberNames.Contains("|"))
report.AppendLine($"<td>{string.Join("<br>", userobj.MemberNames.Split('|'))}</td>");
else
Expand Down
Loading

0 comments on commit 0d7c981

Please sign in to comment.