From 381f83c94cd1d32e8e074f8c1afc00ab0931e2bf Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Thu, 14 Jan 2021 18:01:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8F=AF=E4=BB=A5=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E8=AE=BF=E9=97=AE=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/user_features.go | 5 +++++ internal/rpc/services/service_http_access_log.go | 11 ++++++++++- internal/rpc/services/service_ip_library.go | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/internal/db/models/user_features.go b/internal/db/models/user_features.go index 3bbfe6c5..bd33ac4d 100644 --- a/internal/db/models/user_features.go +++ b/internal/db/models/user_features.go @@ -10,6 +10,11 @@ var ( Code: "server.accessLog", Description: "用户可以开启服务的访问日志", }, + { + Name: "查看访问日志", + Code: "server.viewAccessLog", + Description: "用户可以查看服务的访问日志", + }, { Name: "转发访问日志", Code: "server.accessLog.forward", diff --git a/internal/rpc/services/service_http_access_log.go b/internal/rpc/services/service_http_access_log.go index 48cb2b14..95a9fc92 100644 --- a/internal/rpc/services/service_http_access_log.go +++ b/internal/rpc/services/service_http_access_log.go @@ -81,7 +81,7 @@ func (this *HTTPAccessLogService) ListHTTPAccessLogs(ctx context.Context, req *p // 查找单个日志 func (this *HTTPAccessLogService) FindHTTPAccessLog(ctx context.Context, req *pb.FindHTTPAccessLogRequest) (*pb.FindHTTPAccessLogResponse, error) { // 校验请求 - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + _, userId, err := this.ValidateAdminAndUser(ctx, 0, 0) if err != nil { return nil, err } @@ -95,6 +95,15 @@ func (this *HTTPAccessLogService) FindHTTPAccessLog(ctx context.Context, req *pb if accessLog == nil { return &pb.FindHTTPAccessLogResponse{AccessLog: nil}, nil } + + // 检查权限 + if userId > 0 { + err = models.SharedServerDAO.CheckUserServer(tx, int64(accessLog.ServerId), userId) + if err != nil { + return nil, err + } + } + a, err := accessLog.ToPB() if err != nil { return nil, err diff --git a/internal/rpc/services/service_ip_library.go b/internal/rpc/services/service_ip_library.go index 1556b347..d9bc026c 100644 --- a/internal/rpc/services/service_ip_library.go +++ b/internal/rpc/services/service_ip_library.go @@ -177,7 +177,7 @@ func (this *IPLibraryService) DeleteIPLibrary(ctx context.Context, req *pb.Delet // 查询某个IP信息 func (this *IPLibraryService) LookupIPRegion(ctx context.Context, req *pb.LookupIPRegionRequest) (*pb.LookupIPRegionResponse, error) { // 校验请求 - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + _, _, err := this.ValidateAdminAndUser(ctx, 0, 0) if err != nil { return nil, err } @@ -217,7 +217,7 @@ func (this *IPLibraryService) LookupIPRegion(ctx context.Context, req *pb.Lookup // 查询一组IP信息 func (this *IPLibraryService) LookupIPRegions(ctx context.Context, req *pb.LookupIPRegionsRequest) (*pb.LookupIPRegionsResponse, error) { // 校验请求 - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + _, _, err := this.ValidateAdminAndUser(ctx, 0, 0) if err != nil { return nil, err }