view mod_require_otr/mod_require_otr.lua @ 5518:d87d0e4a8516

mod_http_oauth2: Validate the OpenID 'prompt' parameter Without support for affecting the login and consent procedure, it seems sensible to inform the client that they can't change anything with this parameter.
author Kim Alvefur <zash@zash.se>
date Mon, 05 Jun 2023 22:19:17 +0200
parents dfe1818962f5
children
line wrap: on
line source

local st = require "util.stanza";
local block_groupchat = module:get_option_boolean("otr_block_groupchat", false);

function reject_plaintext_messages(event)
    local body = event.stanza:get_child_text("body");
    if body and body:sub(1,4) ~= "?OTR" or (not block_groupchat and event.stanza.attr.type == "groupchat") then
        return event.origin.send(st.error_reply(event.stanza, "modify", "policy-violation", "OTR encryption is required for conversations on this server"));
    end
end

module:hook("pre-message/bare", reject_plaintext_messages, 300);
module:hook("pre-message/full", reject_plaintext_messages, 300);
module:hook("pre-message/host", reject_plaintext_messages, 300);