Add try catch (#14154)

This commit is contained in:
sharinganthief 2025-06-06 08:54:53 -04:00 committed by GitHub
parent a702b62553
commit 9ab22e9f8b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -450,22 +450,41 @@ public class PlaylistsController : BaseJellyfinApiController
{ {
var callingUserId = User.GetUserId(); var callingUserId = User.GetUserId();
var playlist = _playlistManager.GetPlaylistForUser(Guid.Parse(playlistId), callingUserId); if (!callingUserId.IsEmpty())
if (playlist is null)
{ {
return NotFound("Playlist not found"); var playlist = _playlistManager.GetPlaylistForUser(Guid.Parse(playlistId), callingUserId);
if (playlist is null)
{
return NotFound("Playlist not found");
}
var isPermitted = playlist.OwnerUserId.Equals(callingUserId)
|| playlist.Shares.Any(s => s.CanEdit && s.UserId.Equals(callingUserId));
if (!isPermitted)
{
return Forbid();
}
}
else
{
var isApiKey = User.GetIsApiKey();
if (!isApiKey)
{
return Forbid();
}
} }
var isPermitted = playlist.OwnerUserId.Equals(callingUserId) try
|| playlist.Shares.Any(s => s.CanEdit && s.UserId.Equals(callingUserId));
if (!isPermitted)
{ {
return Forbid(); await _playlistManager.RemoveItemFromPlaylistAsync(playlistId, entryIds).ConfigureAwait(false);
return NoContent();
}
catch (ArgumentException)
{
return NotFound();
} }
await _playlistManager.RemoveItemFromPlaylistAsync(playlistId, entryIds).ConfigureAwait(false);
return NoContent();
} }
/// <summary> /// <summary>