Skip to content

Commit

Permalink
Merge pull request #5930 from zyhfish/task/fix-bug-5894
Browse files Browse the repository at this point in the history
Fix #5894: remove the child node with null reference check.
  • Loading branch information
mitchelsellers committed Feb 20, 2024
2 parents 65b8151 + 7ea5b5c commit 58dacd0
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 36 deletions.
17 changes: 17 additions & 0 deletions DNN Platform/Library/Common/Utilities/XmlExtensions.cs
Expand Up @@ -98,6 +98,23 @@ public static XmlNode AddAttribute(this XmlNode node, string attributeName, stri
newAttribute.InnerText = attributeValue;
node.Attributes.Append(newAttribute);
return node;
}

/// <summary>
/// Remove the child node with the provided name.
/// </summary>
/// <param name="node">The parent node.</param>
/// <param name="childNodeName">The child node name.</param>
public static void RemoveChildNode(this XmlNode node, string childNodeName)
{
if (node != null)
{
var childNode = node.SelectSingleNode(childNodeName);
if (childNode != null)
{
node.RemoveChild(childNode);
}
}
}
}
}
32 changes: 16 additions & 16 deletions DNN Platform/Library/Entities/Modules/ModuleController.cs
Expand Up @@ -244,15 +244,15 @@ public static XmlNode SerializeModule(XmlDocument xmlModule, ModuleInfo module,
}

// remove unwanted elements
moduleNode.RemoveChild(moduleNode.SelectSingleNode("portalid"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("tabid"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("tabmoduleid"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("moduleorder"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("panename"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("isdeleted"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("versionGuid"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("localizedVersionGuid"));
moduleNode.RemoveChild(moduleNode.SelectSingleNode("content"));
moduleNode.RemoveChildNode("portalid");
moduleNode.RemoveChildNode("tabid");
moduleNode.RemoveChildNode("tabmoduleid");
moduleNode.RemoveChildNode("moduleorder");
moduleNode.RemoveChildNode("panename");
moduleNode.RemoveChildNode("isdeleted");
moduleNode.RemoveChildNode("versionGuid");
moduleNode.RemoveChildNode("localizedVersionGuid");
moduleNode.RemoveChildNode("content");

// support for localized templates
// moduleNode.RemoveChild(moduleNode.SelectSingleNode("uniqueId"));
Expand All @@ -268,13 +268,13 @@ public static XmlNode SerializeModule(XmlDocument xmlModule, ModuleInfo module,
{
foreach (XmlNode nodePermission in xmlNodeList)
{
nodePermission.RemoveChild(nodePermission.SelectSingleNode("modulepermissionid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("permissionid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("moduleid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("roleid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("userid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("username"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("displayname"));
nodePermission.RemoveChildNode("modulepermissionid");
nodePermission.RemoveChildNode("permissionid");
nodePermission.RemoveChildNode("moduleid");
nodePermission.RemoveChildNode("roleid");
nodePermission.RemoveChildNode("userid");
nodePermission.RemoveChildNode("username");
nodePermission.RemoveChildNode("displayname");
}
}

Expand Down
40 changes: 20 additions & 20 deletions DNN Platform/Library/Entities/Tabs/TabController.cs
Expand Up @@ -679,19 +679,19 @@ public static XmlNode SerializeTab(XmlDocument tabXml, Hashtable tabs, TabInfo t

// remove unwanted elements
// ReSharper disable AssignNullToNotNullAttribute
tabNode.RemoveChild(tabNode.SelectSingleNode("tabid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("moduleID"));
tabNode.RemoveChild(tabNode.SelectSingleNode("taborder"));
tabNode.RemoveChild(tabNode.SelectSingleNode("portalid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("parentid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("isdeleted"));
tabNode.RemoveChild(tabNode.SelectSingleNode("tabpath"));
tabNode.RemoveChild(tabNode.SelectSingleNode("haschildren"));
tabNode.RemoveChild(tabNode.SelectSingleNode("skindoctype"));
tabNode.RemoveChild(tabNode.SelectSingleNode("uniqueid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("versionguid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("defaultLanguageGuid"));
tabNode.RemoveChild(tabNode.SelectSingleNode("localizedVersionGuid"));
tabNode.RemoveChildNode("tabid");
tabNode.RemoveChildNode("moduleID");
tabNode.RemoveChildNode("taborder");
tabNode.RemoveChildNode("portalid");
tabNode.RemoveChildNode("parentid");
tabNode.RemoveChildNode("isdeleted");
tabNode.RemoveChildNode("tabpath");
tabNode.RemoveChildNode("haschildren");
tabNode.RemoveChildNode("skindoctype");
tabNode.RemoveChildNode("uniqueid");
tabNode.RemoveChildNode("versionguid");
tabNode.RemoveChildNode("defaultLanguageGuid");
tabNode.RemoveChildNode("localizedVersionGuid");
XmlNodeList xmlNodeList = tabNode.SelectNodes("tabpermissions/permission");
if (xmlNodeList != null && xmlNodeList.Count == 0)
{
Expand Down Expand Up @@ -723,13 +723,13 @@ public static XmlNode SerializeTab(XmlDocument tabXml, Hashtable tabs, TabInfo t
{
foreach (XmlNode nodePermission in xmlNodeList)
{
nodePermission.RemoveChild(nodePermission.SelectSingleNode("tabpermissionid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("permissionid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("tabid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("roleid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("userid"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("username"));
nodePermission.RemoveChild(nodePermission.SelectSingleNode("displayname"));
nodePermission.RemoveChildNode("tabpermissionid");
nodePermission.RemoveChildNode("permissionid");
nodePermission.RemoveChildNode("tabid");
nodePermission.RemoveChildNode("roleid");
nodePermission.RemoveChildNode("userid");
nodePermission.RemoveChildNode("username");
nodePermission.RemoveChildNode("displayname");
}
}

Expand Down

0 comments on commit 58dacd0

Please sign in to comment.