Mercurial > prosody-hg
comparison plugins/muc/mod_muc.lua @ 12010:f995d62044fa
MUC: Allow modules a chance to act prior to room destruction
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 05 Dec 2021 14:49:06 +0100 |
| parents | 6da8d9cb355d |
| children | e9882c4c397f |
comparison
equal
deleted
inserted
replaced
| 12009:f6fff0658108 | 12010:f995d62044fa |
|---|---|
| 536 for field, err in pairs(errors) do | 536 for field, err in pairs(errors) do |
| 537 errmsg[#errmsg + 1] = field .. ": " .. err; | 537 errmsg[#errmsg + 1] = field .. ": " .. err; |
| 538 end | 538 end |
| 539 return { status = "completed", error = { message = t_concat(errmsg, "\n") } }; | 539 return { status = "completed", error = { message = t_concat(errmsg, "\n") } }; |
| 540 end | 540 end |
| 541 for _, room in ipairs(fields.rooms) do | 541 local destroyed = array(); |
| 542 get_room_from_jid(room):destroy(); | 542 for _, room_jid in ipairs(fields.rooms) do |
| 543 end | 543 local room = get_room_from_jid(room_jid); |
| 544 return { status = "completed", info = "The following rooms were destroyed:\n"..t_concat(fields.rooms, "\n") }; | 544 if room and room:destroy() then |
| 545 destroyed:push(room.jid); | |
| 546 end | |
| 547 end | |
| 548 return { status = "completed", info = "The following rooms were destroyed:\n"..t_concat(destroyed, "\n") }; | |
| 545 end); | 549 end); |
| 546 local destroy_rooms_desc = adhoc_new("Destroy Rooms", | 550 local destroy_rooms_desc = adhoc_new("Destroy Rooms", |
| 547 "http://prosody.im/protocol/muc#destroy", destroy_rooms_handler, "admin"); | 551 "http://prosody.im/protocol/muc#destroy", destroy_rooms_handler, "admin"); |
| 548 | 552 |
| 549 module:provides("adhoc", destroy_rooms_desc); | 553 module:provides("adhoc", destroy_rooms_desc); |
