瀏覽代碼

add comments

Jason Dove 2 年之前
父節點
當前提交
c69b2c849a
共有 1 個文件被更改,包括 5 次插入0 次删除
  1. 5 0
      Jellyfin.Api/Controllers/ItemsController.cs

+ 5 - 0
Jellyfin.Api/Controllers/ItemsController.cs

@@ -246,10 +246,12 @@ namespace Jellyfin.Api.Controllers
         {
         {
             var auth = await _authContext.GetAuthorizationInfo(Request).ConfigureAwait(false);
             var auth = await _authContext.GetAuthorizationInfo(Request).ConfigureAwait(false);
 
 
+            // if api key is used (auth.IsApiKey == true), then `user` will be null throughout this method
             var user = !auth.IsApiKey && userId.HasValue && !userId.Value.Equals(default)
             var user = !auth.IsApiKey && userId.HasValue && !userId.Value.Equals(default)
                 ? _userManager.GetUserById(userId.Value)
                 ? _userManager.GetUserById(userId.Value)
                 : null;
                 : null;
 
 
+            // beyond this point, we're either using an api key or we have a valid user
             if (!auth.IsApiKey && user is null)
             if (!auth.IsApiKey && user is null)
             {
             {
                 return BadRequest("userId is required");
                 return BadRequest("userId is required");
@@ -290,6 +292,7 @@ namespace Jellyfin.Api.Controllers
                 ? Array.Empty<Guid>()
                 ? Array.Empty<Guid>()
                 : user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledChannels);
                 : user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledChannels);
 
 
+            // api keys are always enabled for all folders
             bool isInEnabledFolder = auth.IsApiKey
             bool isInEnabledFolder = auth.IsApiKey
                                      || Array.IndexOf(user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledFolders), item.Id) != -1
                                      || Array.IndexOf(user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledFolders), item.Id) != -1
                                      // Assume all folders inside an EnabledChannel are enabled
                                      // Assume all folders inside an EnabledChannel are enabled
@@ -302,6 +305,7 @@ namespace Jellyfin.Api.Controllers
                 var collectionFolders = _libraryManager.GetCollectionFolders(item);
                 var collectionFolders = _libraryManager.GetCollectionFolders(item);
                 foreach (var collectionFolder in collectionFolders)
                 foreach (var collectionFolder in collectionFolders)
                 {
                 {
+                    // api keys never enter this block, so user is never null
                     if (user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledFolders).Contains(collectionFolder.Id))
                     if (user!.GetPreferenceValues<Guid>(PreferenceKind.EnabledFolders).Contains(collectionFolder.Id))
                     {
                     {
                         isInEnabledFolder = true;
                         isInEnabledFolder = true;
@@ -309,6 +313,7 @@ namespace Jellyfin.Api.Controllers
                 }
                 }
             }
             }
 
 
+            // api keys are always enabled for all folders, so user is never null
             if (item is not UserRootFolder
             if (item is not UserRootFolder
                 && !isInEnabledFolder
                 && !isInEnabledFolder
                 && !user!.HasPermission(PermissionKind.EnableAllFolders)
                 && !user!.HasPermission(PermissionKind.EnableAllFolders)