Software /
code /
prosody-modules
Comparison
mod_bookmarks/mod_bookmarks.lua @ 3476:4ce945490a24
mod_bookmarks: Actually save node config
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Wed, 06 Mar 2019 17:46:57 +0100 |
parent | 3473:fd889eb16541 |
child | 3487:e60933722248 |
comparison
equal
deleted
inserted
replaced
3475:820c891a54cc | 3476:4ce945490a24 |
---|---|
123 local function on_node_created(event) | 123 local function on_node_created(event) |
124 local service, node, actor = event.service, event.node, event.actor; | 124 local service, node, actor = event.service, event.node, event.actor; |
125 if node ~= "storage:bookmarks" then | 125 if node ~= "storage:bookmarks" then |
126 return; | 126 return; |
127 end | 127 end |
128 local node_config = service.nodes[node].config; | 128 local ok, config = service:get_node_config(node, actor); |
129 if not ok then | |
130 module:log("error", "Failed to get node config of %s: %s", node, config); | |
131 return; | |
132 end | |
133 local changed = false; | |
129 for config_field, value in pairs(default_options) do | 134 for config_field, value in pairs(default_options) do |
130 node_config[config_field] = value; | 135 if node_config[config_field] ~= value then |
136 node_config[config_field] = value; | |
137 changed = true; | |
138 end | |
139 end | |
140 if not changed then | |
141 return; | |
142 end | |
143 local ok, err = service:set_node_config(node, actor, config); | |
144 if not ok then | |
145 module:log("error", "Failed to set node config of %s: %s", node, err); | |
146 return; | |
131 end | 147 end |
132 end | 148 end |
133 | 149 |
134 module:hook("iq/bare/jabber:iq:private:query", function (event) | 150 module:hook("iq/bare/jabber:iq:private:query", function (event) |
135 if event.stanza.attr.type == "get" then | 151 if event.stanza.attr.type == "get" then |