mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-12-09 03:30:24 +08:00
升级IP名单权限判断逻辑
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -75,6 +75,9 @@ var upgradeFuncs = []*upgradeVersion{
|
||||
{
|
||||
"0.4.7", upgradeV0_4_7,
|
||||
},
|
||||
{
|
||||
"0.4.8", upgradeV0_4_8,
|
||||
},
|
||||
}
|
||||
|
||||
// UpgradeSQLData 升级SQL数据
|
||||
@@ -672,3 +675,55 @@ func upgradeV0_4_7(db *dbs.DB) error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// v0.4.7
|
||||
func upgradeV0_4_8(db *dbs.DB) error {
|
||||
// 设置edgeIPLists中的serverId
|
||||
{
|
||||
firewallPolicyOnes, _, err := db.FindOnes("SELECT inbound,serverId FROM edgeHTTPFirewallPolicies WHERE serverId>0")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, one := range firewallPolicyOnes {
|
||||
var inboundBytes = one.GetBytes("inbound")
|
||||
var serverId = one.GetInt64("serverId")
|
||||
|
||||
var listIds = []int64{}
|
||||
|
||||
if len(inboundBytes) > 0 {
|
||||
var inbound = &firewallconfigs.HTTPFirewallInboundConfig{}
|
||||
err = json.Unmarshal(inboundBytes, inbound)
|
||||
if err == nil { // we ignore errors
|
||||
if inbound.AllowListRef != nil && inbound.AllowListRef.ListId > 0 {
|
||||
listIds = append(listIds, inbound.AllowListRef.ListId)
|
||||
}
|
||||
if inbound.DenyListRef != nil && inbound.DenyListRef.ListId > 0 {
|
||||
listIds = append(listIds, inbound.DenyListRef.ListId)
|
||||
}
|
||||
if inbound.GreyListRef != nil && inbound.GreyListRef.ListId > 0 {
|
||||
listIds = append(listIds, inbound.GreyListRef.ListId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(listIds) == 0 {
|
||||
continue
|
||||
}
|
||||
for _, listId := range listIds {
|
||||
isPublicCol, err := db.FindCol(0, "SELECT isPublic FROM edgeIPLists WHERE id=? LIMIT 1", listId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var isPublic = types.Bool(isPublicCol)
|
||||
if !isPublic {
|
||||
_, err = db.Exec("UPDATE edgeIPLists SET serverId=? WHERE id=?", serverId, listId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -175,3 +175,22 @@ func TestUpgradeSQLData_v0_4_7(t *testing.T) {
|
||||
}
|
||||
t.Log("ok")
|
||||
}
|
||||
|
||||
func TestUpgradeSQLData_v0_4_8(t *testing.T) {
|
||||
db, err := dbs.NewInstanceFromConfig(&dbs.DBConfig{
|
||||
Driver: "mysql",
|
||||
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge?charset=utf8mb4&timeout=30s",
|
||||
Prefix: "edge",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer func() {
|
||||
_ = db.Close()
|
||||
}()
|
||||
err = upgradeV0_4_8(db)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("ok")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user