Mercurial > prosody-modules
comparison mod_bookmarks2/mod_bookmarks2.lua @ 3743:5eab799b5fa4
mod_bookmarks2: Delete legacy PEP bookmarks whenever they get recreated, to prevent them from being used.
| author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
|---|---|
| date | Wed, 13 Nov 2019 16:54:36 +0100 |
| parents | 05bca7a771d6 |
| children | 776eacd233b5 |
comparison
equal
deleted
inserted
replaced
| 3742:05bca7a771d6 | 3743:5eab799b5fa4 |
|---|---|
| 274 local function on_node_created(event) | 274 local function on_node_created(event) |
| 275 local service, node, actor = event.service, event.node, event.actor; | 275 local service, node, actor = event.service, event.node, event.actor; |
| 276 if node ~= "storage:bookmarks" then | 276 if node ~= "storage:bookmarks" then |
| 277 return; | 277 return; |
| 278 end | 278 end |
| 279 local ok, node_config = service:get_node_config(node, actor); | 279 |
| 280 if not ok then | 280 module:log("debug", "Something tried to create legacy PEP bookmarks for %s.", actor); |
| 281 module:log("error", "Failed to get node config of %s: %s", node, node_config); | 281 local ok, err = service:delete("storage:bookmarks", actor); |
| 282 return; | 282 if not ok then |
| 283 end | 283 module:log("error", "Failed to delete legacy PEP bookmarks for %s: %s", actor, err); |
| 284 local changed = false; | 284 end |
| 285 for config_field, value in pairs(default_options) do | 285 module:log("debug", "Legacy PEP bookmarks node of %s deleted.", actor); |
| 286 if node_config[config_field] ~= value then | |
| 287 node_config[config_field] = value; | |
| 288 changed = true; | |
| 289 end | |
| 290 end | |
| 291 if not changed then | |
| 292 return; | |
| 293 end | |
| 294 local ok, err = service:set_node_config(node, actor, node_config); | |
| 295 if not ok then | |
| 296 module:log("error", "Failed to set node config of %s: %s", node, err); | |
| 297 return; | |
| 298 end | |
| 299 end | 286 end |
| 300 | 287 |
| 301 module:hook("iq/bare/jabber:iq:private:query", function (event) | 288 module:hook("iq/bare/jabber:iq:private:query", function (event) |
| 302 if event.stanza.attr.type == "get" then | 289 if event.stanza.attr.type == "get" then |
| 303 return on_retrieve_private_xml(event); | 290 return on_retrieve_private_xml(event); |
