IP名单中显示IP创建时相关的服务、WAF策略等信息

This commit is contained in:
刘祥超
2021-11-16 16:11:29 +08:00
parent ea915993b6
commit e209ff38d9
7 changed files with 293 additions and 37 deletions

View File

@@ -59,6 +59,43 @@ func (this *ListsAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -68,6 +105,10 @@ func (this *ListsAction) RunGet(params struct {
"reason": item.Reason, "reason": item.Reason,
"type": item.Type, "type": item.Type,
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -70,6 +70,43 @@ func (this *AllowListAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -80,6 +117,10 @@ func (this *AllowListAction) RunGet(params struct {
"type": item.Type, "type": item.Type,
"isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(), "isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(),
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -70,6 +70,43 @@ func (this *DenyListAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -80,6 +117,10 @@ func (this *DenyListAction) RunGet(params struct {
"type": item.Type, "type": item.Type,
"isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(), "isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(),
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -62,6 +62,43 @@ func (this *ItemsAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -71,6 +108,10 @@ func (this *ItemsAction) RunGet(params struct {
"reason": item.Reason, "reason": item.Reason,
"type": item.Type, "type": item.Type,
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -70,6 +70,43 @@ func (this *AllowListAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -80,6 +117,10 @@ func (this *AllowListAction) RunGet(params struct {
"type": item.Type, "type": item.Type,
"isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(), "isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(),
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -70,6 +70,43 @@ func (this *DenyListAction) RunGet(params struct {
expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt) expiredTime = timeutil.FormatTime("Y-m-d H:i:s", item.ExpiredAt)
} }
// policy
var sourcePolicyMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallPolicy != nil {
sourcePolicyMap = maps.Map{
"id": item.SourceHTTPFirewallPolicy.Id,
"name": item.SourceHTTPFirewallPolicy.Name,
"serverId": item.SourceHTTPFirewallPolicy.ServerId,
}
}
// group
var sourceGroupMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleGroup != nil {
sourceGroupMap = maps.Map{
"id": item.SourceHTTPFirewallRuleGroup.Id,
"name": item.SourceHTTPFirewallRuleGroup.Name,
}
}
// set
var sourceSetMap = maps.Map{"id": 0}
if item.SourceHTTPFirewallRuleSet != nil {
sourceSetMap = maps.Map{
"id": item.SourceHTTPFirewallRuleSet.Id,
"name": item.SourceHTTPFirewallRuleSet.Name,
}
}
// server
var sourceServerMap = maps.Map{"id": 0}
if item.SourceServer != nil {
sourceServerMap = maps.Map{
"id": item.SourceServer.Id,
"name": item.SourceServer.Name,
}
}
itemMaps = append(itemMaps, maps.Map{ itemMaps = append(itemMaps, maps.Map{
"id": item.Id, "id": item.Id,
"ipFrom": item.IpFrom, "ipFrom": item.IpFrom,
@@ -80,6 +117,10 @@ func (this *DenyListAction) RunGet(params struct {
"type": item.Type, "type": item.Type,
"isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(), "isExpired": item.ExpiredAt > 0 && item.ExpiredAt < time.Now().Unix(),
"eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel), "eventLevelName": firewallconfigs.FindFirewallEventLevelName(item.EventLevel),
"sourcePolicy": sourcePolicyMap,
"sourceGroup": sourceGroupMap,
"sourceSet": sourceSetMap,
"sourceServer": sourceServerMap,
}) })
} }
this.Data["items"] = itemMaps this.Data["items"] = itemMaps

View File

@@ -32,43 +32,53 @@ Vue.component("ip-list-table", {
<th class="three op">操作</th> <th class="three op">操作</th>
</tr> </tr>
</thead> </thead>
<tr v-for="item in items"> <tbody v-for="item in items">
<td> <tr>
<span v-if="item.type != 'all'"><keyword :v-word="keyword">{{item.ipFrom}}</keyword><span v-if="item.ipTo.length > 0"> - <keyword :v-word="keyword">{{item.ipTo}}</keyword></span></span> <td>
<span v-else class="disabled">*</span> <span v-if="item.type != 'all'"><keyword :v-word="keyword">{{item.ipFrom}}</keyword><span v-if="item.ipTo.length > 0"> - <keyword :v-word="keyword">{{item.ipTo}}</keyword></span></span>
<div v-if="item.createdTime != null"> <span v-else class="disabled">*</span>
<span class="small disabled">添加于 {{item.createdTime}}</span> <div v-if="item.createdTime != null">
</div> <span class="small disabled">添加于 {{item.createdTime}}</span>
</td> </div>
<td> </td>
<span v-if="item.type.length == 0">IPv4</span> <td>
<span v-else-if="item.type == 'ipv4'">IPv4</span> <span v-if="item.type.length == 0">IPv4</span>
<span v-else-if="item.type == 'ipv6'">IPv6</span> <span v-else-if="item.type == 'ipv4'">IPv4</span>
<span v-else-if="item.type == 'all'"><strong>所有IP</strong></span> <span v-else-if="item.type == 'ipv6'">IPv6</span>
</td> <span v-else-if="item.type == 'all'"><strong>所有IP</strong></span>
<td> </td>
<span v-if="item.eventLevelName != null && item.eventLevelName.length > 0">{{item.eventLevelName}}</span> <td>
<span v-else class="disabled">-</span> <span v-if="item.eventLevelName != null && item.eventLevelName.length > 0">{{item.eventLevelName}}</span>
</td> <span v-else class="disabled">-</span>
<td> </td>
<div v-if="item.expiredTime.length > 0"> <td>
{{item.expiredTime}} <div v-if="item.expiredTime.length > 0">
<div v-if="item.isExpired" style="margin-top: 0.5em"> {{item.expiredTime}}
<span class="ui label tiny basic red">已过期</span> <div v-if="item.isExpired" style="margin-top: 0.5em">
</div> <span class="ui label tiny basic red">已过期</span>
</div> </div>
<span v-else class="disabled">不过期</span> </div>
</td> <span v-else class="disabled">不过期</span>
<td> </td>
<span v-if="item.reason.length > 0">{{item.reason}}</span> <td>
<span v-else class="disabled">-</span> <span v-if="item.reason.length > 0">{{item.reason}}</span>
</td> <span v-else class="disabled">-</span>
<td>
<a href="" @click.prevent="viewLogs(item.id)">日志</a> &nbsp; <div style="margin-top: 0.4em" v-if="item.sourceServer != null && item.sourceServer.id > 0">
<a href="" @click.prevent="updateItem(item.id)">修改</a> &nbsp; <a :href="'/servers/server?serverId=' + item.sourceServer.id" class="ui label tiny basic grey" target="_blank"><i class="icon clone outline"></i>{{item.sourceServer.name}}</a>
<a href="" @click.prevent="deleteItem(item.id)">删除</a> </div>
</td> <div v-if="item.sourcePolicy != null && item.sourcePolicy.id > 0" style="margin-top: 0.4em">
</tr> <a :href="'/servers/components/waf/group?firewallPolicyId=' + item.sourcePolicy.id + '&type=inbound&groupId=' + item.sourceGroup.id" v-if="item.sourcePolicy.serverId == 0" class="ui label tiny basic grey" target="_blank"><i class="icon shield"></i>{{item.sourcePolicy.name}} &raquo; {{item.sourceGroup.name}} &raquo; {{item.sourceSet.name}}</a>
<a :href="'/servers/server/settings/waf/group?serverId=' + item.sourcePolicy.serverId + '&firewallPolicyId=' + item.sourcePolicy.id + '&type=inbound&groupId=' + item.sourceGroup.id" v-if="item.sourcePolicy.serverId > 0" class="ui label tiny basic grey" target="_blank"><i class="icon shield"></i> {{item.sourcePolicy.name}} &raquo; {{item.sourceGroup.name}} &raquo; {{item.sourceSet.name}}</a>
</div>
</td>
<td>
<a href="" @click.prevent="viewLogs(item.id)">日志</a> &nbsp;
<a href="" @click.prevent="updateItem(item.id)">修改</a> &nbsp;
<a href="" @click.prevent="deleteItem(item.id)">删除</a>
</td>
</tr>
</tbody>
</table> </table>
</div>` </div>`
}) })