comparison mod_vjud/mod_vjud.lua @ 882:4939788a47ea

mod_vjud: Disallow searching from remote hosts by default in search-all-users mode
author Kim Alvefur <zash@zash.se>
date Sun, 16 Dec 2012 12:51:34 +0100
parents 4b06d6c79b15
children b1a92a87309c
comparison
equal deleted inserted replaced
881:4b06d6c79b15 882:4939788a47ea
29 <email>{email}</email> 29 <email>{email}</email>
30 </item> 30 </item>
31 ]]; 31 ]];
32 32
33 local search_mode = module:get_option_string("vjud_mode", "opt-in"); 33 local search_mode = module:get_option_string("vjud_mode", "opt-in");
34 local allow_remote = module:get_option_boolean("allow_remote_searches", search_mode ~= "all");
34 local base_host = module:get_option_string("vjud_search_domain", 35 local base_host = module:get_option_string("vjud_search_domain",
35 module:get_host_type() == "component" 36 module:get_host_type() == "component"
36 and module.host:gsub("^[^.]+%.","") 37 and module.host:gsub("^[^.]+%.","")
37 or module.host); 38 or module.host);
38 39
65 66
66 local users; -- The user iterator 67 local users; -- The user iterator
67 68
68 module:hook("iq/host/jabber:iq:search:query", function(event) 69 module:hook("iq/host/jabber:iq:search:query", function(event)
69 local origin, stanza = event.origin, event.stanza; 70 local origin, stanza = event.origin, event.stanza;
71
72 if not (allow_remote or origin.type == "c2s") then
73 origin.send(st.error_reply(stanza, "cancel", "not-allowed"))
74 return true;
75 end
70 76
71 if stanza.attr.type == "get" then 77 if stanza.attr.type == "get" then
72 origin.send(st.reply(stanza):add_child(get_reply)); 78 origin.send(st.reply(stanza):add_child(get_reply));
73 else -- type == "set" 79 else -- type == "set"
74 local query = stanza.tags[1]; 80 local query = stanza.tags[1];