Changeset

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
parents 6174:877416deacfa
children 6176:23e66cfc77d4
files mod_groups_internal/mod_groups_internal.lua
diffstat 1 files changed, 12 insertions(+), 4 deletions(-) [+]
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);