File

mod_muc_restrict_nick/mod_muc_restrict_nick.lua @ 4832:bfd4af4caddc

mod_password_policy: Support for additional policies provided by other modules E.g. check a password contains an uppercase character: module:provides("password-policy", { name = "contains_uppercase"; check_password = function (password, policy) return (policy ~= true) or (not not password:match("%u")); end; }) Config: password_policy = { contains_uppercase = true; }
author Matthew Wild <mwild1@gmail.com>
date Wed, 22 Dec 2021 14:48:46 +0000
parent 4588:e7b126161e7b
line wrap: on
line source

local jid = require "util.jid";
local st = require "util.stanza";

local nick_pattern = module:get_option_string("muc_restrict_nick_pattern", "^%w+$");

module:hook("muc-occupant-pre-join", function (event)
	local nick = jid.resource(event.occupant.nick);
	if not nick:match(nick_pattern) then
		local reply = st.error_reply(event.stanza, "modify", "policy-violation", "Unacceptable nickname, please try another");
		module:send(reply);
		return true;
	end
end);