Mercurial > prosody-modules
comparison mod_register_redirect/mod_register_redirect.lua @ 442:761b7e1bb7ab
mod_register_redirect: few mistake fixes to make it work.
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Thu, 22 Sep 2011 16:04:38 +0000 |
parents | bfc8bc7d77f3 |
children | 7679b8f6b886 |
comparison
equal
deleted
inserted
replaced
441:bfc8bc7d77f3 | 442:761b7e1bb7ab |
---|---|
6 local cman = require "core.configmanager"; | 6 local cman = require "core.configmanager"; |
7 | 7 |
8 function reg_redirect(event) | 8 function reg_redirect(event) |
9 local stanza, origin = event.stanza, event.origin; | 9 local stanza, origin = event.stanza, event.origin; |
10 local ip_wl = module:get_option("registration_whitelist") or { "127.0.0.1" }; | 10 local ip_wl = module:get_option("registration_whitelist") or { "127.0.0.1" }; |
11 local url = module:get_option_string("registration_url" or nil); | 11 local url = module:get_option_string("registration_url", nil); |
12 local inst_text = module:get_option_string("registration_text" or nil); | 12 local inst_text = module:get_option_string("registration_text", nil); |
13 local oob = module:get_option_boolean("registration_oob" or true); | 13 local oob = module:get_option_boolean("registration_oob", true); |
14 local admins_g = cman.get("*", core, "admins"); | 14 local admins_g = cman.get("*", "core", "admins"); |
15 local admins_l = cman.get(module:get_host(), core, "admins"); | 15 local admins_l = cman.get(module:get_host(), "core", "admins"); |
16 local no_wl = module:get_option_boolean("no_registration_whitelist", false); | 16 local no_wl = module:get_option_boolean("no_registration_whitelist", false); |
17 local test_ip = false; | 17 local test_ip = false; |
18 | 18 |
19 if type(admins_g) ~= "table" then admins_g = nil; end | 19 if type(admins_g) ~= "table" then admins_g = nil; end |
20 if type(admins_l) ~= "table" then admins_g = nil; end | 20 if type(admins_l) ~= "table" then admins_l = nil; end |
21 | 21 |
22 -- perform checks to set default responses and sanity checks. | 22 -- perform checks to set default responses and sanity checks. |
23 if not inst_text then | 23 if not inst_text then |
24 if url and oob then | 24 if url and oob then |
25 if url:match("^%w+[:].*$") then | 25 if url:match("^%w+[:].*$") then |
26 if url:match("^(%w+)[:].*$") == "http" or url:match("^(%w+)[:].*$") == "https" then | 26 if url:match("^(%w+)[:].*$") == "http" or url:match("^(%w+)[:].*$") == "https" then |
27 inst_text = "Please visit "..url.." to register an account on this server." | 27 inst_text = "Please visit "..url.." to register an account on this server." |
28 elseif url:match("^(%w+)[:].*$") == "mailto" then | 28 elseif url:match("^(%w+)[:].*$") == "mailto" then |
29 inst_text = "Please send an e-mail at "..url:match("^%w+[:](.*)$").." to register an account on this server." | 29 inst_text = "Please send an e-mail at "..url:match("^%w+[:](.*)$").." to register an account on this server." |
30 elseif url:match("^(%w+)[:].*$") == "xmpp" then | 30 elseif url:match("^(%w+)[:].*$") == "xmpp" then |
31 inst_text = "Please contact "..module:get_host().." server administrator via xmpp to register an account on this server at: "..url:match("^%w+[:](.*)$") | 31 inst_text = "Please contact "..module:get_host().."'s server administrator via xmpp to register an account on this server at: "..url:match("^%w+[:](.*)$") |
32 else | 32 else |
33 module:log("error", "This module supports only http/https, mailto or xmpp as URL formats.") | 33 module:log("error", "This module supports only http/https, mailto or xmpp as URL formats.") |
34 module:log("error", "If you want to use personalized instructions without an Out-Of-Band method,") | 34 module:log("error", "If you want to use personalized instructions without an Out-Of-Band method,") |
35 module:log("error", "specify: register_oob = false; -- in your configuration along your banner string (register_text).") | 35 module:log("error", "specify: register_oob = false; -- in your configuration along your banner string (register_text).") |
36 origin.send(st.error_reply(stanza, "wait", "internal-server-error")); return true -- bouncing request. | 36 origin.send(st.error_reply(stanza, "wait", "internal-server-error")); return true -- bouncing request. |
40 origin.send(st.error_reply(stanza, "wait", "internal-server-error")); return true -- bouncing request. | 40 origin.send(st.error_reply(stanza, "wait", "internal-server-error")); return true -- bouncing request. |
41 end | 41 end |
42 else | 42 else |
43 if admins_l then | 43 if admins_l then |
44 local ajid; for _,v in ipairs(admins_l) do ajid = v; break; end | 44 local ajid; for _,v in ipairs(admins_l) do ajid = v; break; end |
45 inst_text = "Please contact "..module:get_host().." server administrator via xmpp to register an account on this server at: "..ajid | 45 inst_text = "Please contact "..module:get_host().."'s server administrator via xmpp to register an account on this server at: "..ajid |
46 else | 46 else |
47 if admins_g then | 47 if admins_g then |
48 local ajid; for _,v in ipairs(admins_g) do ajid = v; break; end | 48 local ajid; for _,v in ipairs(admins_g) do ajid = v; break; end |
49 inst_text = "Please contact "..module:get_host().." server administrator via xmpp to register an account on this server at: "..ajid | 49 inst_text = "Please contact "..module:get_host().."'s server administrator via xmpp to register an account on this server at: "..ajid |
50 else | 50 else |
51 module:log("error", "Please be sure to, _at the very least_, configure one server administrator either global or hostwise...") | 51 module:log("error", "Please be sure to, _at the very least_, configure one server administrator either global or hostwise...") |
52 module:log("error", "if you want to use this module, or read it's configuration wiki at: http://code.google.com/p/prosody-modules/wiki/mod_register_redirect") | 52 module:log("error", "if you want to use this module, or read it's configuration wiki at: http://code.google.com/p/prosody-modules/wiki/mod_register_redirect") |
53 origin.send(st.error_reply(stanza, "wait", "internal-server-error")) -- bouncing request. | 53 origin.send(st.error_reply(stanza, "wait", "internal-server-error")) -- bouncing request. |
54 return true; | 54 return true; |