Software / code / prosody-modules
File
mod_readonly/mod_readonly.lua @ 6310:30adcea825c3
mod_conversejs: Fix hostname set as default username (thanks roughnecks)
In login mode, it seems jid is used as default value in the login field
but it was only needed in anonymous mode.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 18 Jun 2025 14:28:38 +0200 |
| parent | 3270:7776c9dc5f37 |
line wrap: on
line source
local st = require "util.stanza"; local stores = module:get_option("readonly_stores", { vcard = { "vcard-temp", "vCard" }; }); local namespaces = {}; for name, namespace in pairs(stores) do namespaces[table.concat(namespace, ":")] = name; end local function prevent_write(event) local stanza = event.stanza; local xmlns_and_tag = stanza.tags[1].attr.xmlns..":"..stanza.tags[1].name; local store_name = namespaces[xmlns_and_tag]; if store_name then module:log("warn", "Preventing modification of %s store by %s", store_name, stanza.attr.from); event.origin.send(st.error_reply(stanza, "cancel", "not-allowed", store_name.." data is read-only")); return true; -- Block stanza end end for namespace in pairs(namespaces) do module:hook("iq-set/bare/"..namespace, prevent_write, 200); end