Mercurial > prosody-modules
changeset 409:df57fa689415
mod_register_url: code refactor, clean, all the rest (thanks Zash ;))
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Tue, 30 Aug 2011 23:12:56 +0000 |
parents | ee28af887507 |
children | abac17cb5032 |
files | mod_register_url/mod_register_url.lua |
diffstat | 1 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_register_url/mod_register_url.lua Tue Aug 30 21:22:47 2011 +0000 +++ b/mod_register_url/mod_register_url.lua Tue Aug 30 23:12:56 2011 +0000 @@ -5,6 +5,7 @@ local st = require "util.stanza"; function reg_redirect(event) + local stanza, origin = event.stanza, event.origin; local ip_wl = module:get_option("registration_whitelist") or { "127.0.0.1" }; local url = module:get_option("registration_url"); local no_wl = module:get_option_boolean("no_registration_whitelist", false); @@ -12,19 +13,22 @@ if not no_wl then for i,ip in ipairs(ip_wl) do - if event.origin.ip == ip then test_ip = true; end + if origin.ip == ip then test_ip = true; end break; end end - if not test_ip and url ~= nil or no_wl and url ~= nil then + if stanza.attr.type == "get" then local reply = st.reply(event.stanza); - reply:tag("query", {xmlns = "jabber:iq:register"}) + reply:query("jabber:iq:register") :tag("instructions"):text("Please visit "..url.." to register an account on this server."):up() - :tag("x", {xmlns = "jabber:x:oob"}):up() - :tag("url"):text(url):up(); - event.origin.send(reply); + :tag("x", {xmlns = "jabber:x:oob"}) + :tag("url"):text(url); + origin.send(reply); return true; + else + origin.send(st.error_reply(stanza, "cancel", "not-authorized")) + return true end end