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 @ // 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 // 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 ( ) // 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(); private static partial Regex ValidUsernameRegex();
/// <inheritdoc/> /// <inheritdoc/>
@ -735,7 +735,7 @@ namespace Jellyfin.Server.Implementations.Users
internal static void ThrowIfInvalidUsername(string name) 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; return;
} }