diff --git a/banned/manager.go b/banned/manager.go index eb578b410c12f8468050e394a843e174eb4eadd2..0f088f658d7b26f04ed837fb7882e284c595108a 100644 --- a/banned/manager.go +++ b/banned/manager.go @@ -10,7 +10,7 @@ package banned import ( "github.com/pkg/errors" jww "github.com/spf13/jwalterweatherman" - "gitlab.com/elixxir/user-discovery-bot/io" + "gitlab.com/elixxir/user-discovery-bot/validation" "regexp" "strings" "testing" @@ -42,7 +42,7 @@ func NewManager(bannedUserFile, bannedRegexFile string) (*Manager, error) { if bannedUser == "" { // Skip any empty lines continue } - bannedUsers[io.Canonicalize(bannedUser)] = struct{}{} + bannedUsers[validation.Canonicalize(bannedUser)] = struct{}{} } } diff --git a/banned/manager_test.go b/banned/manager_test.go index 063a6bdb37241b1504566e7eb3c7a34dedb2ad55..128284e98ee49181b9272d220524317571e05770 100644 --- a/banned/manager_test.go +++ b/banned/manager_test.go @@ -8,6 +8,7 @@ package banned import ( + "gitlab.com/elixxir/user-discovery-bot/validation" "reflect" "regexp" "testing" @@ -16,8 +17,8 @@ import ( func TestNewManager(t *testing.T) { expectedManager := &Manager{ bannedUserList: map[string]struct{}{ - "Privategrity": {}, - "Privategrity_Corp": {}, + "privategrity": {}, + "privategrity_corp": {}, }, bannedRegexList: []*regexp.Regexp{ regexp.MustCompile("xx"), @@ -90,7 +91,7 @@ func TestManager_IsBanned_BadUsername(t *testing.T) { } for _, badUsername := range badUsernames { - if !m.IsBanned(badUsername) { + if !m.IsBanned(validation.Canonicalize(badUsername)) { t.Errorf("Username %q was not recognized as banned when it should be", badUsername) } diff --git a/io/userRegistration.go b/io/userRegistration.go index fb3325937c6bd7fb5069ba2fd1e74e11a55f8e15..38fe6c330e6b54d1bbd418fbac3c50fb47b29e51 100644 --- a/io/userRegistration.go +++ b/io/userRegistration.go @@ -16,6 +16,7 @@ import ( "gitlab.com/elixxir/primitives/fact" "gitlab.com/elixxir/user-discovery-bot/banned" "gitlab.com/elixxir/user-discovery-bot/storage" + "gitlab.com/elixxir/user-discovery-bot/validation" "gitlab.com/xx_network/comms/messages" "gitlab.com/xx_network/crypto/signature/rsa" "gitlab.com/xx_network/primitives/id" @@ -41,10 +42,10 @@ func registerUser(msg *pb.UDBUserRegistration, permPublicKey *rsa.PublicKey, "Please try again") } - canonicalUsername := Canonicalize(username) + canonicalUsername := validation.Canonicalize(username) // Check if username is valid - if err := isValidUsername(canonicalUsername); err != nil { + if err := validation.IsValidUsername(canonicalUsername); err != nil { return nil, errors.Errorf("Username %q is invalid: %v", username, err) } diff --git a/io/userRegistration_test.go b/io/userRegistration_test.go index 2eb21092591b1ab37727b17c64c5618cb847e07b..0b11e5514bb5b7d2b47f4d70cca3afe05d2aeaf7 100644 --- a/io/userRegistration_test.go +++ b/io/userRegistration_test.go @@ -17,6 +17,7 @@ import ( "gitlab.com/elixxir/primitives/fact" "gitlab.com/elixxir/user-discovery-bot/banned" "gitlab.com/elixxir/user-discovery-bot/storage" + "gitlab.com/elixxir/user-discovery-bot/validation" "gitlab.com/xx_network/crypto/signature/rsa" "gitlab.com/xx_network/crypto/tls" "gitlab.com/xx_network/primitives/id" @@ -192,7 +193,7 @@ func TestRegisterUser_Banned(t *testing.T) { t.FailNow() } - bannedManager, err := banned.NewManager(Canonicalize(registerMsg.IdentityRegistration.Username), "") + bannedManager, err := banned.NewManager(validation.Canonicalize(registerMsg.IdentityRegistration.Username), "") if err != nil { t.Fatalf("Failed to construct ban manager: %v", err) } diff --git a/io/validation.go b/validation/validation.go similarity index 93% rename from io/validation.go rename to validation/validation.go index d0cf7287576bb268de4a4dff61f75c34a7a5e231..f1652dd6c81df73c6270ddb7cbb248e74c4d9349 100644 --- a/io/validation.go +++ b/validation/validation.go @@ -4,7 +4,7 @@ // All rights reserved. / //////////////////////////////////////////////////////////////////////////////// -package io +package validation import ( "github.com/pkg/errors" @@ -27,10 +27,10 @@ const ( // Furthermore, the regex enforces usernames to begin and end with an alphanumeric character. var usernameRegex = regexp.MustCompile("^[a-zA-Z0-9][a-zA-Z0-9_\\-+@.#]*[a-zA-Z0-9]$") -// isValidUsername determines whether the username is of an acceptable length and +// IsValidUsername determines whether the username is of an acceptable length and // whether it contains allowed character. The allowed characters are defined // by usernameRegex. -func isValidUsername(username string) error { +func IsValidUsername(username string) error { // Check for acceptable length if len(username) < minimumUsernameLength || len(username) > maximumUsernameLength { return errors.Errorf("username length %d is not between %d and %d", diff --git a/io/validation_test.go b/validation/validation_test.go similarity index 90% rename from io/validation_test.go rename to validation/validation_test.go index 5da45d9daa7418bcbc76d59eb83180b617c7eb80..37e17095d1e029225f94d1737ab99585ee85a482 100644 --- a/io/validation_test.go +++ b/validation/validation_test.go @@ -4,7 +4,7 @@ // All rights reserved. / //////////////////////////////////////////////////////////////////////////////// -package io +package validation import "testing" @@ -23,9 +23,9 @@ func TestIsValidUsername_GoodUsernames(t *testing.T) { // Test whether every good username is valid for _, goodUsername := range goodUsernames { - err := isValidUsername(goodUsername) + err := IsValidUsername(goodUsername) if err != nil { // If invalid, fail test - t.Errorf("isValidUsername failed with username %q: %v", goodUsername, err) + t.Errorf("IsValidUsername failed with username %q: %v", goodUsername, err) } } @@ -51,9 +51,9 @@ func TestIsValidUsername_BadUsernames(t *testing.T) { // Test if every bad username is invalid for _, badUsername := range badUsernames { - err := isValidUsername(badUsername) + err := IsValidUsername(badUsername) if err == nil { // If considered valid, fail test - t.Errorf("isValidUsername did not fail with username %q", badUsername) + t.Errorf("IsValidUsername did not fail with username %q", badUsername) } }