diff mod_regredirect/mod_regredirect.lua @ 112:d1168a454107

mod_regredirect: initial commit.
author Marco Cirillo <maranda@lightwitch.org>
date Wed, 30 Dec 2009 00:24:24 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_regredirect/mod_regredirect.lua	Wed Dec 30 00:24:24 2009 +0000
@@ -0,0 +1,28 @@
+-- Registration Redirect module for Prosody
+-- 
+-- Redirects IP addresses not in the whitelist to a web page to complete the registration.
+
+local st = require "util.stanza";
+
+function reg_redirect(event)
+	local ip_wl = module:get_option("registration_whitelist") or { "127.0.0.1" };
+	local url = module:get_option("registration_url");
+	local test_ip;
+
+	for i,ip in ipairs(ip_wl) do 
+		if event.origin.ip == ip then test_ip = true; end
+		break; 
+	end
+	
+	if not test_ip and url ~= nil then
+		local reply = st.reply(event.stanza);
+		reply:tag("query", {xmlns = "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);
+		return true;
+	end
+end
+
+module:hook("stanza/iq/jabber:iq:register:query", reg_redirect, 10);