aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs')
-rw-r--r--Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs21
1 files changed, 15 insertions, 6 deletions
diff --git a/Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs b/Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs
index 55aadae79..cf3182003 100644
--- a/Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs
+++ b/Jellyfin.Server/Migrations/Routines/FixPlaylistOwner.cs
@@ -1,5 +1,6 @@
using System;
using System.Linq;
+using System.Threading;
using Jellyfin.Data.Enums;
using MediaBrowser.Controller.Entities;
@@ -53,13 +54,21 @@ internal class FixPlaylistOwner : IMigrationRoutine
foreach (var playlist in playlists)
{
var shares = playlist.Shares;
- var firstEditShare = shares.First(x => x.CanEdit);
- if (firstEditShare is not null && Guid.TryParse(firstEditShare.UserId, out var guid))
+ if (shares.Length > 0)
{
- playlist.OwnerUserId = guid;
- playlist.Shares = shares.Where(x => x != firstEditShare).ToArray();
-
- _playlistManager.UpdatePlaylistAsync(playlist).GetAwaiter().GetResult();
+ var firstEditShare = shares.First(x => x.CanEdit);
+ if (firstEditShare is not null && Guid.TryParse(firstEditShare.UserId, out var guid))
+ {
+ playlist.OwnerUserId = guid;
+ playlist.Shares = shares.Where(x => x != firstEditShare).ToArray();
+ playlist.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).GetAwaiter().GetResult();
+ _playlistManager.SavePlaylistFile(playlist);
+ }
+ }
+ else
+ {
+ playlist.OpenAccess = true;
+ playlist.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, CancellationToken.None).GetAwaiter().GetResult();
}
}
}