Mercurial > prosody-modules
annotate mod_muc_reserve_nick_pattern/mod_muc_reserve_nick_pattern.lua @ 5823:220502eb05aa
mod_groups_muc_bookmarks: Sync bookmarks when user is added/removed to/from multi-MUC group
This was overlooked when multi-MUC support was first implemented.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 12 Jan 2024 15:40:23 +0000 |
parents | dc6a10629670 |
children |
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); |