mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-07 18:50:26 +08:00
增加一些表设计
This commit is contained in:
2
go.mod
2
go.mod
@@ -9,7 +9,7 @@ require (
|
|||||||
github.com/go-sql-driver/mysql v1.5.0
|
github.com/go-sql-driver/mysql v1.5.0
|
||||||
github.com/go-yaml/yaml v2.1.0+incompatible
|
github.com/go-yaml/yaml v2.1.0+incompatible
|
||||||
github.com/golang/protobuf v1.4.2
|
github.com/golang/protobuf v1.4.2
|
||||||
github.com/iwind/TeaGo v0.0.0-20200916035436-dbdbf25f8524
|
github.com/iwind/TeaGo v0.0.0-20200923021120-f5d76441fe9e
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
github.com/modern-go/reflect2 v1.0.1 // indirect
|
||||||
github.com/pkg/sftp v1.12.0
|
github.com/pkg/sftp v1.12.0
|
||||||
|
|||||||
2
go.sum
2
go.sum
@@ -58,6 +58,8 @@ github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729 h1:/v0WhSFVeNay/dA5zU9
|
|||||||
github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
github.com/iwind/TeaGo v0.0.0-20200910072805-729cffe36729/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
||||||
github.com/iwind/TeaGo v0.0.0-20200916035436-dbdbf25f8524 h1:WnARCxusBjX5vJ8E71AjhuxSeAMGfEiYvi42XVK/Yf8=
|
github.com/iwind/TeaGo v0.0.0-20200916035436-dbdbf25f8524 h1:WnARCxusBjX5vJ8E71AjhuxSeAMGfEiYvi42XVK/Yf8=
|
||||||
github.com/iwind/TeaGo v0.0.0-20200916035436-dbdbf25f8524/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
github.com/iwind/TeaGo v0.0.0-20200916035436-dbdbf25f8524/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
||||||
|
github.com/iwind/TeaGo v0.0.0-20200923021120-f5d76441fe9e h1:/xn7wUvlwaoA5IkdBUctv2OQbJSZ0/Dw8qRJmn55sJk=
|
||||||
|
github.com/iwind/TeaGo v0.0.0-20200923021120-f5d76441fe9e/go.mod h1:KU4mS7QNiZ7QWEuDBk1zw0/Q2LrAPZv3tycEFBsuUwc=
|
||||||
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
|
||||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||||
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ type Admin struct {
|
|||||||
Password string `field:"password"` // 密码
|
Password string `field:"password"` // 密码
|
||||||
Fullname string `field:"fullname"` // 全名
|
Fullname string `field:"fullname"` // 全名
|
||||||
IsSuper uint8 `field:"isSuper"` // 是否为超级管理员
|
IsSuper uint8 `field:"isSuper"` // 是否为超级管理员
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
|
UpdatedAt uint64 `field:"updatedAt"` // 修改时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ func NewAPINodeDAO() *APINodeDAO {
|
|||||||
return dbs.NewDAO(&APINodeDAO{
|
return dbs.NewDAO(&APINodeDAO{
|
||||||
DAOObject: dbs.DAOObject{
|
DAOObject: dbs.DAOObject{
|
||||||
DB: Tea.Env,
|
DB: Tea.Env,
|
||||||
Table: "edgeApiNodes",
|
Table: "edgeAPINodes",
|
||||||
Model: new(APINode),
|
Model: new(APINode),
|
||||||
PkName: "id",
|
PkName: "id",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// API节点
|
||||||
type APINode struct {
|
type APINode struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
IsOn uint8 `field:"isOn"` // 是否启用
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
@@ -9,10 +9,13 @@ type APINode struct {
|
|||||||
Secret string `field:"secret"` // 密钥
|
Secret string `field:"secret"` // 密钥
|
||||||
Name string `field:"name"` // 名称
|
Name string `field:"name"` // 名称
|
||||||
Description string `field:"description"` // 描述
|
Description string `field:"description"` // 描述
|
||||||
Host string `field:"host"` // 地址
|
Host string `field:"host"` // 主机
|
||||||
Port uint32 `field:"port"` // 端口
|
Port uint32 `field:"port"` // 端口
|
||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
Weight uint32 `field:"weight"` // 权重
|
||||||
}
|
}
|
||||||
|
|
||||||
type APINodeOperator struct {
|
type APINodeOperator struct {
|
||||||
@@ -23,10 +26,13 @@ type APINodeOperator struct {
|
|||||||
Secret interface{} // 密钥
|
Secret interface{} // 密钥
|
||||||
Name interface{} // 名称
|
Name interface{} // 名称
|
||||||
Description interface{} // 描述
|
Description interface{} // 描述
|
||||||
Host interface{} // 地址
|
Host interface{} // 主机
|
||||||
Port interface{} // 端口
|
Port interface{} // 端口
|
||||||
Order interface{} // 排序
|
Order interface{} // 排序
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
Weight interface{} // 权重
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAPINodeOperator() *APINodeOperator {
|
func NewAPINodeOperator() *APINodeOperator {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func NewApiTokenDAO() *ApiTokenDAO {
|
|||||||
return dbs.NewDAO(&ApiTokenDAO{
|
return dbs.NewDAO(&ApiTokenDAO{
|
||||||
DAOObject: dbs.DAOObject{
|
DAOObject: dbs.DAOObject{
|
||||||
DB: Tea.Env,
|
DB: Tea.Env,
|
||||||
Table: "edgeApiTokens",
|
Table: "edgeAPITokens",
|
||||||
Model: new(ApiToken),
|
Model: new(ApiToken),
|
||||||
PkName: "id",
|
PkName: "id",
|
||||||
},
|
},
|
||||||
|
|||||||
65
internal/db/models/db_node_dao.go
Normal file
65
internal/db/models/db_node_dao.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DBNodeStateEnabled = 1 // 已启用
|
||||||
|
DBNodeStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type DBNodeDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewDBNodeDAO() *DBNodeDAO {
|
||||||
|
return dbs.NewDAO(&DBNodeDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeDBNodes",
|
||||||
|
Model: new(DBNode),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*DBNodeDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedDBNodeDAO = NewDBNodeDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *DBNodeDAO) EnableDBNode(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", DBNodeStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *DBNodeDAO) DisableDBNode(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", DBNodeStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *DBNodeDAO) FindEnabledDBNode(id uint32) (*DBNode, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", DBNodeStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*DBNode), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *DBNodeDAO) FindDBNodeName(id uint32) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
5
internal/db/models/db_node_dao_test.go
Normal file
5
internal/db/models/db_node_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
44
internal/db/models/db_node_model.go
Normal file
44
internal/db/models/db_node_model.go
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 数据库节点
|
||||||
|
type DBNode struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Role string `field:"role"` // 数据库角色
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Description string `field:"description"` // 描述
|
||||||
|
Host string `field:"host"` // 主机
|
||||||
|
Port uint32 `field:"port"` // 端口
|
||||||
|
Username string `field:"username"` // 用户名
|
||||||
|
Password string `field:"password"` // 密码
|
||||||
|
Charset string `field:"charset"` // 通讯字符集
|
||||||
|
ConnTimeout uint32 `field:"connTimeout"` // 连接超时时间(秒)
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
Weight uint32 `field:"weight"` // 权重
|
||||||
|
Order uint32 `field:"order"` // 排序
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type DBNodeOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Role interface{} // 数据库角色
|
||||||
|
Name interface{} // 名称
|
||||||
|
Description interface{} // 描述
|
||||||
|
Host interface{} // 主机
|
||||||
|
Port interface{} // 端口
|
||||||
|
Username interface{} // 用户名
|
||||||
|
Password interface{} // 密码
|
||||||
|
Charset interface{} // 通讯字符集
|
||||||
|
ConnTimeout interface{} // 连接超时时间(秒)
|
||||||
|
State interface{} // 状态
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
Weight interface{} // 权重
|
||||||
|
Order interface{} // 排序
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewDBNodeOperator() *DBNodeOperator {
|
||||||
|
return &DBNodeOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/db_node_model_ext.go
Normal file
1
internal/db/models/db_node_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// 文件管理
|
||||||
type File struct {
|
type File struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
Description string `field:"description"` // 文件描述
|
Description string `field:"description"` // 文件描述
|
||||||
Filename string `field:"filename"` // 文件名
|
Filename string `field:"filename"` // 文件名
|
||||||
Size uint32 `field:"size"` // 文件尺寸
|
Size uint32 `field:"size"` // 文件尺寸
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
Type string `field:"type"` // 类型
|
Type string `field:"type"` // 类型
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
@@ -14,6 +16,8 @@ type File struct {
|
|||||||
|
|
||||||
type FileOperator struct {
|
type FileOperator struct {
|
||||||
Id interface{} // ID
|
Id interface{} // ID
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
Description interface{} // 文件描述
|
Description interface{} // 文件描述
|
||||||
Filename interface{} // 文件名
|
Filename interface{} // 文件名
|
||||||
Size interface{} // 文件尺寸
|
Size interface{} // 文件尺寸
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// HTTP缓存策略
|
||||||
type HTTPCachePolicy struct {
|
type HTTPCachePolicy struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
@@ -16,8 +16,8 @@ type HTTPCachePolicy struct {
|
|||||||
SkipCacheControlValues string `field:"skipCacheControlValues"` // 忽略的cache-control
|
SkipCacheControlValues string `field:"skipCacheControlValues"` // 忽略的cache-control
|
||||||
SkipSetCookie uint8 `field:"skipSetCookie"` // 是否忽略Set-Cookie Header
|
SkipSetCookie uint8 `field:"skipSetCookie"` // 是否忽略Set-Cookie Header
|
||||||
EnableRequestCachePragma uint8 `field:"enableRequestCachePragma"` // 是否支持客户端的Pragma: no-cache
|
EnableRequestCachePragma uint8 `field:"enableRequestCachePragma"` // 是否支持客户端的Pragma: no-cache
|
||||||
Cond string `field:"cond"` // 请求条件
|
Conds string `field:"conds"` // 请求条件
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ type HTTPCachePolicyOperator struct {
|
|||||||
SkipCacheControlValues interface{} // 忽略的cache-control
|
SkipCacheControlValues interface{} // 忽略的cache-control
|
||||||
SkipSetCookie interface{} // 是否忽略Set-Cookie Header
|
SkipSetCookie interface{} // 是否忽略Set-Cookie Header
|
||||||
EnableRequestCachePragma interface{} // 是否支持客户端的Pragma: no-cache
|
EnableRequestCachePragma interface{} // 是否支持客户端的Pragma: no-cache
|
||||||
Cond interface{} // 请求条件
|
Conds interface{} // 请求条件
|
||||||
CreatedAt interface{} // 创建时间
|
CreatedAt interface{} // 创建时间
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ type HTTPFirewallPolicy struct {
|
|||||||
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
IsOn uint8 `field:"isOn"` // 是否启用
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
Name string `field:"name"` // 名称
|
Name string `field:"name"` // 名称
|
||||||
|
Inbound string `field:"inbound"` // 入站规则
|
||||||
|
Outbound string `field:"outbound"` // 出站规则
|
||||||
|
Conds string `field:"conds"` // 条件
|
||||||
}
|
}
|
||||||
|
|
||||||
type HTTPFirewallPolicyOperator struct {
|
type HTTPFirewallPolicyOperator struct {
|
||||||
@@ -21,6 +24,9 @@ type HTTPFirewallPolicyOperator struct {
|
|||||||
CreatedAt interface{} // 创建时间
|
CreatedAt interface{} // 创建时间
|
||||||
IsOn interface{} // 是否启用
|
IsOn interface{} // 是否启用
|
||||||
Name interface{} // 名称
|
Name interface{} // 名称
|
||||||
|
Inbound interface{} // 入站规则
|
||||||
|
Outbound interface{} // 出站规则
|
||||||
|
Conds interface{} // 条件
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHTTPFirewallPolicyOperator() *HTTPFirewallPolicyOperator {
|
func NewHTTPFirewallPolicyOperator() *HTTPFirewallPolicyOperator {
|
||||||
|
|||||||
57
internal/db/models/http_firewall_rule_dao.go
Normal file
57
internal/db/models/http_firewall_rule_dao.go
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
HTTPFirewallRuleStateEnabled = 1 // 已启用
|
||||||
|
HTTPFirewallRuleStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type HTTPFirewallRuleDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleDAO() *HTTPFirewallRuleDAO {
|
||||||
|
return dbs.NewDAO(&HTTPFirewallRuleDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeHTTPFirewallRules",
|
||||||
|
Model: new(HTTPFirewallRule),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*HTTPFirewallRuleDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedHTTPFirewallRuleDAO = NewHTTPFirewallRuleDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *HTTPFirewallRuleDAO) EnableHTTPFirewallRule(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *HTTPFirewallRuleDAO) DisableHTTPFirewallRule(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *HTTPFirewallRuleDAO) FindEnabledHTTPFirewallRule(id uint32) (*HTTPFirewallRule, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", HTTPFirewallRuleStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*HTTPFirewallRule), err
|
||||||
|
}
|
||||||
5
internal/db/models/http_firewall_rule_dao_test.go
Normal file
5
internal/db/models/http_firewall_rule_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
65
internal/db/models/http_firewall_rule_group_dao.go
Normal file
65
internal/db/models/http_firewall_rule_group_dao.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
HTTPFirewallRuleGroupStateEnabled = 1 // 已启用
|
||||||
|
HTTPFirewallRuleGroupStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type HTTPFirewallRuleGroupDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleGroupDAO() *HTTPFirewallRuleGroupDAO {
|
||||||
|
return dbs.NewDAO(&HTTPFirewallRuleGroupDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeHTTPFirewallRuleGroups",
|
||||||
|
Model: new(HTTPFirewallRuleGroup),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*HTTPFirewallRuleGroupDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedHTTPFirewallRuleGroupDAO = NewHTTPFirewallRuleGroupDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *HTTPFirewallRuleGroupDAO) EnableHTTPFirewallRuleGroup(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleGroupStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *HTTPFirewallRuleGroupDAO) DisableHTTPFirewallRuleGroup(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleGroupStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *HTTPFirewallRuleGroupDAO) FindEnabledHTTPFirewallRuleGroup(id uint32) (*HTTPFirewallRuleGroup, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", HTTPFirewallRuleGroupStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*HTTPFirewallRuleGroup), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *HTTPFirewallRuleGroupDAO) FindHTTPFirewallRuleGroupName(id uint32) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
5
internal/db/models/http_firewall_rule_group_dao_test.go
Normal file
5
internal/db/models/http_firewall_rule_group_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
32
internal/db/models/http_firewall_rule_group_model.go
Normal file
32
internal/db/models/http_firewall_rule_group_model.go
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 防火墙规则分组
|
||||||
|
type HTTPFirewallRuleGroup struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Description string `field:"description"` // 描述
|
||||||
|
Code string `field:"code"` // 代号
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
Sets string `field:"sets"` // 规则集列表
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
}
|
||||||
|
|
||||||
|
type HTTPFirewallRuleGroupOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Name interface{} // 名称
|
||||||
|
Description interface{} // 描述
|
||||||
|
Code interface{} // 代号
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
State interface{} // 状态
|
||||||
|
Sets interface{} // 规则集列表
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleGroupOperator() *HTTPFirewallRuleGroupOperator {
|
||||||
|
return &HTTPFirewallRuleGroupOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/http_firewall_rule_group_model_ext.go
Normal file
1
internal/db/models/http_firewall_rule_group_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
34
internal/db/models/http_firewall_rule_model.go
Normal file
34
internal/db/models/http_firewall_rule_model.go
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 防火墙规则
|
||||||
|
type HTTPFirewallRule struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Param string `field:"param"` // 参数
|
||||||
|
Operator string `field:"operator"` // 操作符
|
||||||
|
Value string `field:"value"` // 对比值
|
||||||
|
IsCaseInsensitive uint8 `field:"isCaseInsensitive"` // 是否大小写不敏感
|
||||||
|
CheckpointOptions string `field:"checkpointOptions"` // 检查点参数
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type HTTPFirewallRuleOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Param interface{} // 参数
|
||||||
|
Operator interface{} // 操作符
|
||||||
|
Value interface{} // 对比值
|
||||||
|
IsCaseInsensitive interface{} // 是否大小写不敏感
|
||||||
|
CheckpointOptions interface{} // 检查点参数
|
||||||
|
State interface{} // 状态
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleOperator() *HTTPFirewallRuleOperator {
|
||||||
|
return &HTTPFirewallRuleOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/http_firewall_rule_model_ext.go
Normal file
1
internal/db/models/http_firewall_rule_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
65
internal/db/models/http_firewall_rule_set_dao.go
Normal file
65
internal/db/models/http_firewall_rule_set_dao.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
HTTPFirewallRuleSetStateEnabled = 1 // 已启用
|
||||||
|
HTTPFirewallRuleSetStateDisabled = 0 // 已禁用
|
||||||
|
)
|
||||||
|
|
||||||
|
type HTTPFirewallRuleSetDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleSetDAO() *HTTPFirewallRuleSetDAO {
|
||||||
|
return dbs.NewDAO(&HTTPFirewallRuleSetDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeHTTPFirewallRuleSets",
|
||||||
|
Model: new(HTTPFirewallRuleSet),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*HTTPFirewallRuleSetDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedHTTPFirewallRuleSetDAO = NewHTTPFirewallRuleSetDAO()
|
||||||
|
|
||||||
|
// 启用条目
|
||||||
|
func (this *HTTPFirewallRuleSetDAO) EnableHTTPFirewallRuleSet(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleSetStateEnabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 禁用条目
|
||||||
|
func (this *HTTPFirewallRuleSetDAO) DisableHTTPFirewallRuleSet(id uint32) error {
|
||||||
|
_, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Set("state", HTTPFirewallRuleSetStateDisabled).
|
||||||
|
Update()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找启用中的条目
|
||||||
|
func (this *HTTPFirewallRuleSetDAO) FindEnabledHTTPFirewallRuleSet(id uint32) (*HTTPFirewallRuleSet, error) {
|
||||||
|
result, err := this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Attr("state", HTTPFirewallRuleSetStateEnabled).
|
||||||
|
Find()
|
||||||
|
if result == nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return result.(*HTTPFirewallRuleSet), err
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据主键查找名称
|
||||||
|
func (this *HTTPFirewallRuleSetDAO) FindHTTPFirewallRuleSetName(id uint32) (string, error) {
|
||||||
|
return this.Query().
|
||||||
|
Pk(id).
|
||||||
|
Result("name").
|
||||||
|
FindStringCol("")
|
||||||
|
}
|
||||||
5
internal/db/models/http_firewall_rule_set_dao_test.go
Normal file
5
internal/db/models/http_firewall_rule_set_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
34
internal/db/models/http_firewall_rule_set_model.go
Normal file
34
internal/db/models/http_firewall_rule_set_model.go
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// 防火墙规则集
|
||||||
|
type HTTPFirewallRuleSet struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
IsOn uint8 `field:"isOn"` // 是否启用
|
||||||
|
Code string `field:"code"` // 代号
|
||||||
|
Name string `field:"name"` // 名称
|
||||||
|
Description string `field:"description"` // 描述
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
Rules string `field:"rules"` // 规则列表
|
||||||
|
Connector string `field:"connector"` // 规则之间的关系
|
||||||
|
State uint8 `field:"state"` // 状态
|
||||||
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type HTTPFirewallRuleSetOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
IsOn interface{} // 是否启用
|
||||||
|
Code interface{} // 代号
|
||||||
|
Name interface{} // 名称
|
||||||
|
Description interface{} // 描述
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
|
Rules interface{} // 规则列表
|
||||||
|
Connector interface{} // 规则之间的关系
|
||||||
|
State interface{} // 状态
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHTTPFirewallRuleSetOperator() *HTTPFirewallRuleSetOperator {
|
||||||
|
return &HTTPFirewallRuleSetOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/http_firewall_rule_set_model_ext.go
Normal file
1
internal/db/models/http_firewall_rule_set_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -10,7 +10,8 @@ type HTTPGzip struct {
|
|||||||
MinLength string `field:"minLength"` // 可压缩最小值
|
MinLength string `field:"minLength"` // 可压缩最小值
|
||||||
MaxLength string `field:"maxLength"` // 可压缩最大值
|
MaxLength string `field:"maxLength"` // 可压缩最大值
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
|
Conds string `field:"conds"` // 条件
|
||||||
}
|
}
|
||||||
|
|
||||||
type HTTPGzipOperator struct {
|
type HTTPGzipOperator struct {
|
||||||
@@ -23,6 +24,7 @@ type HTTPGzipOperator struct {
|
|||||||
MaxLength interface{} // 可压缩最大值
|
MaxLength interface{} // 可压缩最大值
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
CreatedAt interface{} // 创建时间
|
CreatedAt interface{} // 创建时间
|
||||||
|
Conds interface{} // 条件
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHTTPGzipOperator() *HTTPGzipOperator {
|
func NewHTTPGzipOperator() *HTTPGzipOperator {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// HTTP Header
|
||||||
type HTTPHeader struct {
|
type HTTPHeader struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
@@ -12,7 +12,7 @@ type HTTPHeader struct {
|
|||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
Status string `field:"status"` // 状态码设置
|
Status string `field:"status"` // 状态码设置
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
}
|
}
|
||||||
|
|
||||||
type HTTPHeaderOperator struct {
|
type HTTPHeaderOperator struct {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ type HTTPHeaderPolicy struct {
|
|||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
AddHeaders string `field:"addHeaders"` // 添加的Header
|
AddHeaders string `field:"addHeaders"` // 添加的Header
|
||||||
AddTrailers string `field:"addTrailers"` // 添加的Trailers
|
AddTrailers string `field:"addTrailers"` // 添加的Trailers
|
||||||
SetHeaders string `field:"setHeaders"` // 设置Header
|
SetHeaders string `field:"setHeaders"` // 设置Header
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ type HTTPPage struct {
|
|||||||
Url string `field:"url"` // 页面URL
|
Url string `field:"url"` // 页面URL
|
||||||
NewStatus int32 `field:"newStatus"` // 新状态码
|
NewStatus int32 `field:"newStatus"` // 新状态码
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
}
|
}
|
||||||
|
|
||||||
type HTTPPageOperator struct {
|
type HTTPPageOperator struct {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ type HTTPWeb struct {
|
|||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
Root string `field:"root"` // 资源根目录
|
Root string `field:"root"` // 资源根目录
|
||||||
Charset string `field:"charset"` // 字符集
|
Charset string `field:"charset"` // 字符集
|
||||||
Shutdown string `field:"shutdown"` // 临时关闭页面配置
|
Shutdown string `field:"shutdown"` // 临时关闭页面配置
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ type Log struct {
|
|||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
Level string `field:"level"` // 级别
|
Level string `field:"level"` // 级别
|
||||||
Description string `field:"description"` // 描述
|
Description string `field:"description"` // 描述
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
Action string `field:"action"` // 动作
|
Action string `field:"action"` // 动作
|
||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
AdminId uint32 `field:"adminId"` // 管理员ID
|
AdminId uint32 `field:"adminId"` // 管理员ID
|
||||||
|
|||||||
1
internal/db/models/log_model_ext.go
Normal file
1
internal/db/models/log_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -10,7 +10,7 @@ type NodeCluster struct {
|
|||||||
ApiNodes string `field:"apiNodes"` // 使用的API节点
|
ApiNodes string `field:"apiNodes"` // 使用的API节点
|
||||||
InstallDir string `field:"installDir"` // 安装目录
|
InstallDir string `field:"installDir"` // 安装目录
|
||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
GrantId uint32 `field:"grantId"` // 默认认证方式
|
GrantId uint32 `field:"grantId"` // 默认认证方式
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// 节点授权
|
||||||
type NodeGrant struct {
|
type NodeGrant struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
Name string `field:"name"` // 名称
|
Name string `field:"name"` // 名称
|
||||||
@@ -12,6 +12,7 @@ type NodeGrant struct {
|
|||||||
Description string `field:"description"` // 备注
|
Description string `field:"description"` // 备注
|
||||||
NodeId uint32 `field:"nodeId"` // 专有节点
|
NodeId uint32 `field:"nodeId"` // 专有节点
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
}
|
}
|
||||||
|
|
||||||
type NodeGrantOperator struct {
|
type NodeGrantOperator struct {
|
||||||
@@ -25,6 +26,7 @@ type NodeGrantOperator struct {
|
|||||||
Description interface{} // 备注
|
Description interface{} // 备注
|
||||||
NodeId interface{} // 专有节点
|
NodeId interface{} // 专有节点
|
||||||
State interface{} // 状态
|
State interface{} // 状态
|
||||||
|
CreatedAt interface{} // 创建时间
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewNodeGrantOperator() *NodeGrantOperator {
|
func NewNodeGrantOperator() *NodeGrantOperator {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ type NodeGroup struct {
|
|||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
Name string `field:"name"` // 名称
|
Name string `field:"name"` // 名称
|
||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
internal/db/models/node_group_model_ext.go
Normal file
1
internal/db/models/node_group_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -13,7 +13,7 @@ type Node struct {
|
|||||||
ClusterId uint32 `field:"clusterId"` // 集群ID
|
ClusterId uint32 `field:"clusterId"` // 集群ID
|
||||||
RegionId uint32 `field:"regionId"` // 区域ID
|
RegionId uint32 `field:"regionId"` // 区域ID
|
||||||
GroupId uint32 `field:"groupId"` // 分组ID
|
GroupId uint32 `field:"groupId"` // 分组ID
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
Status string `field:"status"` // 最新的状态
|
Status string `field:"status"` // 最新的状态
|
||||||
Version uint32 `field:"version"` // 当前版本号
|
Version uint32 `field:"version"` // 当前版本号
|
||||||
LatestVersion uint32 `field:"latestVersion"` // 最后版本号
|
LatestVersion uint32 `field:"latestVersion"` // 最后版本号
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ type Origin struct {
|
|||||||
HealthCheck string `field:"healthCheck"` // 健康检查设置
|
HealthCheck string `field:"healthCheck"` // 健康检查设置
|
||||||
Cert string `field:"cert"` // 证书设置
|
Cert string `field:"cert"` // 证书设置
|
||||||
Ftp string `field:"ftp"` // FTP相关设置
|
Ftp string `field:"ftp"` // FTP相关设置
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ type Provider struct {
|
|||||||
Username string `field:"username"` // 用户名
|
Username string `field:"username"` // 用户名
|
||||||
Password string `field:"password"` // 密码
|
Password string `field:"password"` // 密码
|
||||||
Fullname string `field:"fullname"` // 真实姓名
|
Fullname string `field:"fullname"` // 真实姓名
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
|
UpdatedAt uint64 `field:"updatedAt"` // 修改时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
internal/db/models/provider_model_ext.go
Normal file
1
internal/db/models/provider_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -11,7 +11,7 @@ type ReverseProxy struct {
|
|||||||
PrimaryOrigins string `field:"primaryOrigins"` // 主要源站
|
PrimaryOrigins string `field:"primaryOrigins"` // 主要源站
|
||||||
BackupOrigins string `field:"backupOrigins"` // 备用源站
|
BackupOrigins string `field:"backupOrigins"` // 备用源站
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReverseProxyOperator struct {
|
type ReverseProxyOperator struct {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ type ServerGroup struct {
|
|||||||
UserId uint32 `field:"userId"` // 用户ID
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
Name string `field:"name"` // 名称
|
Name string `field:"name"` // 名称
|
||||||
Order uint32 `field:"order"` // 排序
|
Order uint32 `field:"order"` // 排序
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
internal/db/models/server_group_model_ext.go
Normal file
1
internal/db/models/server_group_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -25,7 +25,7 @@ type Server struct {
|
|||||||
IncludeNodes string `field:"includeNodes"` // 部署条件
|
IncludeNodes string `field:"includeNodes"` // 部署条件
|
||||||
ExcludeNodes string `field:"excludeNodes"` // 节点排除条件
|
ExcludeNodes string `field:"excludeNodes"` // 节点排除条件
|
||||||
Version uint32 `field:"version"` // 版本号
|
Version uint32 `field:"version"` // 版本号
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
IsUpdating uint8 `field:"isUpdating"` // 是否正在更新
|
IsUpdating uint8 `field:"isUpdating"` // 是否正在更新
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|||||||
22
internal/db/models/tcp_firewall_policy_dao.go
Normal file
22
internal/db/models/tcp_firewall_policy_dao.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
"github.com/iwind/TeaGo/Tea"
|
||||||
|
"github.com/iwind/TeaGo/dbs"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TCPFirewallPolicyDAO dbs.DAO
|
||||||
|
|
||||||
|
func NewTCPFirewallPolicyDAO() *TCPFirewallPolicyDAO {
|
||||||
|
return dbs.NewDAO(&TCPFirewallPolicyDAO{
|
||||||
|
DAOObject: dbs.DAOObject{
|
||||||
|
DB: Tea.Env,
|
||||||
|
Table: "edgeTCPFirewallPolicies",
|
||||||
|
Model: new(TCPFirewallPolicy),
|
||||||
|
PkName: "id",
|
||||||
|
},
|
||||||
|
}).(*TCPFirewallPolicyDAO)
|
||||||
|
}
|
||||||
|
|
||||||
|
var SharedTCPFirewallPolicyDAO = NewTCPFirewallPolicyDAO()
|
||||||
5
internal/db/models/tcp_firewall_policy_dao_test.go
Normal file
5
internal/db/models/tcp_firewall_policy_dao_test.go
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
|
)
|
||||||
20
internal/db/models/tcp_firewall_policy_model.go
Normal file
20
internal/db/models/tcp_firewall_policy_model.go
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
// TCP防火墙
|
||||||
|
type TCPFirewallPolicy struct {
|
||||||
|
Id uint32 `field:"id"` // ID
|
||||||
|
AdminId int32 `field:"adminId"` // 管理员ID
|
||||||
|
UserId uint32 `field:"userId"` // 用户ID
|
||||||
|
TemplateId uint32 `field:"templateId"` // 模版ID
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPFirewallPolicyOperator struct {
|
||||||
|
Id interface{} // ID
|
||||||
|
AdminId interface{} // 管理员ID
|
||||||
|
UserId interface{} // 用户ID
|
||||||
|
TemplateId interface{} // 模版ID
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTCPFirewallPolicyOperator() *TCPFirewallPolicyOperator {
|
||||||
|
return &TCPFirewallPolicyOperator{}
|
||||||
|
}
|
||||||
1
internal/db/models/tcp_firewall_policy_model_ext.go
Normal file
1
internal/db/models/tcp_firewall_policy_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
//
|
// 用户
|
||||||
type User struct {
|
type User struct {
|
||||||
Id uint32 `field:"id"` // ID
|
Id uint32 `field:"id"` // ID
|
||||||
Username string `field:"username"` // 用户名
|
Username string `field:"username"` // 用户名
|
||||||
Password string `field:"password"` // 密码
|
Password string `field:"password"` // 密码
|
||||||
Fullname string `field:"fullname"` // 真实姓名
|
Fullname string `field:"fullname"` // 真实姓名
|
||||||
CreatedAt uint32 `field:"createdAt"` // 创建时间
|
CreatedAt uint64 `field:"createdAt"` // 创建时间
|
||||||
UpdatedAt uint32 `field:"updatedAt"` // 修改时间
|
UpdatedAt uint64 `field:"updatedAt"` // 修改时间
|
||||||
State uint8 `field:"state"` // 状态
|
State uint8 `field:"state"` // 状态
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
1
internal/db/models/user_model_ext.go
Normal file
1
internal/db/models/user_model_ext.go
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package models
|
||||||
Reference in New Issue
Block a user