From bcb2a3d5e95a15de9ad41885ab27f68479473f19 Mon Sep 17 00:00:00 2001 From: gnattu Date: Tue, 15 Oct 2024 18:22:39 +0800 Subject: Don't check remote sources for trickplay --- Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs index f6c48498ca..4aa998591e 100644 --- a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs +++ b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs @@ -498,6 +498,11 @@ public class TrickplayManager : ITrickplayManager var trickplayManifest = new Dictionary>(); foreach (var mediaSource in item.GetMediaSources(false)) { + if (mediaSource.IsRemote) + { + continue; + } + var mediaSourceId = Guid.Parse(mediaSource.Id); var trickplayResolutions = await GetTrickplayResolutions(mediaSourceId).ConfigureAwait(false); -- cgit v1.2.3 From 666db81a09e32f4fd8ddb201ff2fddaca0481007 Mon Sep 17 00:00:00 2001 From: gnattu Date: Wed, 16 Oct 2024 17:47:24 +0800 Subject: Allow invalid id for trickplay Co-authored-by: JPVenson --- Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs index 4aa998591e..25870305e2 100644 --- a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs +++ b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs @@ -498,12 +498,10 @@ public class TrickplayManager : ITrickplayManager var trickplayManifest = new Dictionary>(); foreach (var mediaSource in item.GetMediaSources(false)) { - if (mediaSource.IsRemote) + if (mediaSource.IsRemote || !Guid.TryParse(mediaSource.Id, out var mediaSourceId) { continue; } - - var mediaSourceId = Guid.Parse(mediaSource.Id); var trickplayResolutions = await GetTrickplayResolutions(mediaSourceId).ConfigureAwait(false); if (trickplayResolutions.Count > 0) -- cgit v1.2.3 From 5ac895bef66d53d6cba148d7816b021c0a655380 Mon Sep 17 00:00:00 2001 From: gnattu Date: Wed, 16 Oct 2024 17:50:19 +0800 Subject: Fix format --- Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs index 25870305e2..cfe385106a 100644 --- a/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs +++ b/Jellyfin.Server.Implementations/Trickplay/TrickplayManager.cs @@ -498,10 +498,11 @@ public class TrickplayManager : ITrickplayManager var trickplayManifest = new Dictionary>(); foreach (var mediaSource in item.GetMediaSources(false)) { - if (mediaSource.IsRemote || !Guid.TryParse(mediaSource.Id, out var mediaSourceId) + if (mediaSource.IsRemote || !Guid.TryParse(mediaSource.Id, out var mediaSourceId)) { continue; } + var trickplayResolutions = await GetTrickplayResolutions(mediaSourceId).ConfigureAwait(false); if (trickplayResolutions.Count > 0) -- cgit v1.2.3 From 5b696124fc24e183aa62e5132cfba640791e210c Mon Sep 17 00:00:00 2001 From: JPVenson Date: Mon, 21 Oct 2024 05:27:18 +0200 Subject: Add catch to remove cached user if creation fails (#12574) --- Jellyfin.Server.Implementations/Users/UserManager.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Users/UserManager.cs b/Jellyfin.Server.Implementations/Users/UserManager.cs index eb4bc2aff7..1b6635938b 100644 --- a/Jellyfin.Server.Implementations/Users/UserManager.cs +++ b/Jellyfin.Server.Implementations/Users/UserManager.cs @@ -201,8 +201,6 @@ namespace Jellyfin.Server.Implementations.Users user.AddDefaultPermissions(); user.AddDefaultPreferences(); - _users.Add(user.Id, user); - return user; } @@ -227,6 +225,7 @@ namespace Jellyfin.Server.Implementations.Users dbContext.Users.Add(newUser); await dbContext.SaveChangesAsync().ConfigureAwait(false); + _users.Add(newUser.Id, newUser); } await _eventManager.PublishAsync(new UserCreatedEventArgs(newUser)).ConfigureAwait(false); @@ -560,6 +559,7 @@ namespace Jellyfin.Server.Implementations.Users dbContext.Users.Add(newUser); await dbContext.SaveChangesAsync().ConfigureAwait(false); + _users.Add(newUser.Id, newUser); } } -- cgit v1.2.3 From a416c438da1cc94389aa96d97929b27f3c08e5a7 Mon Sep 17 00:00:00 2001 From: SethPattee <97485847+SethPattee@users.noreply.github.com> Date: Sun, 3 Nov 2024 07:43:27 -0700 Subject: Added + in username regex validator, Test + in username, issue #10414 (#12819) --- Jellyfin.Server.Implementations/Users/UserManager.cs | 2 +- tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Users/UserManager.cs b/Jellyfin.Server.Implementations/Users/UserManager.cs index 1b6635938b..c7ae0f4dbe 100644 --- a/Jellyfin.Server.Implementations/Users/UserManager.cs +++ b/Jellyfin.Server.Implementations/Users/UserManager.cs @@ -113,7 +113,7 @@ namespace Jellyfin.Server.Implementations.Users // This is some regex that matches only on unicode "word" characters, as well as -, _ and @ // In theory this will cut out most if not all 'control' characters which should help minimize any weirdness // Usernames can contain letters (a-z + whatever else unicode is cool with), numbers (0-9), at-signs (@), dashes (-), underscores (_), apostrophes ('), periods (.) and spaces ( ) - [GeneratedRegex(@"^[\w\ \-'._@]+$")] + [GeneratedRegex(@"^[\w\ \-'._@+]+$")] private static partial Regex ValidUsernameRegex(); /// diff --git a/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs b/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs index 295f558fad..665afe1118 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs +++ b/tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs @@ -10,6 +10,9 @@ namespace Jellyfin.Server.Implementations.Tests.Users [InlineData("this_is_valid")] [InlineData("this is also valid")] [InlineData("0@_-' .")] + [InlineData("Aa0@_-' .+")] + [InlineData("thisisa+testemail@test.foo")] + [InlineData("------@@@--+++----@@--abcdefghijklmn---------@----_-_-___-_ .9foo+")] public void ThrowIfInvalidUsername_WhenValidUsername_DoesNotThrowArgumentException(string username) { var ex = Record.Exception(() => UserManager.ThrowIfInvalidUsername(username)); -- cgit v1.2.3