annotate mod_muc_reserve_nick_pattern/mod_muc_reserve_nick_pattern.lua @ 6208:303fcfe3a7e8

mod_conversejs: Make PWA options match documentation Keeps fallback to `name` because this is a common option used by e.g. mod_disco to give a descriptive name for the server itself, which seems a sensible default.
author Kim Alvefur <zash@zash.se>
date Sun, 20 Apr 2025 13:37:15 +0200
parents dc6a10629670
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5172
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
1 local jid = require "util.jid";
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
2 local st = require "util.stanza";
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
3
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
4 local nick_patterns = module:get_option_array("muc_reserve_nick_patterns", {});
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
5
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
6 module:hook("muc-occupant-pre-join", function (event)
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
7 local nick = jid.resource(event.occupant.nick);
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
8 for k, nick_pattern in pairs(nick_patterns) do
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
9 if nick:match(nick_pattern) then
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
10 local reply = st.error_reply(event.stanza, "modify", "conflict", "Unacceptable nickname, please try another");
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
11 module:send(reply);
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
12 return true;
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
13 end
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
14 end
dc6a10629670 New module, mod_muc_reserve_nick_pattern
Stephen Paul Weber <singpolyma@singpolyma.net>
parents:
diff changeset
15 end);