diff mod_muc_log/mod_muc_log.lua @ 80:bed9a6b40fae

mod_proxy65: basic white list - access control list
author Thilo Cestonaro <thilo@cestona.ro>
date Sun, 01 Nov 2009 16:42:04 +0100
parents 0dfd65bfedb0
children 9ceeab822e40
line wrap: on
line diff
--- a/mod_muc_log/mod_muc_log.lua	Sun Nov 01 14:37:28 2009 +0100
+++ b/mod_muc_log/mod_muc_log.lua	Sun Nov 01 16:42:04 2009 +0100
@@ -13,6 +13,8 @@
 local data_load, data_store, data_getpath = datamanager.load, datamanager.store, datamanager.getpath;
 local datastore = "muc_log";
 local config = {};
+local verifyAuthRequest = module:require "verifyhttpauth".verifyHttpAuthRequest;
+
 
 
 --[[ LuaFileSystem 
@@ -421,7 +423,7 @@
 		return generateDayListSiteContentByRoom(bareRoomJid); -- fallback
 	end
 end
-
+local requests = {};
 function handle_request(method, body, request)
 	local query = splitQuery(request.url.query);
 	local node, host = grepRoomJid(request.url.path);
@@ -437,7 +439,17 @@
 				if room._data ~= nil and room._data.subject ~= nil then
 					subject = room._data.subject;
 				end
-				return createDoc(parseDay(bare, subject, query));
+				local doc = createDoc(parseDay(bare, subject, query));
+				local id = "thisIsTheId";
+				requests[id] = request;
+				requests[id].doc = doc;
+				
+				verifyAuthRequest(request.url.path .. "?" .. request.url.query, "thilo@cestona.ro", id, function (id, confirmed)
+					if confirmed and requests[id] then
+						requests[id].send(requests[id].doc);
+					end
+				end)
+				return true;
 			end
 		else
 			return createDoc(generateRoomListSiteContent());
@@ -448,7 +460,7 @@
 	return;
 end
 
-config = config_get(module:get_host(), "core", "muc_log");
+config = config_get(module:get_host(), "core", "muc_log") or {};
 
 httpserver.new_from_config({ config.http_port or true }, handle_request, { base = "muc_log" });