aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-05 23:47:01 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-05 23:47:01 -0400
commit3cc0ad2a3599de1134b97057f14000ea9523fa3d (patch)
treee89815755fbb612017e209d3b40fbb1442dde060 /MediaBrowser.Controller
parent30104bd8de62715d127823e69dc0de9e65d99840 (diff)
add notification services tab
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Channels/ChannelAudioItem.cs8
-rw-r--r--MediaBrowser.Controller/Channels/ChannelFolderItem.cs5
-rw-r--r--MediaBrowser.Controller/Channels/ChannelVideoItem.cs12
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs14
4 files changed, 36 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs
index 8d90246765..7582f4c91b 100644
--- a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs
+++ b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Configuration;
using MediaBrowser.Model.Dto;
@@ -100,5 +101,10 @@ namespace MediaBrowser.Controller.Channels
{
return false;
}
+
+ public override bool IsVisibleStandalone(User user)
+ {
+ return base.IsVisibleStandalone(user) && ChannelVideoItem.IsChannelVisible(this, user);
+ }
}
}
diff --git a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
index 7ba73d126c..43f5160a45 100644
--- a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
+++ b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs
@@ -80,5 +80,10 @@ namespace MediaBrowser.Controller.Channels
{
return false;
}
+
+ public override bool IsVisibleStandalone(User user)
+ {
+ return base.IsVisibleStandalone(user) && ChannelVideoItem.IsChannelVisible(this, user);
+ }
}
}
diff --git a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs
index 8eec2021b5..d97341d8f9 100644
--- a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs
+++ b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs
@@ -130,5 +130,17 @@ namespace MediaBrowser.Controller.Channels
{
return false;
}
+
+ public override bool IsVisibleStandalone(User user)
+ {
+ return base.IsVisibleStandalone(user) && IsChannelVisible(this, user);
+ }
+
+ internal static bool IsChannelVisible(IChannelItem item, User user)
+ {
+ var channel = ChannelManager.GetChannel(item.ChannelId);
+
+ return channel.IsVisible(user);
+ }
}
}
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 94fc761253..27bd09ec7d 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1154,9 +1154,19 @@ namespace MediaBrowser.Controller.Entities
return false;
}
- // TODO: Need some work here, e.g. is in user library, for channels, can user access channel, etc.
+ var topParent = Parents.LastOrDefault() ?? this;
- return true;
+ if (string.IsNullOrWhiteSpace(topParent.Path))
+ {
+ return true;
+ }
+
+ var locations = user.RootFolder
+ .GetChildren(user, true)
+ .OfType<CollectionFolder>()
+ .SelectMany(i => i.PhysicalLocations);
+
+ return locations.Any(l => FileSystem.ContainsSubPath(l, topParent.Path));
}
/// <summary>