private static IList <NavBE> FilterDisallowedNavRecords(IList <NavBE> navPages) { Dictionary <ulong, NavBE> pagesToCheck = new Dictionary <ulong, NavBE>(); List <NavBE> allowedPages = new List <NavBE>(navPages.Count); Permissions userPermissions = PermissionsBL.GetUserPermissions(DekiContext.Current.User); foreach (NavBE np in navPages) { ulong effectivePageRights = PermissionsBL.CalculateEffectivePageRights(new PermissionStruct((ulong)userPermissions, np.RestrictionFlags ?? ulong.MaxValue, 0)); if (!PermissionsBL.IsActionAllowed(effectivePageRights, false, Permissions.BROWSE)) { pagesToCheck.Add(np.Id, np); } else { allowedPages.Add(np); } } if (pagesToCheck.Count > 0) { IEnumerable <ulong> filteredOutPages; var allowedIds = PermissionsBL.FilterDisallowed(DekiContext.Current.User, pagesToCheck.Keys.ToArray(), false, out filteredOutPages, Permissions.BROWSE); foreach (var allowedId in allowedIds) { allowedPages.Add(pagesToCheck[allowedId]); } return(allowedPages); } // No changes made.. return(navPages); }