mod_blocklist: Return early from migration if no valid privacy list data is found
authorKim Alvefur <zash@zash.se>
Mon, 05 Dec 2016 17:22:12 +0100
changeset 7775 752697d68fda
parent 7774 2b288dab781a
child 7776 7fd26815fcf6
mod_blocklist: Return early from migration if no valid privacy list data is found
plugins/mod_blocklist.lua
--- a/plugins/mod_blocklist.lua	Thu Dec 08 18:13:56 2016 +0100
+++ b/plugins/mod_blocklist.lua	Mon Dec 05 17:22:12 2016 +0100
@@ -54,14 +54,13 @@
 
 -- Migrates from the old mod_privacy storage
 local function migrate_privacy_list(username)
+	local legacy_data = module:open_store("privacy"):get(username);
+	if not legacy_data or not legacy_data.lists or not legacy_data.default then return; end
+	local default_list = legacy_data.lists[legacy_data.default];
+	if not default_list or not default_list.items then return; end
+
 	local migrated_data = { [false] = { created = os.time(); migrated = "privacy" }};
-	local legacy_data = module:open_store("privacy"):get(username);
-	if legacy_data and legacy_data.lists and legacy_data.default then
-		legacy_data = legacy_data.lists[legacy_data.default];
-		legacy_data = legacy_data and legacy_data.items;
-	else
-		return migrated_data;
-	end
+
 	if legacy_data then
 		module:log("info", "Migrating blocklist from mod_privacy storage for user '%s'", username);
 		local item, jid;
@@ -94,6 +93,9 @@
 		if not blocklist then
 			blocklist = migrate_privacy_list(username);
 		end
+		if not blocklist then
+			blocklist = { [false] = { created = os.time(); }; };
+		end
 		cache2:set(username, blocklist);
 	end
 	cache[username] = blocklist;