aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Playlists/Playlist.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Playlists/Playlist.cs')
-rw-r--r--MediaBrowser.Controller/Playlists/Playlist.cs19
1 files changed, 17 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs
index 75e1bbde71..e48cddaaa6 100644
--- a/MediaBrowser.Controller/Playlists/Playlist.cs
+++ b/MediaBrowser.Controller/Playlists/Playlist.cs
@@ -11,10 +11,17 @@ using System.Runtime.Serialization;
namespace MediaBrowser.Controller.Playlists
{
- public class Playlist : Folder
+ public class Playlist : Folder, IHasShares
{
public string OwnerUserId { get; set; }
+ public List<Share> Shares { get; set; }
+
+ public Playlist()
+ {
+ Shares = new List<Share>();
+ }
+
[IgnoreDataMember]
protected override bool FilterLinkedChildrenPerUser
{
@@ -166,7 +173,15 @@ namespace MediaBrowser.Controller.Playlists
public override bool IsVisible(User user)
{
- return base.IsVisible(user) && string.Equals(user.Id.ToString("N"), OwnerUserId);
+ if (base.IsVisible(user))
+ {
+ var userId = user.Id.ToString("N");
+
+ return Shares.Any(i => string.Equals(userId, i.UserId, StringComparison.OrdinalIgnoreCase)) ||
+ string.Equals(OwnerUserId, userId, StringComparison.OrdinalIgnoreCase);
+ }
+
+ return false;
}
}
}