mod_muc_reserve_nick_pattern/mod_muc_reserve_nick_pattern.lua
author Matthew Wild <mwild1@gmail.com>
Tue, 16 Apr 2024 15:01:40 +0100
changeset 5892 432efc39572f
parent 5176 dc6a10629670
permissions -rw-r--r--
mod_http_admin_api: Return roles for existing invites, if any
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5176
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);