Skip to content

fix: update admin name validation #1276

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion i18n/en_US.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion i18n/zh_CN.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: 密码
Expand Down
2 changes: 1 addition & 1 deletion internal/install/install_req.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand Down
2 changes: 1 addition & 1 deletion pkg/checker/username.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
11 changes: 6 additions & 5 deletions ui/src/pages/Install/components/FourthStep/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ const Index: FC<Props> = ({ visible, data, changeCallback, nextCallback }) => {
password,
email,
} = data;
const nameRegex = /^[\w.-\s]{2,30}$/;

if (!site_name.value) {
bol = false;
Expand Down Expand Up @@ -115,19 +116,19 @@ const Index: FC<Props> = ({ 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'),
};
}

Expand Down