Mercurial > prosody-hg
view plugins/mod_watchregistrations.lua @ 13888:0dd82a8f1913 13.0 13.0.2
MUC: Ensure allow MUC PM setting has valid value (fixes #1933)
In case allow PM is set to "affiliated" or something other than a valid
role name, but the user is not affiliated, the valid_roles lookup would
return nil, triggering a comparison error.
This ensures that the setting is validated going in and out of the
database and that the "affiliated" case proceeds correctly.
Also adds a compat mapping for the value "anyone", used in XEP-0045 and
submitted by default by Gajim.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 25 May 2025 15:36:17 +0200 |
| parents | 173038306750 |
| children |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2010 Matthew Wild -- Copyright (C) 2008-2010 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local host = module:get_host(); local jid_prep = require "prosody.util.jid".prep; local registration_watchers = module:get_option_set("registration_watchers", module:get_option("admins", {})) / jid_prep; local registration_from = module:get_option_string("registration_from", host); local registration_notification = module:get_option_string("registration_notification", "User $username just registered on $host from $ip"); local msg_type = module:get_option_enum("registration_notification_type", "chat", "normal", "headline"); local st = require "prosody.util.stanza"; module:hook("user-registered", function (user) module:log("debug", "Notifying of new registration"); local message = st.message{ type = msg_type, from = registration_from } :tag("body") :text(registration_notification:gsub("%$(%w+)", function (v) return user[v] or user.session and user.session[v] or nil; end)) :up(); for jid in registration_watchers do module:log("debug", "Notifying %s", jid); message.attr.to = jid; module:send(message); end end);
