Refactor deletion checks and error handling; bump version to v0.6.4.
Some checks failed
Go / build (push) Has been cancelled
Some checks failed
Go / build (push) Has been cancelled
This commit is contained in:
@@ -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),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
v0.6.3
|
v0.6.4
|
||||||
Reference in New Issue
Block a user