mirror of
https://github.com/yhl452493373/frps-panel.git
synced 2026-04-04 06:16:59 +08:00
118 lines
2.5 KiB
Go
118 lines
2.5 KiB
Go
package controller
|
|
|
|
import (
|
|
"regexp"
|
|
)
|
|
|
|
const (
|
|
Success = 0
|
|
ParamError = 1
|
|
UserExist = 2
|
|
SaveError = 3
|
|
UserFormatError = 4
|
|
TokenFormatError = 5
|
|
FrpServerError = 6
|
|
|
|
SessionName = "GOSESSION"
|
|
AuthName = "_PANEL_AUTH"
|
|
LoginUrl = "/login"
|
|
LoginSuccessUrl = "/"
|
|
LogoutUrl = "/logout"
|
|
LogoutSuccessUrl = "/login"
|
|
)
|
|
|
|
var (
|
|
UserFormatReg = regexp.MustCompile("^\\w+$")
|
|
TokenFormatReg = regexp.MustCompile("^[\\w!@#$%^&*()]+$")
|
|
TrimAllSpaceReg = regexp.MustCompile("[\\n\\t\\r\\s]")
|
|
)
|
|
|
|
type Response struct {
|
|
Msg string `json:"msg"`
|
|
}
|
|
|
|
type HTTPError struct {
|
|
Code int
|
|
Err error
|
|
}
|
|
|
|
type Config struct {
|
|
Common CommonInfo
|
|
Tokens
|
|
}
|
|
|
|
type CommonInfo struct {
|
|
PluginAddr string `toml:"plugin_addr"`
|
|
PluginPort int `toml:"plugin_port"`
|
|
AdminUser string `toml:"admin_user"`
|
|
AdminPwd string `toml:"admin_pwd"`
|
|
AdminKeepTime int `toml:"admin_keep_time"`
|
|
TlsMode bool `toml:"tls_mode"`
|
|
TlsCertFile string `toml:"tls_cert_file"`
|
|
TlsKeyFile string `toml:"tls_key_file"`
|
|
DashboardAddr string `toml:"dashboard_addr"`
|
|
DashboardPort int `toml:"dashboard_port"`
|
|
DashboardUser string `toml:"dashboard_user"`
|
|
DashboardPwd string `toml:"dashboard_pwd"`
|
|
DashboardTls bool
|
|
}
|
|
|
|
type Tokens struct {
|
|
Tokens map[string]TokenInfo `toml:"tokens"`
|
|
}
|
|
|
|
type TokenInfo struct {
|
|
User string `toml:"user" json:"user" form:"user"`
|
|
Token string `toml:"token" json:"token" form:"token"`
|
|
Comment string `toml:"comment" json:"comment" form:"comment"`
|
|
Ports []string `toml:"ports" json:"ports" from:"ports"`
|
|
Domains []string `toml:"domains" json:"domains" from:"domains"`
|
|
Subdomains []string `toml:"subdomains" json:"subdomains" from:"subdomains"`
|
|
Status bool `toml:"status" json:"status" form:"status"`
|
|
}
|
|
|
|
type TokenResponse struct {
|
|
Code int `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Count int `json:"count"`
|
|
Data []TokenInfo `json:"data"`
|
|
}
|
|
|
|
type OperationResponse struct {
|
|
Success bool `json:"success"`
|
|
Code int `json:"code"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
type ProxyResponse struct {
|
|
OperationResponse
|
|
Data string `json:"data"`
|
|
}
|
|
|
|
type TokenSearch struct {
|
|
TokenInfo
|
|
Page int `form:"page"`
|
|
Limit int `form:"limit"`
|
|
}
|
|
|
|
type TokenUpdate struct {
|
|
Before TokenInfo `json:"before"`
|
|
After TokenInfo `json:"after"`
|
|
}
|
|
|
|
type TokenRemove struct {
|
|
Users []TokenInfo `json:"users"`
|
|
}
|
|
|
|
type TokenDisable struct {
|
|
TokenRemove
|
|
}
|
|
|
|
type TokenEnable struct {
|
|
TokenDisable
|
|
}
|
|
|
|
func (e *HTTPError) Error() string {
|
|
return e.Err.Error()
|
|
}
|