aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-15 12:35:41 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-15 12:35:41 -0400
commite3c86944718d68806ad42c4d14c964a72da90b44 (patch)
tree521f7cf81f29ac302ce5545cdc5ecde66f977182 /MediaBrowser.Controller/Entities
parent9c5cceb4ecc277ffb5a3a988f655ad674bf41c58 (diff)
3.0.5340.20849
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs39
-rw-r--r--MediaBrowser.Controller/Entities/Movies/BoxSet.cs13
-rw-r--r--MediaBrowser.Controller/Entities/User.cs1
3 files changed, 38 insertions, 15 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 96a8c579e2..79c96dd5e4 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -934,19 +934,50 @@ namespace MediaBrowser.Controller.Entities
public IEnumerable<BaseItem> GetLinkedChildren(User user)
{
- if (!FilterLinkedChildrenPerUser)
+ if (!FilterLinkedChildrenPerUser || user == null)
{
return GetLinkedChildren();
}
var locations = user.RootFolder
- .Children
+ .GetChildren(user, true)
.OfType<CollectionFolder>()
.SelectMany(i => i.PhysicalLocations)
.ToList();
- return LinkedChildren.Where(i => string.IsNullOrWhiteSpace(i.Path) || locations.Any(l => FileSystem.ContainsSubPath(l, i.Path)))
- .Select(GetLinkedChild)
+ return LinkedChildren
+ .Select(i =>
+ {
+ var requiresPostFilter = true;
+
+ if (!string.IsNullOrWhiteSpace(i.Path))
+ {
+ requiresPostFilter = false;
+
+ if (!locations.Any(l => FileSystem.ContainsSubPath(l, i.Path)))
+ {
+ return null;
+ }
+ }
+
+ var child = GetLinkedChild(i);
+
+ if (requiresPostFilter && child != null)
+ {
+ if (string.IsNullOrWhiteSpace(child.Path))
+ {
+ Logger.Debug("Found LinkedChild with null path: {0}", child.Name);
+ return child;
+ }
+
+ if (!locations.Any(l => FileSystem.ContainsSubPath(l, child.Path)))
+ {
+ return null;
+ }
+ }
+
+ return child;
+ })
.Where(i => i != null);
}
diff --git a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
index 5d8fff38f4..705cf90575 100644
--- a/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
+++ b/MediaBrowser.Controller/Entities/Movies/BoxSet.cs
@@ -1,6 +1,4 @@
-using System.Runtime.Serialization;
-using MediaBrowser.Common.Progress;
-using MediaBrowser.Controller.Playlists;
+using MediaBrowser.Common.Progress;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Entities;
@@ -8,6 +6,7 @@ using MediaBrowser.Model.Querying;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Runtime.Serialization;
using System.Threading;
using System.Threading.Tasks;
@@ -81,8 +80,6 @@ namespace MediaBrowser.Controller.Entities.Movies
{
var children = base.GetChildren(user, includeLinkedChildren);
- children = Playlist.FilterInaccessibleItems(children, user);
-
if (string.Equals(DisplayOrder, ItemSortBy.SortName, StringComparison.OrdinalIgnoreCase))
{
// Sort by name
@@ -99,12 +96,6 @@ namespace MediaBrowser.Controller.Entities.Movies
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending);
}
- public override IEnumerable<BaseItem> GetRecursiveChildren(User user, bool includeLinkedChildren = true)
- {
- var children = base.GetRecursiveChildren(user, includeLinkedChildren);
- return Playlist.FilterInaccessibleItems(children, user);
- }
-
public BoxSetInfo GetLookupInfo()
{
return GetItemLookupInfo<BoxSetInfo>();
diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs
index b9c419722d..e4fd929ffd 100644
--- a/MediaBrowser.Controller/Entities/User.cs
+++ b/MediaBrowser.Controller/Entities/User.cs
@@ -24,6 +24,7 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <value>The password.</value>
public string Password { get; set; }
+ public string LocalPassword { get; set; }
/// <summary>
/// Gets or sets the path.