Diff

mod_muc_log/mod_muc_log.lua @ 1544:814398c7139b

mod_muc_log: Add option to log rooms by default unless changed in room config
author Kim Alvefur <zash@zash.se>
date Mon, 03 Nov 2014 20:37:33 +0100
parent 1450:5107278268ae
child 1567:585bb8ac11bb
line wrap: on
line diff
--- a/mod_muc_log/mod_muc_log.lua	Thu Oct 30 12:43:00 2014 +0100
+++ b/mod_muc_log/mod_muc_log.lua	Mon Nov 03 20:37:33 2014 +0100
@@ -12,6 +12,7 @@
 local datastore = "muc_log";
 local muc_form_config_option = "muc#roomconfig_enablelogging"
 
+local log_by_default = module:get_option_boolean("muc_log_by_default", false);
 local log_presences = module:get_option_boolean("muc_log_presences", true);
 
 -- Module Definitions
@@ -33,6 +34,14 @@
 	end
 end
 
+local function logging_enabled(room)
+	local enabled = room._data.logging;
+	if enabled == nil then
+		return log_by_default;
+	end
+	return enabled;
+end
+
 function log_if_needed(event)
 	local stanza = event.stanza;
 
@@ -56,7 +65,7 @@
 				if room._data.hidden then -- do not log any data of private rooms
 					return;
 				end
-				if not room._data.logging then -- do not log where logging is not enabled
+				if not logging_enabled(room) then -- do not log where logging is not enabled
 					return;
 				end
 
@@ -129,7 +138,7 @@
 		name = muc_form_config_option,
 		type = "boolean",
 		label = "Enable Logging?",
-		value = room._data.logging or false,
+		value = logging_enabled(room),
 	}
 	);
 end);