# HG changeset patch # User Matthew Wild # Date 1637075392 0 # Node ID eb63890ae8fcad910253801035120352b57f3e4c # Parent 85d4ab318d664311014ace39ba6ad18f17b02c74 mod_muc_offline_delivery: Allow the module to be enabled by default for all users diff -r 85d4ab318d66 -r eb63890ae8fc mod_muc_offline_delivery/mod_muc_offline_delivery.lua --- a/mod_muc_offline_delivery/mod_muc_offline_delivery.lua Tue Nov 16 15:08:09 2021 +0000 +++ b/mod_muc_offline_delivery/mod_muc_offline_delivery.lua Tue Nov 16 15:09:52 2021 +0000 @@ -1,15 +1,17 @@ local st = require "util.stanza"; +local default_enable = module:get_option_boolean("muc_offline_delivery_default", false); + module:add_item("muc-registration-field", { name = "offline_delivery"; var = "{http://tigase.org/protocol/muc}offline"; type = "boolean"; label = "Receive messages while not connected to the room"; - value = false; + value = default_enable; }); module:hook("muc-registration-submitted", function (event) - local deliver_offline = event.submitted_data.offline_delivery or nil; + local deliver_offline = event.submitted_data.offline_delivery; event.affiliation_data.offline_delivery = deliver_offline; end); @@ -19,7 +21,8 @@ local room = event.room; for jid, affiliation, data in room:each_affiliation() do --luacheck: ignore 213/affiliation local reserved_nickname = data and data.reserved_nickname; - if reserved_nickname and data.offline_delivery then + local user_setting = data.offline_delivery; + if reserved_nickname and user_setting or (user_setting == nil and default_enable) then local is_absent = not room:get_occupant_by_nick(room.jid.."/"..reserved_nickname); if is_absent then module:log("debug", "Forwarding message to offline member <%s>", jid);