diff options
| author | Shadowghost <Ghost_of_Stone@web.de> | 2026-06-04 19:00:03 +0200 |
|---|---|---|
| committer | Shadowghost <Ghost_of_Stone@web.de> | 2026-06-04 19:08:48 +0200 |
| commit | 5f13afa1cecfae398ff7d84ed89fc45b14b71c61 (patch) | |
| tree | 3371235855856ec5e226b828bd2327f86712f6b2 | |
| parent | 53c1c4982a5e984b428607bd674d8a1c08e0e561 (diff) | |
Fix playlist visibility
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 5fa1213db3..25cbcedc5f 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -906,7 +906,10 @@ namespace MediaBrowser.Controller.Entities query.Parent = this; } - if (query.IncludeItemTypes.Length == 1 && query.IncludeItemTypes[0] == BaseItemKind.BoxSet) + // BoxSets and Playlists can have per-user visibility (shares/open access) that is stored in the + // serialized item data and cannot be evaluated by the database query, so filter them in memory. + if (query.IncludeItemTypes.Length > 0 + && query.IncludeItemTypes.All(t => t == BaseItemKind.BoxSet || t == BaseItemKind.Playlist)) { return QueryWithPostFiltering(query); } @@ -927,7 +930,7 @@ namespace MediaBrowser.Controller.Entities if (user is not null) { - // needed for boxsets + // needed for boxsets and playlists itemsList = itemsList.Where(i => i.IsVisibleStandalone(query.User)); } |
