Skip to content

Commit

Permalink
DNN-31366 - Deleted page can still be selected as parent page (#2925)
Browse files Browse the repository at this point in the history
* DNN-31366 - TabController HasChildren returns false if all children are deleted

* Simplify HasChildren condition
  • Loading branch information
berkarslan-xo authored and valadas committed Aug 14, 2019
1 parent 22e55ea commit b2d5533
Showing 1 changed file with 48 additions and 3 deletions.
51 changes: 48 additions & 3 deletions DNN Platform/Library/Entities/Tabs/TabController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2473,7 +2473,8 @@ public static void CopyPermissionsToChildren(TabInfo parentTab, TabPermissionCol
false,
false,
false,
false);
false,
true);
}

/// <summary>
Expand All @@ -2497,7 +2498,8 @@ public static void CopyPermissionsToChildren(TabInfo parentTab, TabPermissionCol
includeDeleted,
includeURL,
false,
false);
false,
true);
}

/// <summary>
Expand Down Expand Up @@ -2525,7 +2527,8 @@ public static void CopyPermissionsToChildren(TabInfo parentTab, TabPermissionCol
includeDeleted,
includeURL,
checkViewPermisison,
checkEditPermission);
checkEditPermission,
true);
}

/// <summary>
Expand All @@ -2544,6 +2547,45 @@ public static void CopyPermissionsToChildren(TabInfo parentTab, TabPermissionCol
public static List<TabInfo> GetPortalTabs(List<TabInfo> tabs, int excludeTabId, bool includeNoneSpecified,
string noneSpecifiedText, bool includeHidden, bool includeDeleted, bool includeURL,
bool checkViewPermisison, bool checkEditPermission)
{
return GetPortalTabs(
tabs,
excludeTabId,
includeNoneSpecified,
noneSpecifiedText,
includeHidden,
includeDeleted,
includeURL,
checkViewPermisison,
checkEditPermission,
true);
}

/// <summary>
/// Gets the portal tabs.
/// </summary>
/// <param name="tabs">The tabs.</param>
/// <param name="excludeTabId">The exclude tab id.</param>
/// <param name="includeNoneSpecified">if set to <c>true</c> [include none specified].</param>
/// <param name="noneSpecifiedText">The none specified text.</param>
/// <param name="includeHidden">if set to <c>true</c> [include hidden].</param>
/// <param name="includeDeleted">if set to <c>true</c> [include deleted].</param>
/// <param name="includeURL">if set to <c>true</c> [include URL].</param>
/// <param name="checkViewPermisison">if set to <c>true</c> [check view permisison].</param>
/// <param name="checkEditPermission">if set to <c>true</c> [check edit permission].</param>
/// <param name="includeDeletedChildren">The value of this parameter affects <see cref="TabInfo.HasChildren"></see> property.</param>
/// <returns></returns>
public static List<TabInfo> GetPortalTabs(
List<TabInfo> tabs,
int excludeTabId,
bool includeNoneSpecified,
string noneSpecifiedText,
bool includeHidden,
bool includeDeleted,
bool includeURL,
bool checkViewPermisison,
bool checkEditPermission,
bool includeDeletedChildren)
{
var listTabs = new List<TabInfo>();
if (includeNoneSpecified)
Expand Down Expand Up @@ -2580,6 +2622,9 @@ public static void CopyPermissionsToChildren(TabInfo parentTab, TabPermissionCol
listTabs.Add(tab);
}
}

// HasChildren should be true in case there is at least one not deleted child
tab.HasChildren = tab.HasChildren && (includeDeletedChildren || GetTabsByParent(tab.TabID, tab.PortalID).Any(a => !a.IsDeleted));
}
}
return listTabs;
Expand Down

0 comments on commit b2d5533

Please sign in to comment.