From 4378500576f8d5e20a36186f72a421ba4f46ec16 Mon Sep 17 00:00:00 2001 From: Hailey Date: Sun, 14 Sep 2025 11:07:45 -0700 Subject: [PATCH] dont return blobs for deactivated accounts --- server/handle_sync_get_blob.go | 14 ++++++++++++++ server/handle_sync_list_blobs.go | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/server/handle_sync_get_blob.go b/server/handle_sync_get_blob.go index 2c1c412..01136e5 100644 --- a/server/handle_sync_get_blob.go +++ b/server/handle_sync_get_blob.go @@ -3,6 +3,7 @@ package server import ( "bytes" + "github.com/Azure/go-autorest/autorest/to" "github.com/haileyok/cocoon/internal/helpers" "github.com/haileyok/cocoon/models" "github.com/ipfs/go-cid" @@ -25,6 +26,19 @@ func (s *Server) handleSyncGetBlob(e echo.Context) error { return helpers.InputError(e, nil) } + urepo, err := s.getRepoActorByDid(did) + if err != nil { + s.logger.Error("could not find user for requested blob", "error", err) + return helpers.InputError(e, nil) + } + + status := urepo.Status() + if status != nil { + if *status == "deactivated" { + return helpers.InputError(e, to.StringPtr("RepoDeactivated")) + } + } + var blob models.Blob if err := s.db.Raw("SELECT * FROM blobs WHERE did = ? AND cid = ?", nil, did, c.Bytes()).Scan(&blob).Error; err != nil { s.logger.Error("error looking up blob", "error", err) diff --git a/server/handle_sync_list_blobs.go b/server/handle_sync_list_blobs.go index c867d7a..2261a6b 100644 --- a/server/handle_sync_list_blobs.go +++ b/server/handle_sync_list_blobs.go @@ -1,6 +1,7 @@ package server import ( + "github.com/Azure/go-autorest/autorest/to" "github.com/haileyok/cocoon/internal/helpers" "github.com/haileyok/cocoon/models" "github.com/ipfs/go-cid" @@ -34,6 +35,19 @@ func (s *Server) handleSyncListBlobs(e echo.Context) error { } params = append(params, limit) + urepo, err := s.getRepoActorByDid(did) + if err != nil { + s.logger.Error("could not find user for requested blobs", "error", err) + return helpers.InputError(e, nil) + } + + status := urepo.Status() + if status != nil { + if *status == "deactivated" { + return helpers.InputError(e, to.StringPtr("RepoDeactivated")) + } + } + var blobs []models.Blob if err := s.db.Raw("SELECT * FROM blobs WHERE did = ? "+cursorquery+" ORDER BY created_at DESC LIMIT ?", nil, params...).Scan(&blobs).Error; err != nil { s.logger.Error("error getting records", "error", err) -- 2.51.2