aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Playlists
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-14 09:24:30 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-14 09:24:30 -0400
commit9c5cceb4ecc277ffb5a3a988f655ad674bf41c58 (patch)
tree0077c03cb06e2dc7700315f90db9ee51fedeb00d /MediaBrowser.Controller/Playlists
parent02e25b48550ffef016d20fe3f070c8552633cbef (diff)
update translations
Diffstat (limited to 'MediaBrowser.Controller/Playlists')
-rw-r--r--MediaBrowser.Controller/Playlists/Playlist.cs40
1 files changed, 39 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs
index ec3e03339d..7822623a97 100644
--- a/MediaBrowser.Controller/Playlists/Playlist.cs
+++ b/MediaBrowser.Controller/Playlists/Playlist.cs
@@ -12,6 +12,14 @@ namespace MediaBrowser.Controller.Playlists
{
public string OwnerUserId { get; set; }
+ protected override bool FilterLinkedChildrenPerUser
+ {
+ get
+ {
+ return true;
+ }
+ }
+
public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
{
return GetPlayableItems(user);
@@ -34,7 +42,12 @@ namespace MediaBrowser.Controller.Playlists
public static IEnumerable<BaseItem> GetPlaylistItems(string playlistMediaType, IEnumerable<BaseItem> inputItems, User user)
{
- return inputItems.SelectMany(i =>
+ if (user != null)
+ {
+ inputItems = inputItems.Where(i => i.IsVisible(user));
+ }
+
+ inputItems = inputItems.SelectMany(i =>
{
var folder = i as Folder;
@@ -58,6 +71,31 @@ namespace MediaBrowser.Controller.Playlists
return new[] { i };
}).Where(m => string.Equals(m.MediaType, playlistMediaType, StringComparison.OrdinalIgnoreCase));
+
+ return FilterInaccessibleItems(inputItems, user);
+ }
+
+ public static IEnumerable<BaseItem> FilterInaccessibleItems(IEnumerable<BaseItem> items, User user)
+ {
+ return items;
+ //var locations = user.RootFolder.Children.OfType<CollectionFolder>().SelectMany(i => i.PhysicalLocations).ToList();
+
+ //return items.Where(i =>
+ //{
+ // var parent = i.Parent;
+
+ // while (parent != null)
+ // {
+ // parent = parent.Parent;
+
+ // if (parent != null && parent.Parent is AggregateFolder)
+ // {
+ // break;
+ // }
+ // }
+
+ // return parent == null || locations.Contains(parent.Path, StringComparer.OrdinalIgnoreCase);
+ //});
}
[IgnoreDataMember]