Update regex and revert previous changes to ThrowIfInvalidUsername.

This commit is contained in:
Jxiced 2025-02-14 17:46:23 +00:00
parent a0ab0eb875
commit 237c1d9b97

View File

@ -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(@"^(?!\s)[\w \-'._@]+(?<!\s)$")]
private static partial Regex ValidUsernameRegex();
/// <inheritdoc/>
@ -735,7 +735,7 @@ namespace Jellyfin.Server.Implementations.Users
internal static void ThrowIfInvalidUsername(string name)
{
if (!string.IsNullOrWhiteSpace(name) && ValidUsernameRegex().IsMatch(name) && !char.IsWhiteSpace(name[0]) && !char.IsWhiteSpace(name[^1]))
if (!string.IsNullOrWhiteSpace(name) && ValidUsernameRegex().IsMatch(name))
{
return;
}