diff options
| author | Joshua M. Boniface <joshua@boniface.me> | 2021-04-11 13:30:15 -0400 |
|---|---|---|
| committer | Joshua M. Boniface <joshua@boniface.me> | 2021-04-11 14:13:44 -0400 |
| commit | 2197d2078335864e9b3e43bba2b59389811447d8 (patch) | |
| tree | 6a0462b9c1eba53d3a3b98cbd98695e1b886d812 /Jellyfin.Api/Controllers/ItemsController.cs | |
| parent | f4f9ab777f3f60a6581580b1a28239b967f80e05 (diff) | |
Merge pull request #5764 from cvium/fix-folders-perms
Do not check permissions for Folders collectiontype
(cherry picked from commit 770c123d12806253675624d165ff08fe9ddbd7de)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
Diffstat (limited to 'Jellyfin.Api/Controllers/ItemsController.cs')
| -rw-r--r-- | Jellyfin.Api/Controllers/ItemsController.cs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Jellyfin.Api/Controllers/ItemsController.cs b/Jellyfin.Api/Controllers/ItemsController.cs index 7d7747495..7254f1bc7 100644 --- a/Jellyfin.Api/Controllers/ItemsController.cs +++ b/Jellyfin.Api/Controllers/ItemsController.cs @@ -247,8 +247,13 @@ namespace Jellyfin.Api.Controllers folder = _libraryManager.GetUserRootFolder(); } - if (folder is IHasCollectionType hasCollectionType - && string.Equals(hasCollectionType.CollectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase)) + string? collectionType = null; + if (folder is IHasCollectionType hasCollectionType) + { + collectionType = hasCollectionType.CollectionType; + } + + if (string.Equals(collectionType, CollectionType.Playlists, StringComparison.OrdinalIgnoreCase)) { recursive = true; includeItemTypes = new[] { "Playlist" }; @@ -271,10 +276,11 @@ namespace Jellyfin.Api.Controllers } } - if (!(item is UserRootFolder) + if (item is not UserRootFolder && !isInEnabledFolder && !user.HasPermission(PermissionKind.EnableAllFolders) - && !user.HasPermission(PermissionKind.EnableAllChannels)) + && !user.HasPermission(PermissionKind.EnableAllChannels) + && !string.Equals(collectionType, CollectionType.Folders, StringComparison.OrdinalIgnoreCase)) { _logger.LogWarning("{UserName} is not permitted to access Library {ItemName}.", user.Username, item.Name); return Unauthorized($"{user.Username} is not permitted to access Library {item.Name}."); |
