Refactor deletion checks and error handling; bump version to v0.6.4.
Some checks failed
Go / build (push) Has been cancelled

This commit is contained in:
2025-09-21 18:15:27 +01:00
parent 405e223aa6
commit 199f922208
3 changed files with 12 additions and 22 deletions

View File

@@ -145,12 +145,10 @@ func (l *Listener) HandleDelete(env *eventenvelope.Submission) (err error) {
if ev, err = l.FetchEventBySerial(s); chk.E(err) { if ev, err = l.FetchEventBySerial(s); chk.E(err) {
continue continue
} }
// check that the author is the same as the signer of the // allow deletion if the signer is the author OR an admin/owner
// delete, for the e tag case the author is the signer of if !(ownerDelete || utils.FastEqual(env.E.Pubkey, ev.Pubkey)) {
// the event.
if !utils.FastEqual(env.E.Pubkey, ev.Pubkey) {
log.W.F( log.W.F(
"HandleDelete: attempted deletion of event %s by different user - delete pubkey=%s, event pubkey=%s", "HandleDelete: attempted deletion of event %s by unauthorized user - delete pubkey=%s, event pubkey=%s",
hex.Enc(ev.ID), hex.Enc(env.E.Pubkey), hex.Enc(ev.ID), hex.Enc(env.E.Pubkey),
hex.Enc(ev.Pubkey), hex.Enc(ev.Pubkey),
) )

View File

@@ -173,10 +173,10 @@ func (d *D) CheckForDeleted(ev *event.E, admins [][]byte) (err error) {
} }
} }
if ev.CreatedAt < maxTs { if ev.CreatedAt < maxTs {
// err = fmt.Errorf( err = errorf.E(
// "blocked: was deleted by address %s: event is older than the delete: event: %d delete: %d", "blocked: %0x was deleted by address %s because it is older than the delete: event: %d delete: %d",
// at, ev.CreatedAt, maxTs, ev.ID, at, ev.CreatedAt, maxTs,
// ) )
return return
} }
return return
@@ -203,22 +203,14 @@ func (d *D) CheckForDeleted(ev *event.E, admins [][]byte) (err error) {
return return
} }
if len(s) > 0 { if len(s) > 0 {
// For e-tag deletions (delete by ID), any deletion event means the event cannot be resubmitted // Any e-tag deletion found means the exact event was deleted and cannot be resubmitted
// regardless of timestamp, since it's a specific deletion of this exact event err = errorf.E("blocked: %0x has been deleted", ev.ID)
// err = errorf.E(
// "blocked: was deleted by ID and cannot be resubmitted",
// // ev.ID,
// )
return return
} }
} }
if len(sers) > 0 { if len(sers) > 0 {
// For e-tag deletions (delete by ID), any deletion event means the event cannot be resubmitted // Any e-tag deletion found means the exact event was deleted and cannot be resubmitted
// regardless of timestamp, since it's a specific deletion of this exact event err = errorf.E("blocked: %0x has been deleted", ev.ID)
// err = errorf.E(
// "blocked: was deleted by ID and cannot be resubmitted",
// // ev.ID,
// )
return return
} }

View File

@@ -1 +1 @@
v0.6.3 v0.6.4