From dafd1864104afe8d9bb8f20cf8bf40931a0417f1 Mon Sep 17 00:00:00 2001 From: elfalem <elfalem@gmail.com> Date: Mon, 23 Sep 2024 18:52:18 -0400 Subject: [PATCH 1/2] Ensure user's own playlists are accessible regardless of allowed tags --- .../Data/SqliteItemRepository.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 60f5ee47ac..5598c81dcc 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -4203,6 +4203,15 @@ namespace Emby.Server.Implementations.Data OR (select CleanValue from ItemValues where ItemId=ParentId and Type=6 and CleanValue in ({includedTags})) is not null) """); } + + // A playlist should be accessible to its owner regardless of allowed tags. + else if (includeTypes.Length == 1 && includeTypes.FirstOrDefault() is BaseItemKind.Playlist) + { + whereClauses.Add($""" + ((select CleanValue from ItemValues where ItemId=Guid and Type=6 and CleanValue in ({includedTags})) is not null + OR data like @PlaylistOwnerUserId) + """); + } else { whereClauses.Add("((select CleanValue from ItemValues where ItemId=Guid and Type=6 and cleanvalue in (" + includedTags + ")) is not null)"); @@ -4214,6 +4223,11 @@ namespace Emby.Server.Implementations.Data { statement.TryBind(paramName + index, GetCleanValue(query.IncludeInheritedTags[index])); } + + if (query.User != null) + { + statement.TryBind("@PlaylistOwnerUserId", $"""%"OwnerUserId":"{query.User.Id.ToString("N")}"%"""); + } } } From 8499be23ccfbe1b7eed6768d3ea634a6eed05217 Mon Sep 17 00:00:00 2001 From: elfalem <elfalem@users.noreply.github.com> Date: Wed, 25 Sep 2024 20:05:00 -0400 Subject: [PATCH 2/2] Update SqliteItemRepository.cs - incorporate review suggestion Co-authored-by: Bond-009 <bond.009@outlook.com> --- Emby.Server.Implementations/Data/SqliteItemRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 5598c81dcc..3da925f937 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -4224,7 +4224,7 @@ namespace Emby.Server.Implementations.Data statement.TryBind(paramName + index, GetCleanValue(query.IncludeInheritedTags[index])); } - if (query.User != null) + if (query.User is not null) { statement.TryBind("@PlaylistOwnerUserId", $"""%"OwnerUserId":"{query.User.Id.ToString("N")}"%"""); }