Software /
code /
prosody-modules
Comparison
mod_block_strangers/mod_block_strangers.lua @ 1325:b21236b6b8d8
Backed out changeset 853a382c9bd6
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 28 Feb 2014 15:37:55 +0100 |
parent | 1324:853a382c9bd6 |
child | 1928:252b634b065d |
comparison
equal
deleted
inserted
replaced
1324:853a382c9bd6 | 1325:b21236b6b8d8 |
---|---|
1 | 1 |
2 local jid_split = require "util.jid".split; | 2 local jid_split = require "util.jid".split; |
3 local jid_bare = require "util.jid".bare; | 3 local jid_bare = require "util.jid".bare; |
4 local is_contact_subscribed = require "core.rostermanager".is_contact_subscribed; | 4 local is_contact_subscribed = require "core.rostermanager".is_contact_subscribed; |
5 local error_reply = require "util.stanza".error_reply; | |
6 | 5 |
7 function check_subscribed(event) | 6 function check_subscribed(event) |
8 local stanza = event.stanza; | 7 local stanza = event.stanza; |
9 local to_user, to_host, to_resource = jid_split(stanza.attr.to); | 8 local to_user, to_host, to_resource = jid_split(stanza.attr.to); |
10 local from_jid = jid_bare(stanza.attr.from); | 9 local from_jid = jid_bare(stanza.attr.from); |
11 if to_user and not is_contact_subscribed(to_user, to_host, from_jid) then | 10 if to_user and not is_contact_subscribed(to_user, to_host, from_jid) then |
12 if to_resource and stanza.attr.type == "groupchat" then | 11 if to_resource and stanza.attr.type == "groupchat" then |
13 return nil; -- Pass through | 12 return nil; -- Pass through |
14 end | 13 end |
15 return error_reply("auth", "forbidden", "Subscription required"); -- Bounce with error | 14 return true; -- Drop stanza |
16 end | 15 end |
17 end | 16 end |
18 | 17 |
19 module:hook("message/bare", check_subscribed, 200); | 18 module:hook("message/bare", check_subscribed, 200); |
20 module:hook("message/full", check_subscribed, 200); | 19 module:hook("message/full", check_subscribed, 200); |