Fix deletion of local leave state to allow sync for clients.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-09-11 02:33:01 +00:00
parent 11eeca7e01
commit d73b4332bf
9 changed files with 34 additions and 46 deletions

View File

@@ -67,7 +67,7 @@ pub(super) async fn exists(&self, room_id: OwnedRoomId) -> Result {
}
#[admin_command]
pub(super) async fn delete_room(&self, room_id: OwnedRoomId) -> Result {
pub(super) async fn delete_room(&self, room_id: OwnedRoomId, force: bool) -> Result {
if self.services.admin.is_admin_room(&room_id).await {
return Err!("Cannot delete admin room");
}
@@ -76,7 +76,7 @@ pub(super) async fn delete_room(&self, room_id: OwnedRoomId) -> Result {
self.services
.delete
.delete_room(&room_id, state_lock)
.delete_room(&room_id, force, state_lock)
.await?;
self.write_str("Successfully deleted the room from our database.")

View File

@@ -60,5 +60,8 @@ pub(super) enum RoomCommand {
/// - Delete room
DeleteRoom {
room_id: OwnedRoomId,
#[arg(short, long)]
force: bool,
},
}

View File

@@ -156,7 +156,7 @@ async fn ban_room(&self, room: OwnedRoomOrAliasId) -> Result {
if let Err(e) = self
.services
.membership
.leave(user_id, &room_id, None, &state_lock)
.leave(user_id, &room_id, None, false, &state_lock)
.boxed()
.await
{
@@ -331,7 +331,7 @@ async fn ban_list_of_rooms(&self) -> Result {
if let Err(e) = self
.services
.membership
.leave(user_id, &room_id, None, &state_lock)
.leave(user_id, &room_id, None, false, &state_lock)
.boxed()
.await
{

View File

@@ -665,7 +665,7 @@ pub(super) async fn force_leave_room(
self.services
.membership
.leave(&user_id, &room_id, None, &state_lock)
.leave(&user_id, &room_id, None, false, &state_lock)
.boxed()
.await?;