aboutsummaryrefslogtreecommitdiff
path: root/utils/validators/users.go
diff options
context:
space:
mode:
authorBobby <[email protected]>2025-06-16 10:15:30 +0530
committerBobby <[email protected]>2025-06-16 10:15:30 +0530
commit34c1bbb3955629da4ab4659d70195540b08156f4 (patch)
tree8060150f095be80832ffb6b123088b624a174a75 /utils/validators/users.go
parent782be699f797011a6e71b345658762f7e2013636 (diff)
downloadimageboard-34c1bbb3955629da4ab4659d70195540b08156f4.tar.xz
imageboard-34c1bbb3955629da4ab4659d70195540b08156f4.zip
added math and validation utils
Diffstat (limited to 'utils/validators/users.go')
-rw-r--r--utils/validators/users.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/utils/validators/users.go b/utils/validators/users.go
new file mode 100644
index 0000000..70ec34d
--- /dev/null
+++ b/utils/validators/users.go
@@ -0,0 +1,31 @@
+package validators
+
+import (
+ "regexp"
+ "slices"
+ "strings"
+)
+
+func IsValidUsername(username string) bool {
+ match, _ := regexp.MatchString(`^[a-zA-Z0-9_-]+$`, username)
+ return match
+}
+
+func IsReservedUsername(username string) bool {
+ reserved := []string{
+ "admin", "administrator", "mod", "moderator", "janitor",
+ "api", "www", "mail", "email", "support", "help",
+ "about", "contact", "privacy", "terms", "tos",
+ "null", "undefined", "system", "bot", "guest",
+ "login", "register", "signup", "signin", "logout",
+ "profile", "settings", "shifoo", "deleted",
+ }
+
+ lowerUsername := strings.ToLower(username)
+ return slices.Contains(reserved, lowerUsername)
+}
+
+func IsValidEmail(email string) bool {
+ match, _ := regexp.MatchString(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`, email)
+ return match
+}