mirror of
				https://github.com/TeaOSLab/EdgeAdmin.git
				synced 2025-11-04 05:00:25 +08:00 
			
		
		
		
	优化IP名单
* 增加IP灰名单,用于仅记录并观察IP
This commit is contained in:
		@@ -4,5 +4,6 @@
 | 
			
		||||
	<span class="item disabled">|</span>
 | 
			
		||||
	<menu-item :href="'/servers/components/waf/ipadmin/lists?firewallPolicyId=' + firewallPolicyId + '&type=white'" :active="subMenuItem == 'white'">白名单</menu-item>
 | 
			
		||||
	<menu-item :href="'/servers/components/waf/ipadmin/lists?firewallPolicyId=' + firewallPolicyId + '&type=black'" :active="subMenuItem == 'black'">黑名单</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/components/waf/ipadmin/lists?firewallPolicyId=' + firewallPolicyId + '&type=grey'" :active="subMenuItem == 'grey'">灰名单</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/components/waf/ipadmin/test?firewallPolicyId=' + firewallPolicyId" :active="subMenuItem == 'test'">IP检查</menu-item>
 | 
			
		||||
</second-menu>
 | 
			
		||||
@@ -1,4 +1,6 @@
 | 
			
		||||
<first-menu>
 | 
			
		||||
    <menu-item :href="'/servers/iplists'">IP列表</menu-item>
 | 
			
		||||
    <raquo-item></raquo-item>
 | 
			
		||||
    <menu-item :href="'/servers/iplists/lists?type=' + list.type">{{list.typeName}}</menu-item>
 | 
			
		||||
    <span class="disabled item">|</span>
 | 
			
		||||
    <menu-item :href="'/servers/iplists/list?listId=' + list.id" code="list">"{{list.name}}"详情</menu-item>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,11 @@
 | 
			
		||||
<first-menu>
 | 
			
		||||
    <menu-item href="/servers/iplists" code="index">IP列表</menu-item>
 | 
			
		||||
    <span class="disabled item">|</span>
 | 
			
		||||
    <menu-item href="/servers/iplists/lists?type=black" :active="type == 'black'">公共黑名单</menu-item>
 | 
			
		||||
    <menu-item href="/servers/iplists/lists?type=white" :active="type == 'white'">公共白名单</menu-item>
 | 
			
		||||
    <menu-item href="/servers/iplists/lists?type=black" :active="type == 'black'">黑名单</menu-item>
 | 
			
		||||
    <menu-item href="/servers/iplists/lists?type=white" :active="type == 'white'">白名单</menu-item>
 | 
			
		||||
    <menu-item href="/servers/iplists/lists?type=grey" :active="type == 'grey'">灰名单</menu-item>
 | 
			
		||||
    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
			
		||||
    <menu-item @click.prevent="createList" v-if="type.length > 0">[创建名单]</menu-item>
 | 
			
		||||
    <span class="item disabled" v-if="type.length > 0">|</span>
 | 
			
		||||
    <span class="item" v-if="type.length > 0"><tip-icon content="全局名单自动生效;非全局名单可以在WAF策略里引用。"></tip-icon></span>
 | 
			
		||||
    <span class="item" v-if="type.length > 0"><tip-icon content="创建名单时可以选择“全局有效”就会成为全局有效名单,全局有效名单对所有网站自动生效;非全局有效名单可以在WAF策略里引用。<br/><br/>黑名单:其中的IP将会被禁止访问。<br/>白名单:其中的IP将会自动放行,优先级高于黑名单。<br/>灰名单:其中的IP仅作为记录和观察使用,不影响黑名单和白名单的作用。"></tip-icon></span>
 | 
			
		||||
</first-menu>
 | 
			
		||||
@@ -22,6 +22,7 @@
 | 
			
		||||
        <td class="center">
 | 
			
		||||
            <span v-if="list.type == 'black'">黑名单</span>
 | 
			
		||||
            <span v-if="list.type == 'white'">白名单</span>
 | 
			
		||||
            <span v-if="list.type == 'grey'">灰名单</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>{{list.description}}</td>
 | 
			
		||||
        <td class="center">
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@
 | 
			
		||||
 | 
			
		||||
<h3 v-if="list.type == 'white'">添加IP到白名单</h3>
 | 
			
		||||
<h3 v-if="list.type == 'black'">添加IP到黑名单</h3>
 | 
			
		||||
<h3 v-if="list.type == 'grey'">添加IP到灰名单</h3>
 | 
			
		||||
 | 
			
		||||
<form method="post" class="ui form" data-tea-action="$" data-tea-success="success">
 | 
			
		||||
	<input type="hidden" name="listId" :value="listId"/>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
{$layout "layout_popup"}
 | 
			
		||||
 | 
			
		||||
<h3>创建<var v-if="type == 'black'">黑名单</var><var v-if="type == 'white'">白名单</var></h3>
 | 
			
		||||
<h3>创建<var v-if="type == 'black'">黑名单</var><var v-if="type == 'white'">白名单</var><var v-if="type == 'grey'">灰名单</var>
 | 
			
		||||
</h3>
 | 
			
		||||
 | 
			
		||||
<form class="ui form" data-tea-action="$" data-tea-success="success">
 | 
			
		||||
    <csrf-token></csrf-token>
 | 
			
		||||
@@ -24,7 +25,11 @@
 | 
			
		||||
                <select class="ui dropdown auto-width" name="type" v-model="type">
 | 
			
		||||
                    <option value="black">黑名单</option>
 | 
			
		||||
                    <option value="white">白名单</option>
 | 
			
		||||
                    <option value="grey">灰名单</option>
 | 
			
		||||
                </select>
 | 
			
		||||
                <p class="comment" v-if="type == 'black'">黑名单中的IP将会被禁止访问。</p>
 | 
			
		||||
                <p class="comment" v-if="type == 'white'">白名单中的IP将会自动放行,优先级高于黑名单。</p>
 | 
			
		||||
                <p class="comment" v-if="type == 'grey'">灰名单中的IP仅作为记录和观察使用,不影响黑名单和白名单的作用。</p>
 | 
			
		||||
            </td>
 | 
			
		||||
        </tr>
 | 
			
		||||
        <tr>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
                <option value="">[类型]</option>
 | 
			
		||||
                <option value="black">黑名单</option>
 | 
			
		||||
                <option value="white">白名单</option>
 | 
			
		||||
                <option value="grey">灰名单</option>
 | 
			
		||||
            </select>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="ui field">
 | 
			
		||||
 
 | 
			
		||||
@@ -38,8 +38,9 @@
 | 
			
		||||
            <div v-if="list.isGlobal" style="margin-top: 0.3em"><grey-label>全局</grey-label></div>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td class="center">
 | 
			
		||||
            <span v-if="list.type == 'black'">黑名单</span>
 | 
			
		||||
            <span v-if="list.type == 'white'">白名单</span>
 | 
			
		||||
            <span v-if="list.type == 'black'"><span class="red">黑名单</span></span>
 | 
			
		||||
            <span v-if="list.type == 'white'"><span class="green">白名单</span></span>
 | 
			
		||||
            <span v-if="list.type == 'grey'"><span class="grey">灰名单</span></span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>{{list.description}}</td>
 | 
			
		||||
        <td class="center">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.createList = function () {
 | 
			
		||||
		teaweb.popup(Tea.url(".createPopup", {type: this.type}), {
 | 
			
		||||
			height: "30em",
 | 
			
		||||
			height: "32em",
 | 
			
		||||
			callback: function (resp) {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					window.location = "/servers/iplists/lists?type=" + resp.data.list.type
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@
 | 
			
		||||
        <td class="center">
 | 
			
		||||
            <span v-if="list.type == 'black'">黑名单</span>
 | 
			
		||||
            <span v-if="list.type == 'white'">白名单</span>
 | 
			
		||||
            <span v-if="list.type == 'grey'">灰名单</span>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>{{list.description}}</td>
 | 
			
		||||
        <td class="center">
 | 
			
		||||
 
 | 
			
		||||
@@ -7,5 +7,6 @@
 | 
			
		||||
    <menu-item :href="'/servers/server/settings/waf/ipadmin/provinces?serverId=' + serverId + '&firewallPolicyId='+firewallPolicyId" code="province">省份封禁</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/server/settings/waf/ipadmin/allowList?serverId=' + serverId + '&firewallPolicyId='+firewallPolicyId" code="allowList">白名单</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/server/settings/waf/ipadmin/denyList?serverId=' + serverId + '&firewallPolicyId='+firewallPolicyId" code="denyList">黑名单</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/server/settings/waf/ipadmin/greyList?serverId=' + serverId + '&firewallPolicyId='+firewallPolicyId" code="greyList">灰名单</menu-item>
 | 
			
		||||
    <menu-item :href="'/servers/server/settings/waf/ipadmin/test?serverId=' + serverId + '&firewallPolicyId='+firewallPolicyId" code="test">IP检查</menu-item>
 | 
			
		||||
</first-menu>
 | 
			
		||||
@@ -0,0 +1,26 @@
 | 
			
		||||
{$layout}
 | 
			
		||||
{$template "../../settings_menu"}
 | 
			
		||||
{$template "/left_menu_with_menu"}
 | 
			
		||||
 | 
			
		||||
<div class="right-box with-menu">
 | 
			
		||||
    {$template "../menu"}
 | 
			
		||||
 | 
			
		||||
    <warning-message v-if="!featureIsOn">尚未为当前用户开通此功能。</warning-message>
 | 
			
		||||
 | 
			
		||||
    {$ if .featureIsOn}
 | 
			
		||||
    <second-menu>
 | 
			
		||||
        <menu-item @click.prevent="createIP('grey')">添加IP</menu-item>
 | 
			
		||||
        <span class="item">|</span>
 | 
			
		||||
        <div class="item"><ip-list-bind-box :v-http-firewall-policy-id="firewallPolicyId" :v-type="'grey'"></ip-list-bind-box></div>
 | 
			
		||||
        <span class="item">|</span>
 | 
			
		||||
        <span class="item">ID: {{listId}}   <tip-icon content="ID可以用于使用API操作此IP名单;灰名单中的IP仅作为记录和观察使用,不影响黑名单和白名单的作用。"></tip-icon></span>
 | 
			
		||||
    </second-menu>
 | 
			
		||||
 | 
			
		||||
    <warning-message v-if="!wafIsOn">当前WAF未启用,设置将在<a :href="'/servers/server/settings/waf?serverId=' + serverId">[启用]</a>后生效。</warning-message>
 | 
			
		||||
 | 
			
		||||
    <p class="comment" v-if="items.length == 0">暂时还没有IP。</p>
 | 
			
		||||
    <ip-list-table v-if="items.length > 0" :v-items="items" @update-item="updateItem" @delete-item="deleteItem"></ip-list-table>
 | 
			
		||||
 | 
			
		||||
    <div class="page" v-html="page"></div>
 | 
			
		||||
    {$end}
 | 
			
		||||
</div>
 | 
			
		||||
@@ -0,0 +1,38 @@
 | 
			
		||||
Tea.context(function () {
 | 
			
		||||
	this.updateItem = function (itemId) {
 | 
			
		||||
		teaweb.popup(Tea.url(".updateIPPopup?listId=" + this.listId, {itemId: itemId}), {
 | 
			
		||||
			height: "30em",
 | 
			
		||||
			callback: function () {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					teaweb.reload()
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.deleteItem = function (itemId) {
 | 
			
		||||
		let that = this
 | 
			
		||||
		teaweb.confirm("确定要删除这个IP吗?", function () {
 | 
			
		||||
			that.$post(".deleteIP")
 | 
			
		||||
				.params({
 | 
			
		||||
					"listId": this.listId,
 | 
			
		||||
					"itemId": itemId
 | 
			
		||||
				})
 | 
			
		||||
				.refresh()
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 添加IP名单菜单
 | 
			
		||||
	 */
 | 
			
		||||
	this.createIP = function (type) {
 | 
			
		||||
		teaweb.popup("/servers/iplists/createIPPopup?listId=" + this.listId + '&type=' + type, {
 | 
			
		||||
			height: "30em",
 | 
			
		||||
			callback: function () {
 | 
			
		||||
				teaweb.success("保存成功", function () {
 | 
			
		||||
					teaweb.reload()
 | 
			
		||||
				})
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
		Reference in New Issue
	
	Block a user