diff --git a/i18n/en_US.yaml b/i18n/en_US.yaml index 03de74118..db5052a36 100644 --- a/i18n/en_US.yaml +++ b/i18n/en_US.yaml @@ -1699,7 +1699,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. - character: 'Must use the character set "a-z", "0-9", " - . _"' + character: 'Must use the character set "a-z", "A-Z", "0-9", " - . _"' msg_max_length: Name must be at maximum 30 characters in length. admin_password: label: Password diff --git a/i18n/zh_CN.yaml b/i18n/zh_CN.yaml index e16c0699f..73c5c9a00 100644 --- a/i18n/zh_CN.yaml +++ b/i18n/zh_CN.yaml @@ -1662,7 +1662,7 @@ ui: admin_name: label: 名字 msg: 名字不能为空。 - character: '只能由 "a-z", "0-9", " - . _" 组成' + character: '只能由 "a-z"、"A-Z"、"0-9"、" - . _" 组成' msg_max_length: 名字长度不能超过 30 个字符。 admin_password: label: 密码 diff --git a/internal/install/install_req.go b/internal/install/install_req.go index f4d22ff88..d564bc8bd 100644 --- a/internal/install/install_req.go +++ b/internal/install/install_req.go @@ -124,7 +124,7 @@ type InitBaseInfoReq struct { SiteName string `validate:"required,sanitizer,gt=0,lte=30" json:"site_name"` SiteURL string `validate:"required,gt=0,lte=512,url" json:"site_url"` ContactEmail string `validate:"required,email,gt=0,lte=500" json:"contact_email"` - AdminName string `validate:"required,gt=3,lte=30" json:"name"` + AdminName string `validate:"required,gte=2,lte=30" json:"name"` AdminPassword string `validate:"required,gte=8,lte=32" json:"password"` AdminEmail string `validate:"required,email,gt=0,lte=500" json:"email"` LoginRequired bool `json:"login_required"` diff --git a/pkg/checker/username.go b/pkg/checker/username.go index 4ab39d913..cf554118f 100644 --- a/pkg/checker/username.go +++ b/pkg/checker/username.go @@ -22,7 +22,7 @@ package checker import "regexp" var ( - usernameReg = regexp.MustCompile(`^[a-z0-9._-]{2,30}$`) + usernameReg = regexp.MustCompile(`^[\w.\- ]{2,30}$`) ) func IsInvalidUsername(username string) bool { diff --git a/ui/src/pages/Install/components/FourthStep/index.tsx b/ui/src/pages/Install/components/FourthStep/index.tsx index 2c0598511..6b37041c9 100644 --- a/ui/src/pages/Install/components/FourthStep/index.tsx +++ b/ui/src/pages/Install/components/FourthStep/index.tsx @@ -45,6 +45,7 @@ const Index: FC = ({ visible, data, changeCallback, nextCallback }) => { password, email, } = data; + const nameRegex = /^[\w.-\s]{2,30}$/; if (!site_name.value) { bol = false; @@ -115,19 +116,19 @@ const Index: FC = ({ visible, data, changeCallback, nextCallback }) => { isInvalid: true, errorMsg: t('admin_name.msg'), }; - } else if (/[^a-z0-9\-._]/.test(name.value)) { + } else if (name.value.length < 2 || name.value.length > 30) { bol = false; data.name = { value: name.value, isInvalid: true, - errorMsg: t('admin_name.character'), + errorMsg: t('admin_name.msg_max_length'), }; - } else if (data.name.value.length > 30) { + } else if (!nameRegex.test(name.value)) { bol = false; data.name = { - value: data.name.value, + value: name.value, isInvalid: true, - errorMsg: t('admin_name.msg_max_length'), + errorMsg: t('admin_name.character'), }; }