mod_muc_reserve_nick_pattern/mod_muc_reserve_nick_pattern.lua
author Kim Alvefur <zash@zash.se>
Wed, 24 Jan 2024 17:55:26 +0100
changeset 5834 b109773ce6fe
parent 5176 dc6a10629670
permissions -rw-r--r--
mod_http_oauth2: Reuse JWT issuance time as substitute for auth time Makes the token shorter. Since iat and auth_time are generated at about the same time they would only differ by a few microseconds anyway.
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);