mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-18 23:10:25 +08:00
出站规则集中WAF跳转到下一个规则分组可以选择出站规则分组
This commit is contained in:
@@ -56,7 +56,7 @@ func (this *UpdateSetPopupAction) RunGet(params struct {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
actionMaps := []maps.Map{}
|
var actionMaps = []maps.Map{}
|
||||||
for _, action := range firewallconfigs.AllActions {
|
for _, action := range firewallconfigs.AllActions {
|
||||||
actionMaps = append(actionMaps, maps.Map{
|
actionMaps = append(actionMaps, maps.Map{
|
||||||
"name": action.Name,
|
"name": action.Name,
|
||||||
@@ -119,7 +119,7 @@ func (this *UpdateSetPopupAction) RunPost(params struct {
|
|||||||
if len(params.RulesJSON) == 0 {
|
if len(params.RulesJSON) == 0 {
|
||||||
this.Fail("请添加至少一个规则")
|
this.Fail("请添加至少一个规则")
|
||||||
}
|
}
|
||||||
rules := []*firewallconfigs.HTTPFirewallRule{}
|
var rules = []*firewallconfigs.HTTPFirewallRule{}
|
||||||
err = json.Unmarshal(params.RulesJSON, &rules)
|
err = json.Unmarshal(params.RulesJSON, &rules)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
this.ErrorPage(err)
|
this.ErrorPage(err)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// 动作选择
|
// 动作选择
|
||||||
Vue.component("http-firewall-actions-box", {
|
Vue.component("http-firewall-actions-box", {
|
||||||
props: ["v-actions", "v-firewall-policy", "v-action-configs"],
|
props: ["v-actions", "v-firewall-policy", "v-action-configs", "v-group-type"],
|
||||||
mounted: function () {
|
mounted: function () {
|
||||||
let that = this
|
let that = this
|
||||||
Tea.action("/servers/iplists/levelOptions")
|
Tea.action("/servers/iplists/levelOptions")
|
||||||
@@ -37,6 +37,13 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
this.vFirewallPolicy.inbound.groups = []
|
this.vFirewallPolicy.inbound.groups = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.vFirewallPolicy.outbound == null) {
|
||||||
|
this.vFirewallPolicy.outbound = {}
|
||||||
|
}
|
||||||
|
if (this.vFirewallPolicy.outbound.groups == null) {
|
||||||
|
this.vFirewallPolicy.outbound.groups = []
|
||||||
|
}
|
||||||
|
|
||||||
let id = 0
|
let id = 0
|
||||||
let configs = []
|
let configs = []
|
||||||
if (this.vActionConfigs != null) {
|
if (this.vActionConfigs != null) {
|
||||||
@@ -202,7 +209,16 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
})
|
})
|
||||||
this.goGroup = group
|
this.goGroup = group
|
||||||
if (group == null) {
|
if (group == null) {
|
||||||
this.goGroupName = ""
|
// search outbound groups
|
||||||
|
group = this.vFirewallPolicy.outbound.groups.$find(function (k, v) {
|
||||||
|
return v.id == groupId
|
||||||
|
})
|
||||||
|
if (group == null) {
|
||||||
|
this.goGroupName = ""
|
||||||
|
} else {
|
||||||
|
this.goGroup = group
|
||||||
|
this.goGroupName = group.name
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.goGroupName = group.name
|
this.goGroupName = group.name
|
||||||
}
|
}
|
||||||
@@ -677,8 +693,8 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
<!-- 范围 -->
|
<!-- 范围 -->
|
||||||
<span v-if="config.options.scope != null && config.options.scope.length > 0" class="small grey">
|
<span v-if="config.options.scope != null && config.options.scope.length > 0" class="small grey">
|
||||||
|
|
||||||
<span v-if="config.options.scope == 'global'">[所有服务]</span>
|
<span v-if="config.options.scope == 'global'">[所有网站]</span>
|
||||||
<span v-if="config.options.scope == 'service'">[当前服务]</span>
|
<span v-if="config.options.scope == 'service'">[当前网站]</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!-- 操作按钮 -->
|
<!-- 操作按钮 -->
|
||||||
@@ -703,8 +719,8 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
<td>封禁范围</td>
|
<td>封禁范围</td>
|
||||||
<td>
|
<td>
|
||||||
<select class="ui dropdown auto-width" v-model="blockScope">
|
<select class="ui dropdown auto-width" v-model="blockScope">
|
||||||
<option value="service">当前服务</option>
|
<option value="service">当前网站</option>
|
||||||
<option value="global">所有服务</option>
|
<option value="global">所有网站</option>
|
||||||
</select>
|
</select>
|
||||||
<p class="comment" v-if="blockScope == 'service'">只封禁用户对当前网站的访问,其他服务不受影响。</p>
|
<p class="comment" v-if="blockScope == 'service'">只封禁用户对当前网站的访问,其他服务不受影响。</p>
|
||||||
<p class="comment" v-if="blockScope =='global'">封禁用户对所有网站的访问。</p>
|
<p class="comment" v-if="blockScope =='global'">封禁用户对所有网站的访问。</p>
|
||||||
@@ -897,7 +913,8 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
<td>
|
<td>
|
||||||
<select class="ui dropdown auto-width" v-model="goGroupId">
|
<select class="ui dropdown auto-width" v-model="goGroupId">
|
||||||
<option value="0">[选择分组]</option>
|
<option value="0">[选择分组]</option>
|
||||||
<option v-for="group in vFirewallPolicy.inbound.groups" :value="group.id">{{group.name}}</option>
|
<option v-if="vFirewallPolicy.inbound != null && vFirewallPolicy.inbound.groups != null" v-for="group in vFirewallPolicy.inbound.groups" :value="group.id">入站:{{group.name}}</option>
|
||||||
|
<option v-if="vGroupType == 'outbound' && vFirewallPolicy.outbound != null && vFirewallPolicy.outbound.groups != null" v-for="group in vFirewallPolicy.outbound.groups" :value="group.id">出站:{{group.name}}</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -908,7 +925,8 @@ Vue.component("http-firewall-actions-box", {
|
|||||||
<td>
|
<td>
|
||||||
<select class="ui dropdown auto-width" v-model="goGroupId">
|
<select class="ui dropdown auto-width" v-model="goGroupId">
|
||||||
<option value="0">[选择分组]</option>
|
<option value="0">[选择分组]</option>
|
||||||
<option v-for="group in vFirewallPolicy.inbound.groups" :value="group.id">{{group.name}}</option>
|
<option v-if="vFirewallPolicy.inbound != null && vFirewallPolicy.inbound.groups != null" v-for="group in vFirewallPolicy.inbound.groups" :value="group.id">入站:{{group.name}}</option>
|
||||||
|
<option v-if="vGroupType == 'outbound' && vFirewallPolicy.outbound != null && vFirewallPolicy.outbound.groups != null" v-for="group in vFirewallPolicy.outbound.groups" :value="group.id">出站:{{group.name}}</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<http-firewall-rules-box :v-rules="rules" :v-type="type"></http-firewall-rules-box>
|
<http-firewall-rules-box :v-rules="rules" :v-type="type"></http-firewall-rules-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr v-show="rules.length > 1">
|
||||||
<td>规则之间的关系 *</td>
|
<td>规则之间的关系 *</td>
|
||||||
<td>
|
<td>
|
||||||
<select class="ui dropdown" name="connector" style="width:10em" @change="changeConnector()" v-model="selectedConnector">
|
<select class="ui dropdown" name="connector" style="width:10em" @change="changeConnector()" v-model="selectedConnector">
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>执行动作 *</td>
|
<td>执行动作 *</td>
|
||||||
<td>
|
<td>
|
||||||
<http-firewall-actions-box :v-actions="actions" :v-firewall-policy="firewallPolicy"></http-firewall-actions-box>
|
<http-firewall-actions-box :v-actions="actions" :v-firewall-policy="firewallPolicy" :v-group-type="type"></http-firewall-actions-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<http-firewall-rules-box :v-rules="rules" :v-type="type"></http-firewall-rules-box>
|
<http-firewall-rules-box :v-rules="rules" :v-type="type"></http-firewall-rules-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr v-show="rules.length > 1">
|
||||||
<td>规则之间的关系 *</td>
|
<td>规则之间的关系 *</td>
|
||||||
<td>
|
<td>
|
||||||
<select class="ui dropdown" name="connector" style="width:10em" @change="changeConnector()" v-model="selectedConnector">
|
<select class="ui dropdown" name="connector" style="width:10em" @change="changeConnector()" v-model="selectedConnector">
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>执行动作 *</td>
|
<td>执行动作 *</td>
|
||||||
<td>
|
<td>
|
||||||
<http-firewall-actions-box :v-actions="actions" :v-firewall-policy="firewallPolicy" :v-action-configs="actionConfigs"></http-firewall-actions-box>
|
<http-firewall-actions-box :v-actions="actions" :v-firewall-policy="firewallPolicy" :v-action-configs="actionConfigs" :v-group-type="type"></http-firewall-actions-box>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
Reference in New Issue
Block a user