aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data/UserEntityExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Data/UserEntityExtensions.cs')
-rw-r--r--Jellyfin.Data/UserEntityExtensions.cs17
1 files changed, 17 insertions, 0 deletions
diff --git a/Jellyfin.Data/UserEntityExtensions.cs b/Jellyfin.Data/UserEntityExtensions.cs
index 0fc8d3cd25..c6468daa2e 100644
--- a/Jellyfin.Data/UserEntityExtensions.cs
+++ b/Jellyfin.Data/UserEntityExtensions.cs
@@ -163,6 +163,23 @@ public static class UserEntityExtensions
}
/// <summary>
+ /// Checks whether any library, parental rating or tag rule keeps content from this user.
+ /// </summary>
+ /// <param name="entity">The user to check.</param>
+ /// <returns><c>True</c> if some content in the library is hidden from this user.</returns>
+ public static bool HasContentRestrictions(this User entity)
+ {
+ ArgumentNullException.ThrowIfNull(entity);
+
+ return !entity.HasPermission(PermissionKind.EnableAllFolders)
+ || entity.GetPreference(PreferenceKind.BlockedMediaFolders).Length > 0
+ || entity.MaxParentalRatingScore.HasValue
+ || entity.GetPreference(PreferenceKind.BlockedTags).Length > 0
+ || entity.GetPreference(PreferenceKind.AllowedTags).Length > 0
+ || entity.GetPreference(PreferenceKind.BlockUnratedItems).Length > 0;
+ }
+
+ /// <summary>
/// Initializes the default permissions for a user. Should only be called on user creation.
/// </summary>
/// <param name="entity">The entity to update.</param>