aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Playlists
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/Playlists')
-rw-r--r--MediaBrowser.Controller/Playlists/Playlist.cs20
1 files changed, 16 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs
index fc367b8293..edf3fb25c9 100644
--- a/MediaBrowser.Controller/Playlists/Playlist.cs
+++ b/MediaBrowser.Controller/Playlists/Playlist.cs
@@ -235,18 +235,18 @@ namespace MediaBrowser.Controller.Playlists
{
if (!IsSharedItem)
{
- return base.IsVisible(user, skipAllowedTagsCheck);
+ return base.IsVisible(user, skipAllowedTagsCheck) && HasParentalAllowedChild(user);
}
if (OpenAccess)
{
- return true;
+ return HasParentalAllowedChild(user);
}
var userId = user.Id;
if (userId.Equals(OwnerUserId))
{
- return true;
+ return HasParentalAllowedChild(user);
}
var shares = Shares;
@@ -255,7 +255,19 @@ namespace MediaBrowser.Controller.Playlists
return false;
}
- return shares.Any(s => s.UserId.Equals(userId));
+ return shares.Any(s => s.UserId.Equals(userId)) && HasParentalAllowedChild(user);
+ }
+
+ private bool HasParentalAllowedChild(User user)
+ {
+ if (!user.MaxParentalRatingScore.HasValue)
+ {
+ return true;
+ }
+
+ var linkedItems = GetLinkedChildren();
+
+ return linkedItems.Count == 0 || linkedItems.Any(child => child.IsParentalAllowed(user, true));
}
public override bool CanDelete(User user)