Mercurial > prosody-modules
comparison mod_block_outgoing/mod_block_outgoing.lua @ 2004:41fd55eba4a8
mod_block_outgoing: Module to block outgoing stanzas from users
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 13 Jan 2016 14:26:44 +0000 |
parents | |
children | c769ed3e5b2b |
comparison
equal
deleted
inserted
replaced
2003:8ccf347c7753 | 2004:41fd55eba4a8 |
---|---|
1 -- Module to block all outgoing stanzas from a list of users | |
2 | |
3 local jid_bare = require "util.jid".bare; | |
4 | |
5 local block_users = module:get_option_set("block_outgoing_users", {}); | |
6 local block_all = block_users:empty(); | |
7 | |
8 local stanza_types = { "iq", "presence", "message" }; | |
9 local jid_types = { "host", "bare", "full" }; | |
10 | |
11 local function block_stanza(event) | |
12 local stanza = event.stanza; | |
13 if stanza.attr.to == nil then | |
14 return; | |
15 end | |
16 if block_all or block_users:contains(jid_bare(stanza.attr.from)) then | |
17 module:log("debug", "Blocked outgoing %s stanza from %s", stanza.name, stanza.attr.from); | |
18 return true; | |
19 end | |
20 end | |
21 | |
22 function module.load() | |
23 for _, stanza_type in ipairs(stanza_types) do | |
24 for _, jid_type in ipairs(jid_types) do | |
25 module:hook("pre-"..stanza_type.."/"..jid_type, block_stanza, 10000); | |
26 end | |
27 end | |
28 end |