diff options
| author | Bond-009 <bond.009@outlook.com> | 2026-06-06 14:35:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-06 14:35:16 +0200 |
| commit | c8da0abf0f4d72d30ed0b6977be656e415c03d30 (patch) | |
| tree | 927eb558e8945c913cd17c9b24d77b6d702b9f88 | |
| parent | 1a2db53710b4bec30ca066af030ebc55b904c61d (diff) | |
| parent | 5f13afa1cecfae398ff7d84ed89fc45b14b71c61 (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)); } |
