From e689362ee1758bc5bf9fbeff2237419e168ec3ae Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Tue, 29 Jul 2025 13:17:05 +0100 Subject: [PATCH] appview: fix non-empty spindle removal Change-Id: xmplzvpqtnruszrppkswvlnroywxpnus Signed-off-by: oppiliappan --- appview/ingester.go | 10 ++++++++++ appview/spindles/spindles.go | 12 ++++++++++++ 2 files changed, 22 insertions(+) diff --git a/appview/ingester.go b/appview/ingester.go index 62eb5cd..7a3c22a 100644 --- a/appview/ingester.go +++ b/appview/ingester.go @@ -510,6 +510,16 @@ func (i *Ingester) ingestSpindle(e *models.Event) error { i.Enforcer.E.LoadPolicy() }() + // remove spindle members first + err = db.RemoveSpindleMember( + tx, + db.FilterEq("owner", did), + db.FilterEq("instance", instance), + ) + if err != nil { + return err + } + err = db.DeleteSpindle( tx, db.FilterEq("owner", did), diff --git a/appview/spindles/spindles.go b/appview/spindles/spindles.go index bb91dad..f903fa2 100644 --- a/appview/spindles/spindles.go +++ b/appview/spindles/spindles.go @@ -303,6 +303,18 @@ func (s *Spindles) delete(w http.ResponseWriter, r *http.Request) { s.Enforcer.E.LoadPolicy() }() + // remove spindle members first + err = db.RemoveSpindleMember( + tx, + db.FilterEq("did", user.Did), + db.FilterEq("instance", instance), + ) + if err != nil { + l.Error("failed to remove spindle members", "err", err) + fail() + return + } + err = db.DeleteSpindle( tx, db.FilterEq("owner", user.Did), -- 2.43.0