Diff

mod_groups_internal/mod_groups_internal.lua @ 6175:e2d130104b98

mod_groups_internal: Delete all associated MUCs when deleting a group
author Rémi Bardon <remi@remibardon.name>
date Fri, 12 Jul 2024 19:55:30 +0200
parent 6131:f80db102fdb1
child 6205:8ff8121ff603
line wrap: on
line diff
--- a/mod_groups_internal/mod_groups_internal.lua	Wed Jan 29 00:20:01 2025 +0100
+++ b/mod_groups_internal/mod_groups_internal.lua	Fri Jul 12 19:55:30 2024 +0200
@@ -207,10 +207,18 @@
 function delete(group_id)
 	if group_members_store:set(group_id, nil) then
 		local group_info = get_info(group_id);
-		if group_info and group_info.muc_jid then
-			local room = muc_host.get_room_from_jid(group_info.muc_jid)
-			if room then
-				room:destroy()
+		if group_info then
+			if group_info.muc_jid then
+				local room = muc_host.get_room_from_jid(group_info.muc_jid)
+				if room then
+					room:destroy()
+				end
+			end
+			for _, muc_jid in ipairs(group_info.mucs) do
+				local room = muc_host.get_room_from_jid(muc_jid)
+				if room then
+					room:destroy()
+				end
 			end
 		end
 		return group_info_store:set(group_id, nil);