aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-14 00:23:04 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-14 00:23:04 -0500
commitafa808c3bfb19f7d39e0168724677a2bb271466d (patch)
tree63f4f6ca55934d815734771f83b9e1aac2fead12 /MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
parent06b1896d8badc8d871723809882b23e234313fa5 (diff)
update translations
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels/ChannelManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs24
1 files changed, 22 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index b777e8a9c..382d0077a 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -533,6 +533,12 @@ namespace MediaBrowser.Server.Implementations.Channels
? null
: _userManager.GetUserById(query.UserId);
+ // See below about parental control
+ if (user != null)
+ {
+ query.StartIndex = null;
+ }
+
var internalResult = await GetLatestChannelItemsInternal(query, cancellationToken).ConfigureAwait(false);
// Get everything
@@ -540,13 +546,27 @@ namespace MediaBrowser.Server.Implementations.Channels
.Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true))
.ToList();
- var returnItems = internalResult.Items.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
+ var items = internalResult.Items;
+ var totalRecordCount = internalResult.TotalRecordCount;
+
+ // Supporting parental control is a hack because it has to be done after querying the remote data source
+ // This will get screwy if apps try to page, so limit to 10 results in an attempt to always keep them on the first page
+ if (user != null)
+ {
+ items = items.Where(i => i.IsVisible(user))
+ .Take(10)
+ .ToArray();
+
+ totalRecordCount = items.Length;
+ }
+
+ var returnItems = items.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToArray();
var result = new QueryResult<BaseItemDto>
{
Items = returnItems,
- TotalRecordCount = internalResult.TotalRecordCount
+ TotalRecordCount = totalRecordCount
};
return result;