delete invites when leaving server
This commit is contained in:
@@ -384,9 +384,15 @@ pub fn join_server(ctx: &ReducerContext, server_id: Option<u64>, 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]
|
||||
|
||||
Reference in New Issue
Block a user