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 }