2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 09:13:49 +08:00

feat: 添加校验,防止酒吧点炒饭

This commit is contained in:
2025-08-23 03:24:31 +08:00
parent 1e9399ae37
commit a69d78042d
9 changed files with 20 additions and 20 deletions

View File

@@ -8,7 +8,7 @@ type BackupList struct {
type BackupCreate struct {
Type string `uri:"type" form:"type" validate:"required|in:website,mysql,postgres,redis,panel"`
Target string `json:"target" form:"target" validate:"required"`
Target string `json:"target" form:"target" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Path string `json:"path" form:"path"`
}
@@ -25,5 +25,5 @@ type BackupFile struct {
type BackupRestore struct {
Type string `uri:"type" form:"type" validate:"required|in:website,mysql,postgres,redis,panel"`
File string `json:"file" form:"file" validate:"required"`
Target string `json:"target" form:"target" validate:"required"`
Target string `json:"target" form:"target" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}

View File

@@ -8,11 +8,11 @@ type ContainerID struct {
type ContainerRename struct {
ID string `form:"id" json:"id" validate:"required"`
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}
type ContainerCreate struct {
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Image string `form:"image" json:"image" validate:"required"`
Ports []types.ContainerPort `form:"ports" json:"ports"`
Network string `form:"network" json:"network"`

View File

@@ -3,7 +3,7 @@ package request
import "github.com/tnborg/panel/pkg/types"
type ContainerComposeGet struct {
Name string `uri:"name" validate:"required"`
Name string `uri:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}
type ContainerComposeCreate struct {
@@ -19,14 +19,14 @@ type ContainerComposeUpdate struct {
}
type ContainerComposeUp struct {
Name string `uri:"name" validate:"required"`
Name string `uri:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Force bool `json:"force"`
}
type ContainerComposeDown struct {
Name string `uri:"name" validate:"required"`
Name string `uri:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}
type ContainerComposeRemove struct {
Name string `uri:"name" validate:"required"`
Name string `uri:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}

View File

@@ -7,7 +7,7 @@ type ContainerNetworkID struct {
}
type ContainerNetworkCreate struct {
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Driver string `form:"driver" json:"driver" validate:"required|in:bridge,host,overlay,macvlan,ipvlan,none"`
Ipv4 types.ContainerContainerNetwork `form:"ipv4" json:"ipv4"`
Ipv6 types.ContainerContainerNetwork `form:"ipv6" json:"ipv6"`

View File

@@ -7,7 +7,7 @@ type ContainerVolumeID struct {
}
type ContainerVolumeCreate struct {
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Driver string `form:"driver" json:"driver" validate:"required|in:local"`
Labels []types.KV `form:"labels" json:"labels"`
Options []types.KV `form:"options" json:"options"`

View File

@@ -2,7 +2,7 @@ package request
type DatabaseCreate struct {
ServerID uint `form:"server_id" json:"server_id" validate:"required|exists:database_servers,id"`
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
CreateUser bool `form:"create_user" json:"create_user"`
Username string `form:"username" json:"username" validate:"requiredIf:CreateUser,true"`
Password string `form:"password" json:"password" validate:"requiredIf:CreateUser,true"`
@@ -12,11 +12,11 @@ type DatabaseCreate struct {
type DatabaseDelete struct {
ServerID uint `form:"server_id" json:"server_id" validate:"required|exists:database_servers,id"`
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
}
type DatabaseComment struct {
ServerID uint `form:"server_id" json:"server_id" validate:"required|exists:database_servers,id"`
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Comment string `form:"comment" json:"comment"`
}

View File

@@ -1,7 +1,7 @@
package request
type DatabaseServerCreate struct {
Name string `form:"name" json:"name" validate:"required|notExists:database_servers,name"`
Name string `form:"name" json:"name" validate:"required|notExists:database_servers,name|regex:^[a-zA-Z0-9_-]+$"`
Type string `form:"type" json:"type" validate:"required|in:mysql,postgresql,redis"`
Host string `form:"host" json:"host" validate:"required"`
Port uint `form:"port" json:"port" validate:"required|min:1|max:65535"`
@@ -12,7 +12,7 @@ type DatabaseServerCreate struct {
type DatabaseServerUpdate struct {
ID uint `form:"id" json:"id" validate:"required|exists:database_servers,id"`
Name string `form:"name" json:"name" validate:"required"`
Name string `form:"name" json:"name" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Host string `form:"host" json:"host" validate:"required"`
Port uint `form:"port" json:"port" validate:"required|min:1|max:65535"`
Username string `form:"username" json:"username"`

View File

@@ -5,7 +5,7 @@ type UserID struct {
}
type UserLogin struct {
Username string `json:"username" validate:"required"`
Username string `json:"username" validate:"required|regex:^[a-zA-Z0-9_-]+$"`
Password string `json:"password" validate:"required"`
SafeLogin bool `json:"safe_login"`
PassCode string `json:"pass_code"`
@@ -16,14 +16,14 @@ type UserIsTwoFA struct {
}
type UserCreate struct {
Username string `json:"username" validate:"required|notExists:users,username"`
Username string `json:"username" validate:"required|notExists:users,username|regex:^[a-zA-Z0-9_-]+$"`
Password string `json:"password" validate:"required|password"`
Email string `json:"email" validate:"required|email"`
}
type UserUpdateUsername struct {
ID uint `json:"id" validate:"required|exists:users,id"`
Username string `json:"username" validate:"required|notExists:users,username"`
Username string `json:"username" validate:"required|notExists:users,username|regex:^[a-zA-Z0-9_-]+$"`
}
type UserUpdatePassword struct {

View File

@@ -8,7 +8,7 @@ type WebsiteDefaultConfig struct {
}
type WebsiteCreate struct {
Name string `form:"name" json:"name" validate:"required|notExists:websites,name"`
Name string `form:"name" json:"name" validate:"required|notExists:websites,name|regex:^[a-zA-Z0-9_-]+$"`
Listens []string `form:"listens" json:"listens" validate:"required|isSlice"`
Domains []string `form:"domains" json:"domains" validate:"required|isSlice"`
Path string `form:"path" json:"path"`
@@ -57,7 +57,7 @@ type WebsiteUpdateStatus struct {
}
type WebsiteUpdateCert struct {
Name string `json:"name" validate:"required|exists:websites,name"`
Name string `json:"name" validate:"required|exists:websites,name|regex:^[a-zA-Z0-9_-]+$"`
Cert string `json:"cert" validate:"required"`
Key string `json:"key" validate:"required"`
}