diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-14 09:24:30 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-08-14 09:24:30 -0400 |
| commit | 9c5cceb4ecc277ffb5a3a988f655ad674bf41c58 (patch) | |
| tree | 0077c03cb06e2dc7700315f90db9ee51fedeb00d /MediaBrowser.Controller/Playlists | |
| parent | 02e25b48550ffef016d20fe3f070c8552633cbef (diff) | |
update translations
Diffstat (limited to 'MediaBrowser.Controller/Playlists')
| -rw-r--r-- | MediaBrowser.Controller/Playlists/Playlist.cs | 40 |
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] |
