From caac49bde4ab6bb82433d33373a7b7a23021c087 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 6 Apr 2024 15:23:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=B3=BB=E7=BB=9F=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0IP=E6=A3=80=E6=9F=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rpc/services/service_http_firewall_policy.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/internal/rpc/services/service_http_firewall_policy.go b/internal/rpc/services/service_http_firewall_policy.go index cd8fea5c..f3d5c184 100644 --- a/internal/rpc/services/service_http_firewall_policy.go +++ b/internal/rpc/services/service_http_firewall_policy.go @@ -663,11 +663,24 @@ func (this *HTTPFirewallPolicyService) ImportHTTPFirewallPolicy(ctx context.Cont // CheckHTTPFirewallPolicyIPStatus 检查IP状态 func (this *HTTPFirewallPolicyService) CheckHTTPFirewallPolicyIPStatus(ctx context.Context, req *pb.CheckHTTPFirewallPolicyIPStatusRequest) (*pb.CheckHTTPFirewallPolicyIPStatusResponse, error) { - _, err := this.ValidateAdmin(ctx) + _, userId, err := this.ValidateAdminAndUser(ctx, true) if err != nil { return nil, err } + var tx = this.NullTx() + + // 检查权限 + if req.HttpFirewallPolicyId <= 0 { + return nil, errors.New("invalid 'httpFirewallPolicyId'") + } + if userId > 0 { + err = models.SharedHTTPFirewallPolicyDAO.CheckUserFirewallPolicy(tx, userId, req.HttpFirewallPolicyId) + if err != nil { + return nil, err + } + } + // 校验IP var ip = net.ParseIP(req.Ip) if len(ip) == 0 { @@ -677,7 +690,6 @@ func (this *HTTPFirewallPolicyService) CheckHTTPFirewallPolicyIPStatus(ctx conte }, nil } - var tx = this.NullTx() firewallPolicy, err := models.SharedHTTPFirewallPolicyDAO.ComposeFirewallPolicy(tx, req.HttpFirewallPolicyId, false, nil) if err != nil { return nil, err