[日志审计]增加删除、清理和别的一些设置

This commit is contained in:
GoEdgeLab
2020-12-02 20:31:29 +08:00
parent f51ad97b9c
commit 635f1e8ea7
9 changed files with 320 additions and 3 deletions

View File

@@ -87,3 +87,81 @@ func (this *LogService) ListLogs(ctx context.Context, req *pb.ListLogsRequest) (
return &pb.ListLogsResponse{Logs: result}, nil
}
// 删除单条
func (this *LogService) DeleteLogPermanently(ctx context.Context, req *pb.DeleteLogPermanentlyRequest) (*pb.RPCSuccess, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
// TODO 校验权限
// 执行物理删除
err = models.SharedLogDAO.DeleteLogPermanently(req.LogId)
if err != nil {
return nil, err
}
return this.Success()
}
// 批量删除
func (this *LogService) DeleteLogsPermanently(ctx context.Context, req *pb.DeleteLogsPermanentlyRequest) (*pb.RPCSuccess, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
// TODO 校验权限
// 执行物理删除
for _, logId := range req.LogIds {
err = models.SharedLogDAO.DeleteLogPermanently(logId)
if err != nil {
return nil, err
}
}
return this.Success()
}
// 清理日志
func (this *LogService) CleanLogsPermanently(ctx context.Context, req *pb.CleanLogsPermanentlyRequest) (*pb.RPCSuccess, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
// TODO 校验权限
if req.ClearAll {
err = models.SharedLogDAO.DeleteAllLogsPermanently()
if err != nil {
return nil, err
}
} else if req.Days > 0 {
err = models.SharedLogDAO.DeleteLogsPermanentlyBeforeDays(int(req.Days))
if err != nil {
return nil, err
}
}
return this.Success()
}
// 计算日志容量大小
func (this *LogService) SumLogsSize(ctx context.Context, req *pb.SumLogsSizeRequest) (*pb.SumLogsResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
if err != nil {
return nil, err
}
// TODO 校验权限
size, err := models.SharedLogDAO.SumLogsSize()
if err != nil {
return nil, err
}
return &pb.SumLogsResponse{SizeBytes: size}, nil
}