Files
vnctalk-prosody/vnctalk/mod_vnc_e2ehints.lua
T

55 lines
1.2 KiB
Lua

local jid_split = require "util.jid".split;
module:depends"muc";
local function get_e2e(room)
local e2e = room._data.e2e;
if e2e then -- explicitly configured
return e2e;
end
return false;
end
module:hook("muc-config-form", function(event)
local room, form = event.room, event.form;
local re2e = get_e2e(room);
table.insert(form, {
name = "muc#roomconfig_e2e",
type = "boolean",
label = "if the room is E2E ecnrypted",
value = re2e,
});
-- value = get_e2e(room),
end);
module:hook("muc-config-submitted", function(event)
local room, fields, changed = event.room, event.fields, event.changed;
local new = fields["muc#roomconfig_e2e"];
if new ~= get_e2e(room) then
if new == get_e2e(room) then
room._data.e2e = false;
else
room._data.e2e = new;
end
if type(changed) == "table" then
changed["muc#roomconfig_e2e"] = true;
else
event.changed = true;
end
end
end);
module:hook("muc-disco#info", function (event)
local room, form, formdata = event.room, event.form, event.formdata;
local e2e = get_e2e(room);
module:log("info", "got e2e as %s", e2e);
-- if not e2e or e2e == "" then
--return;
-- end
table.insert(form, {
name = "muc#roominfo_e2e",
});
formdata["muc#roominfo_e2e"] = e2e;
end);