mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 09:13:49 +08:00
feat: 添加校验,防止酒吧点炒饭
This commit is contained in:
@@ -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_-]+$"`
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -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_-]+$"`
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user