Ver código fonte

Fix media folders endpoint access control

Bill Thornton 2 anos atrás
pai
commit
4f3d562d75
1 arquivos alterados com 7 adições e 0 exclusões
  1. 7 0
      Jellyfin.Api/Controllers/LibraryController.cs

+ 7 - 0
Jellyfin.Api/Controllers/LibraryController.cs

@@ -11,6 +11,7 @@ using System.Threading.Tasks;
 using Jellyfin.Api.Attributes;
 using Jellyfin.Api.Attributes;
 using Jellyfin.Api.Constants;
 using Jellyfin.Api.Constants;
 using Jellyfin.Api.Extensions;
 using Jellyfin.Api.Extensions;
+using Jellyfin.Api.Helpers;
 using Jellyfin.Api.ModelBinders;
 using Jellyfin.Api.ModelBinders;
 using Jellyfin.Api.Models.LibraryDtos;
 using Jellyfin.Api.Models.LibraryDtos;
 using Jellyfin.Data.Entities;
 using Jellyfin.Data.Entities;
@@ -498,6 +499,12 @@ namespace Jellyfin.Api.Controllers
         {
         {
             var items = _libraryManager.GetUserRootFolder().Children.Concat(_libraryManager.RootFolder.VirtualChildren).OrderBy(i => i.SortName).ToList();
             var items = _libraryManager.GetUserRootFolder().Children.Concat(_libraryManager.RootFolder.VirtualChildren).OrderBy(i => i.SortName).ToList();
 
 
+            if (!ClaimHelpers.GetIsApiKey(User) && !User.IsInRole(UserRoles.Administrator))
+            {
+                var user = _userManager.GetUserById(ClaimHelpers.GetUserId(User)!.Value);
+                items = items.Where(i => i.IsVisible(user)).ToList();
+            }
+
             if (isHidden.HasValue)
             if (isHidden.HasValue)
             {
             {
                 var val = isHidden.Value;
                 var val = isHidden.Value;