From b5b67241e043e9d5e11a5a21f00b9afe7e795282 Mon Sep 17 00:00:00 2001
From: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
Date: Thu, 6 Jan 2022 00:59:40 +0100
Subject: mod_bookmarks: Override the node configuration if it was wrong

---
 plugins/mod_bookmarks.lua | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

(limited to 'plugins')

diff --git a/plugins/mod_bookmarks.lua b/plugins/mod_bookmarks.lua
index a7cf695d..718fc018 100644
--- a/plugins/mod_bookmarks.lua
+++ b/plugins/mod_bookmarks.lua
@@ -176,6 +176,26 @@ local function publish_to_pep(jid, bookmarks, synchronise)
 	else
 		module:log("debug", "Got existing bookmarks2.");
 		bookmarks2 = ret;
+
+		local ok, err = service:get_node_config(namespace, jid);
+		if not ok then
+			module:log("error", "Retrieving bookmarks 2 node config failed: %s", err);
+			return ok, err;
+		end
+
+		local options = err;
+		for key, value in pairs(default_options) do
+			if options[key] and options[key] ~= value then
+				module:log("warn", "Overriding bookmarks 2 configuration for %s, from %s to %s", jid, options[key], value);
+				options[key] = value;
+			end
+		end
+
+		local ok, err = service:set_node_config(namespace, jid, options);
+		if not ok then
+			module:log("error", "Setting bookmarks 2 node config failed: %s", err);
+			return ok, err;
+		end
 	end
 
 	-- Get a list of all items we may want to remove.
-- 
cgit v1.2.3