initial commit
This commit is contained in:
31
protonvpn-wg-confgen/pkg/validation/username.go
Normal file
31
protonvpn-wg-confgen/pkg/validation/username.go
Normal file
@@ -0,0 +1,31 @@
|
||||
// Package validation provides input validation utilities.
|
||||
package validation
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CleanUsername removes email domain suffixes from username.
|
||||
// ProtonVPN usernames don't include the email domain.
|
||||
func CleanUsername(username string) string {
|
||||
username = strings.TrimSpace(username)
|
||||
username = strings.TrimSuffix(username, "@protonmail.com")
|
||||
username = strings.TrimSuffix(username, "@proton.me")
|
||||
username = strings.TrimSuffix(username, "@pm.me")
|
||||
return username
|
||||
}
|
||||
|
||||
// IsValidCountryCode checks if a country code is valid (2 letters).
|
||||
func IsValidCountryCode(code string) bool {
|
||||
return len(code) == 2 && isAlpha(code)
|
||||
}
|
||||
|
||||
// isAlpha checks if a string contains only alphabetic characters.
|
||||
func isAlpha(s string) bool {
|
||||
for _, r := range s {
|
||||
if (r < 'A' || r > 'Z') && (r < 'a' || r > 'z') {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
Reference in New Issue
Block a user