mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-31 14:33:54 -04:00
Fix allow and block queries (#14482)
This commit is contained in:
parent
ba54cda774
commit
536437bbe3
@ -2253,7 +2253,7 @@ public sealed class BaseItemRepository
|
|||||||
if (filter.ExcludeInheritedTags.Length > 0)
|
if (filter.ExcludeInheritedTags.Length > 0)
|
||||||
{
|
{
|
||||||
baseQuery = baseQuery
|
baseQuery = baseQuery
|
||||||
.Where(e => !e.ItemValues!.Where(w => w.ItemValue.Type == ItemValueType.InheritedTags)
|
.Where(e => !e.ItemValues!.Where(w => w.ItemValue.Type == ItemValueType.InheritedTags || w.ItemValue.Type == ItemValueType.Tags)
|
||||||
.Any(f => filter.ExcludeInheritedTags.Contains(f.ItemValue.CleanValue)));
|
.Any(f => filter.ExcludeInheritedTags.Contains(f.ItemValue.CleanValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2264,10 +2264,10 @@ public sealed class BaseItemRepository
|
|||||||
if (includeTypes.Length == 1 && includeTypes.FirstOrDefault() is BaseItemKind.Episode)
|
if (includeTypes.Length == 1 && includeTypes.FirstOrDefault() is BaseItemKind.Episode)
|
||||||
{
|
{
|
||||||
baseQuery = baseQuery
|
baseQuery = baseQuery
|
||||||
.Where(e => e.ItemValues!.Where(f => f.ItemValue.Type == ItemValueType.InheritedTags)
|
.Where(e => e.ItemValues!.Where(f => f.ItemValue.Type == ItemValueType.InheritedTags || f.ItemValue.Type == ItemValueType.Tags)
|
||||||
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue))
|
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue))
|
||||||
||
|
||
|
||||||
(e.ParentId.HasValue && context.ItemValuesMap.Where(w => w.ItemId == e.ParentId.Value)!.Where(w => w.ItemValue.Type == ItemValueType.InheritedTags)
|
(e.ParentId.HasValue && context.ItemValuesMap.Where(w => w.ItemId == e.ParentId.Value && (w.ItemValue.Type == ItemValueType.InheritedTags || w.ItemValue.Type == ItemValueType.Tags))
|
||||||
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue))));
|
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2275,17 +2275,16 @@ public sealed class BaseItemRepository
|
|||||||
else if (includeTypes.Length == 1 && includeTypes.FirstOrDefault() is BaseItemKind.Playlist)
|
else if (includeTypes.Length == 1 && includeTypes.FirstOrDefault() is BaseItemKind.Playlist)
|
||||||
{
|
{
|
||||||
baseQuery = baseQuery
|
baseQuery = baseQuery
|
||||||
.Where(e =>
|
.Where(e => e.ItemValues!.Where(f => f.ItemValue.Type == ItemValueType.InheritedTags || f.ItemValue.Type == ItemValueType.Tags)
|
||||||
e.Parents!
|
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue))
|
||||||
.Any(f =>
|
|| e.Data!.Contains($"OwnerUserId\":\"{filter.User!.Id:N}\""));
|
||||||
f.ParentItem.ItemValues!.Any(w => w.ItemValue.Type == ItemValueType.Tags && filter.IncludeInheritedTags.Contains(w.ItemValue.CleanValue))
|
|
||||||
|| e.Data!.Contains($"OwnerUserId\":\"{filter.User!.Id:N}\"")));
|
|
||||||
// d ^^ this is stupid it hate this.
|
// d ^^ this is stupid it hate this.
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
baseQuery = baseQuery
|
baseQuery = baseQuery
|
||||||
.Where(e => e.Parents!.Any(f => f.ParentItem.ItemValues!.Any(w => w.ItemValue.Type == ItemValueType.Tags && filter.IncludeInheritedTags.Contains(w.ItemValue.CleanValue))));
|
.Where(e => e.ItemValues!.Where(f => f.ItemValue.Type == ItemValueType.InheritedTags || f.ItemValue.Type == ItemValueType.Tags)
|
||||||
|
.Any(f => filter.IncludeInheritedTags.Contains(f.ItemValue.CleanValue)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Diacritics.Extensions;
|
||||||
using Jellyfin.Data;
|
using Jellyfin.Data;
|
||||||
using Jellyfin.Data.Enums;
|
using Jellyfin.Data.Enums;
|
||||||
using Jellyfin.Database.Implementations.Entities;
|
using Jellyfin.Database.Implementations.Entities;
|
||||||
@ -373,8 +374,15 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
.Where(i => i != other)
|
.Where(i => i != other)
|
||||||
.Select(e => Enum.Parse<UnratedItem>(e, true)).ToArray();
|
.Select(e => Enum.Parse<UnratedItem>(e, true)).ToArray();
|
||||||
|
|
||||||
ExcludeInheritedTags = user.GetPreference(PreferenceKind.BlockedTags);
|
ExcludeInheritedTags = user.GetPreference(PreferenceKind.BlockedTags)
|
||||||
IncludeInheritedTags = user.GetPreference(PreferenceKind.AllowedTags);
|
.Where(tag => !string.IsNullOrWhiteSpace(tag))
|
||||||
|
.Select(tag => tag.RemoveDiacritics().ToLowerInvariant())
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
IncludeInheritedTags = user.GetPreference(PreferenceKind.AllowedTags)
|
||||||
|
.Where(tag => !string.IsNullOrWhiteSpace(tag))
|
||||||
|
.Select(tag => tag.RemoveDiacritics().ToLowerInvariant())
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
User = user;
|
User = user;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user