forked from hailey.at/cocoon
An atproto PDS written in Go

dont return blobs for deactivated accounts

+14
server/handle_sync_get_blob.go
··· 3 3 import ( 4 4 "bytes" 5 5 6 + "github.com/Azure/go-autorest/autorest/to" 6 7 "github.com/haileyok/cocoon/internal/helpers" 7 8 "github.com/haileyok/cocoon/models" 8 9 "github.com/ipfs/go-cid" ··· 23 24 c, err := cid.Parse(cstr) 24 25 if err != nil { 25 26 return helpers.InputError(e, nil) 27 + } 28 + 29 + urepo, err := s.getRepoActorByDid(did) 30 + if err != nil { 31 + s.logger.Error("could not find user for requested blob", "error", err) 32 + return helpers.InputError(e, nil) 33 + } 34 + 35 + status := urepo.Status() 36 + if status != nil { 37 + if *status == "deactivated" { 38 + return helpers.InputError(e, to.StringPtr("RepoDeactivated")) 39 + } 26 40 } 27 41 28 42 var blob models.Blob
+14
server/handle_sync_list_blobs.go
··· 1 1 package server 2 2 3 3 import ( 4 + "github.com/Azure/go-autorest/autorest/to" 4 5 "github.com/haileyok/cocoon/internal/helpers" 5 6 "github.com/haileyok/cocoon/models" 6 7 "github.com/ipfs/go-cid" ··· 33 34 cursorquery = "AND created_at < ?" 34 35 } 35 36 params = append(params, limit) 37 + 38 + urepo, err := s.getRepoActorByDid(did) 39 + if err != nil { 40 + s.logger.Error("could not find user for requested blobs", "error", err) 41 + return helpers.InputError(e, nil) 42 + } 43 + 44 + status := urepo.Status() 45 + if status != nil { 46 + if *status == "deactivated" { 47 + return helpers.InputError(e, to.StringPtr("RepoDeactivated")) 48 + } 49 + } 36 50 37 51 var blobs []models.Blob 38 52 if err := s.db.Raw("SELECT * FROM blobs WHERE did = ? "+cursorquery+" ORDER BY created_at DESC LIMIT ?", nil, params...).Scan(&blobs).Error; err != nil {