commit 45f961a9fe65127980e0e12a46ac4ac8f5b5752b
parent f5c004d67d4ed66b6c6df100afec47174aa14ae0
Author: decentral1se <1991377+decentral1se@users.noreply.github.com>
Date: Thu, 25 May 2023 11:15:10 +0200
[bugfix] allow usernames of length 1 (#1823)
Closes https://github.com/superseriousbusiness/gotosocial/issues/1691.
Co-authored-by: decentral1se <cellarspoon@riseup.net>
Diffstat:
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/internal/regexes/regexes.go b/internal/regexes/regexes.go
@@ -47,8 +47,8 @@ const (
mentionFinder = `(?:^|\s)(@` + usernameGrp + `+(?:@` + domainGrp + `+)?)` // Extract all mentions from a text, each mention may include domain.
emojiShortcode = `\w{2,30}` // Pattern for emoji shortcodes. maximumEmojiShortcodeLength = 30
emojiFinder = `(?:\b)?:(` + emojiShortcode + `):(?:\b)?` // Extract all emoji shortcodes from a text.
- usernameStrict = `^[a-z0-9_]{2,64}$` // Pattern for usernames on THIS instance. maximumUsernameLength = 64
- usernameRelaxed = `[a-z0-9_\.]{2,}` // Relaxed version of username that can match instance accounts too.
+ usernameStrict = `^[a-z0-9_]{1,64}$` // Pattern for usernames on THIS instance. maximumUsernameLength = 64
+ usernameRelaxed = `[a-z0-9_\.]{1,}` // Relaxed version of username that can match instance accounts too.
misskeyReportNotesFinder = `(?m)(?:^Note: ((?:http|https):\/\/.*)$)` // Extract reported Note URIs from the text of a Misskey report/flag.
ulid = `[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}` // Pattern for ULID.
ulidValidate = `^` + ulid + `$` // Validate one ULID.
diff --git a/internal/validate/formvalidation_test.go b/internal/validate/formvalidation_test.go
@@ -93,6 +93,7 @@ func (suite *ValidationTestSuite) TestValidateUsername() {
trailingSpace := "thisusername_ends_with_a_space "
newlines := "this_is\n_almost_ok"
goodUsername := "this_is_a_good_username"
+ singleChar := "s"
var err error
err = validate.Username(empty)
@@ -118,6 +119,9 @@ func (suite *ValidationTestSuite) TestValidateUsername() {
err = validate.Username(goodUsername)
suite.NoError(err)
+
+ err = validate.Username(singleChar)
+ suite.NoError(err)
}
func (suite *ValidationTestSuite) TestValidateEmail() {