From d7160abc4777d7948a48f99df012a86a4170c53e Mon Sep 17 00:00:00 2001
From: DecDuck
Date: Sat, 16 Nov 2024 16:08:02 +1100
Subject: [PATCH] feat(registration): require lowercase usernames
---
pages/register.vue | 8 ++++++--
server/api/v1/auth/signup/simple.post.ts | 5 +++++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/pages/register.vue b/pages/register.vue
index 75bc264..1e02ac1 100644
--- a/pages/register.vue
+++ b/pages/register.vue
@@ -77,7 +77,7 @@
'block text-xs font-medium leading-6',
]"
>
- Must be 5 or more characters
+ Must be 5 or more characters, and lowercase
mailRegex.test(email.value ?? ""));
-const validUsername = computed(() => (username.value?.length ?? 0) > 5);
+const validUsername = computed(
+ () =>
+ (username.value?.length ?? 0) > 5 &&
+ username.value?.toLowerCase() == username.value
+);
const validPassword = computed(() => (password.value?.length ?? 0) >= 14);
const validConfirmPassword = computed(
() => password.value == confirmPassword.value
diff --git a/server/api/v1/auth/signup/simple.post.ts b/server/api/v1/auth/signup/simple.post.ts
index a1f660b..96cde8c 100644
--- a/server/api/v1/auth/signup/simple.post.ts
+++ b/server/api/v1/auth/signup/simple.post.ts
@@ -54,6 +54,11 @@ export default defineEventHandler(async (h3) => {
statusCode: 400,
statusMessage: "Username is invalid. Must be more than 5 characters.",
});
+ if (username.toLowerCase() != username)
+ throw createError({
+ statusCode: 400,
+ statusMessage: "Username must be all lowercase",
+ });
if (email === undefined)
throw createError({