Software / code / prosody-modules
Comparison
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 |
comparison
equal
deleted
inserted
replaced
| 6174:877416deacfa | 6175:e2d130104b98 |
|---|---|
| 205 end | 205 end |
| 206 | 206 |
| 207 function delete(group_id) | 207 function delete(group_id) |
| 208 if group_members_store:set(group_id, nil) then | 208 if group_members_store:set(group_id, nil) then |
| 209 local group_info = get_info(group_id); | 209 local group_info = get_info(group_id); |
| 210 if group_info and group_info.muc_jid then | 210 if group_info then |
| 211 local room = muc_host.get_room_from_jid(group_info.muc_jid) | 211 if group_info.muc_jid then |
| 212 if room then | 212 local room = muc_host.get_room_from_jid(group_info.muc_jid) |
| 213 room:destroy() | 213 if room then |
| 214 room:destroy() | |
| 215 end | |
| 216 end | |
| 217 for _, muc_jid in ipairs(group_info.mucs) do | |
| 218 local room = muc_host.get_room_from_jid(muc_jid) | |
| 219 if room then | |
| 220 room:destroy() | |
| 221 end | |
| 214 end | 222 end |
| 215 end | 223 end |
| 216 return group_info_store:set(group_id, nil); | 224 return group_info_store:set(group_id, nil); |
| 217 end | 225 end |
| 218 return nil, "internal-server-error"; | 226 return nil, "internal-server-error"; |