Forráskód Böngészése

Merge pull request #13556 from Jxiced/master

Don't allow usernames to have leading or trailing spaces
Bond-009 3 hónapja
szülő
commit
51e0ce7ea4

+ 1 - 1
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(@"^(?!\s)[\w\ \-'._@+]+(?<!\s)$")]
         private static partial Regex ValidUsernameRegex();
 
         /// <inheritdoc/>

+ 4 - 0
tests/Jellyfin.Server.Implementations.Tests/Users/UserManagerTests.cs

@@ -23,6 +23,10 @@ namespace Jellyfin.Server.Implementations.Tests.Users
         [InlineData(" ")]
         [InlineData("")]
         [InlineData("special characters like & $ ? are not allowed")]
+        [InlineData("thishasaspaceontheend ")]
+        [InlineData(" thishasaspaceatthestart")]
+        [InlineData(" thishasaspaceatbothends ")]
+        [InlineData(" this has a space at both ends and inbetween ")]
         public void ThrowIfInvalidUsername_WhenInvalidUsername_ThrowsArgumentException(string username)
         {
             Assert.Throws<ArgumentException>(() => UserManager.ThrowIfInvalidUsername(username));