From 3123bd9d10f312b58f5b8cddf54c886d993685ab Mon Sep 17 00:00:00 2001 From: Adam Lamers Date: Tue, 21 Apr 2026 17:33:11 -0400 Subject: [PATCH] delete invites when leaving server --- spacetimedb/src/reducers.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/spacetimedb/src/reducers.rs b/spacetimedb/src/reducers.rs index dd4a229..53011e9 100644 --- a/spacetimedb/src/reducers.rs +++ b/spacetimedb/src/reducers.rs @@ -384,9 +384,15 @@ pub fn join_server(ctx: &ReducerContext, server_id: Option, invite_code: Op #[spacetimedb::reducer] pub fn leave_server(ctx: &ReducerContext, server_id: u64) { - let members: Vec<_> = ctx.db.server_member().identity().filter(ctx.sender()).filter(|m| m.server_id == server_id).collect(); + let sender = ctx.sender(); + let members: Vec<_> = ctx.db.server_member().identity().filter(sender).filter(|m| m.server_id == server_id).collect(); for m in members { ctx.db.server_member().id().delete(m.id); } - revoke_server_access(&ctx.db, ctx.sender(), server_id); + + // Also delete any invites this user created for this server + let invites: Vec<_> = ctx.db.invite().iter().filter(|i| i.inviter == sender && i.server_id == server_id).collect(); + for i in invites { ctx.db.invite().code().delete(i.code); } + + revoke_server_access(&ctx.db, sender, server_id); } #[spacetimedb::reducer]