From 2546f3254958c3715a44d8360f12393a599edaf7 Mon Sep 17 00:00:00 2001 From: YANG QIA <2013xile@gmail.com> Date: Tue, 16 Sep 2025 16:07:14 +0800 Subject: [PATCH] chore(users): support using `.` in usernames (#7504) * chore(users): support using `.` in usernames * fix: test --- packages/core/auth/src/__tests__/base-auth.test.ts | 1 - packages/core/auth/src/base/auth.ts | 2 +- packages/core/client/src/collection-manager/interfaces/input.ts | 2 +- .../@nocobase/plugin-auth/src/client/basic/SignInForm.tsx | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/core/auth/src/__tests__/base-auth.test.ts b/packages/core/auth/src/__tests__/base-auth.test.ts index f2e65c53e3d..47adac472c3 100644 --- a/packages/core/auth/src/__tests__/base-auth.test.ts +++ b/packages/core/auth/src/__tests__/base-auth.test.ts @@ -19,7 +19,6 @@ describe('base-auth', () => { expect(auth.validateUsername('')).toBe(false); expect(auth.validateUsername('a@')).toBe(false); - expect(auth.validateUsername('a.')).toBe(false); expect(auth.validateUsername('a<')).toBe(false); expect(auth.validateUsername('a>')).toBe(false); expect(auth.validateUsername('a"')).toBe(false); diff --git a/packages/core/auth/src/base/auth.ts b/packages/core/auth/src/base/auth.ts index e9a32af8f97..3ead617457d 100644 --- a/packages/core/auth/src/base/auth.ts +++ b/packages/core/auth/src/base/auth.ts @@ -67,7 +67,7 @@ export class BaseAuth extends Auth { * @internal */ validateUsername(username: string) { - return /^[^@.<>"'/]{1,50}$/.test(username); + return /^[^@<>"'/]{1,50}$/.test(username); } async checkToken(): Promise<{ diff --git a/packages/core/client/src/collection-manager/interfaces/input.ts b/packages/core/client/src/collection-manager/interfaces/input.ts index 40d131e5be4..e92bc6a2d5b 100644 --- a/packages/core/client/src/collection-manager/interfaces/input.ts +++ b/packages/core/client/src/collection-manager/interfaces/input.ts @@ -32,7 +32,7 @@ const isValidateEmpty = (value: any) => { registerValidateRules({ username(value) { - return /^[^@.<>"'/]{1,50}$/.test(value) || i18n.t('Must be 1-50 characters in length (excluding @.<>"\'/)'); + return /^[^@<>"'/]{1,50}$/.test(value) || i18n.t('Must be 1-50 characters in length (excluding @<>"\'/)'); }, required(value, rule) { if (rule.required === false) return ''; diff --git a/packages/plugins/@nocobase/plugin-auth/src/client/basic/SignInForm.tsx b/packages/plugins/@nocobase/plugin-auth/src/client/basic/SignInForm.tsx index 174c6ece8ad..32f14cf0a79 100644 --- a/packages/plugins/@nocobase/plugin-auth/src/client/basic/SignInForm.tsx +++ b/packages/plugins/@nocobase/plugin-auth/src/client/basic/SignInForm.tsx @@ -56,7 +56,7 @@ const getPasswordForm = ({ showForgotPassword }: { showForgotPassword?: boolean return t("Please enter a valid email"); } } else { - return /^[^@.<>"'/]{1,50}$/.test(value) || t("Please enter a valid username"); + return /^[^@<>"'/]{1,50}$/.test(value) || t("Please enter a valid username"); } }}}`, 'x-decorator': 'FormItem',