annotate mod_default_bookmarks/mod_default_bookmarks.lua @ 5416:2393dbae51ed

mod_http_oauth2: Add option for specifying TTL of registered clients Meant to simplify configuration, since TTL vs ignoring expiration is expected to be the main thing one would want to configure. Unsure what the implications of having unlimited lifetime of clients are, given no way to revoke them currently, short of rotating the signing secret. On one hand, it would be annoying to have the client expire. On the other hand, it is trivial to re-register it.
author Kim Alvefur <zash@zash.se>
date Thu, 04 May 2023 18:41:33 +0200
parents 8f77452abc59
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
479
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Prosody IM
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 -- Copyright (C) 2008-2010 Matthew Wild
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 -- Copyright (C) 2008-2010 Waqas Hussain
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 -- Copyright (C) 2011 Kim Alvefur
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
5 -- Copyright (C) 2018 Emmanuel Gil Peyrot
1343
7dbde05b48a9 all the things: Remove trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 1325
diff changeset
6 --
479
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 -- This project is MIT/X11 licensed. Please see the
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 -- COPYING file in the source package for more information.
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 --
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local st = require "util.stanza"
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local dm_load = require "util.datamanager".load
4860
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
13 local jid = require "util.jid"
479
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
15 -- COMPAT w/trunk
4857
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
16 local mod_bookmarks_available = false;
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
17 local mm = require "core.modulemanager";
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
18 if mm.get_modules_for_host then
4857
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
19 local host_modules = mm.get_modules_for_host(module.host);
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
20 if host_modules:contains("bookmarks") then
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
21 mod_bookmarks_available = "bookmarks";
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
22 elseif host_modules:contains("bookmarks2") then
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
23 mod_bookmarks_available = "bookmarks2";
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
24 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
25 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
26
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
27 local function get_default_bookmarks(nickname)
4860
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
28 local bookmarks = module:get_option_array("default_bookmarks");
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
29 if not bookmarks or #bookmarks == 0 then
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
30 return false;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
31 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
32 local reply = st.stanza("storage", { xmlns = "storage:bookmarks" });
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
33 local nick = nickname and st.stanza("nick"):text(nickname);
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
34 for _, bookmark in ipairs(bookmarks) do
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
35 if type(bookmark) ~= "table" then -- assume it's only a jid
4860
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
36 bookmark = { jid = bookmark, name = jid.split(bookmark) };
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
37 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
38 reply:tag("conference", {
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
39 jid = bookmark.jid,
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
40 name = bookmark.name,
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
41 autojoin = "1",
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
42 });
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
43 if nick then
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
44 reply:add_child(nick):up();
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
45 end
3237
420ebea00cf3 mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3236
diff changeset
46 if bookmark.password then
420ebea00cf3 mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3236
diff changeset
47 reply:tag("password"):text(bookmark.password):up();
420ebea00cf3 mod_default_bookmarks: Add support for <password/>.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3236
diff changeset
48 end
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
49 reply:up();
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
50 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
51 return reply;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
52 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
53
4857
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
54 if mod_bookmarks_available then
3f6711c1c66a mod_default_bookmarks: Use whichever of mod_bookmarks and mod_bookmarks2 is enabled
Kim Alvefur <zash@zash.se>
parents: 4856
diff changeset
55 local mod_bookmarks = module:depends(mod_bookmarks_available);
4864
62006f4022e9 mod_default_bookmarks: Silence warning when probing for mod_bookmarks version
Kim Alvefur <zash@zash.se>
parents: 4860
diff changeset
56 if rawget(mod_bookmarks, "publish_to_pep") then
4858
727f147aac4d mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents: 4857
diff changeset
57 local function on_bookmarks_empty(event)
727f147aac4d mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents: 4857
diff changeset
58 local session = event.session;
4856
b3f0f82af5a2 mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents: 4854
diff changeset
59 local bookmarks = get_default_bookmarks(session.username);
b3f0f82af5a2 mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents: 4854
diff changeset
60 if bookmarks then
b3f0f82af5a2 mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents: 4854
diff changeset
61 mod_bookmarks.publish_to_pep(session.full_jid, bookmarks);
b3f0f82af5a2 mod_default_bookmarks: Fix mod_bookmarks capability check
Kim Alvefur <zash@zash.se>
parents: 4854
diff changeset
62 end
479
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63 end
4858
727f147aac4d mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents: 4857
diff changeset
64 module:hook("bookmarks/empty", on_bookmarks_empty);
727f147aac4d mod_default_bookmarks: Minor refactor to do some checks earlier
Kim Alvefur <zash@zash.se>
parents: 4857
diff changeset
65 else
4859
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
66 local mod_pep = module:depends "pep";
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
67
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
68 local function publish_bookmarks2(event)
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
69 local session = event.session;
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
70 local publish_options = {
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
71 ["persist_items"] = true;
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
72 ["max_items"] = "max";
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
73 ["send_last_published_item"] = "never";
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
74 ["access_model"] = "whitelist";
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
75 }
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
76 if not pcall(mod_pep.check_node_config, nil, nil, publish_options) then
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
77 -- 0.11 or earlier not supporting max_items="max" trows an error here
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
78 module:log("debug", "Setting max_items=pep_max_items because 'max' is not supported in this version");
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
79 publish_options["max_items"] = module:get_option_number("pep_max_items", 256);
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
80 end
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
81 local service = mod_pep.get_pep_service(session.username);
4860
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
82 local bookmarks = module:get_option_array("default_bookmarks");
4978
4c8b66da4dec mod_default_bookmarks: Bail on empty 'default_bookmarks' to fix traceback
Kim Alvefur <zash@zash.se>
parents: 4864
diff changeset
83 if not bookmarks or #bookmarks == 0 then
4c8b66da4dec mod_default_bookmarks: Bail on empty 'default_bookmarks' to fix traceback
Kim Alvefur <zash@zash.se>
parents: 4864
diff changeset
84 return;
4c8b66da4dec mod_default_bookmarks: Bail on empty 'default_bookmarks' to fix traceback
Kim Alvefur <zash@zash.se>
parents: 4864
diff changeset
85 end
4859
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
86 local ns = event.version or "urn:xmpp:bookmarks:1";
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
87 for i, bookmark in ipairs(bookmarks) do
4979
8f77452abc59 mod_default_bookmarks: Fix support for array of string config in bookmarks 2 part (thanks Menel)
Kim Alvefur <zash@zash.se>
parents: 4978
diff changeset
88 if type(bookmark) ~= "table" then -- assume it's only a jid
8f77452abc59 mod_default_bookmarks: Fix support for array of string config in bookmarks 2 part (thanks Menel)
Kim Alvefur <zash@zash.se>
parents: 4978
diff changeset
89 bookmark = { jid = bookmark, name = jid.split(bookmark) };
8f77452abc59 mod_default_bookmarks: Fix support for array of string config in bookmarks 2 part (thanks Menel)
Kim Alvefur <zash@zash.se>
parents: 4978
diff changeset
90 end
4860
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
91 local bm_jid = jid.prep(bookmark.jid);
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
92 if not bm_jid then
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
93 module:log("error", "Invalid JID in default_bookmarks[%d].jid = %q", i, bookmark.jid);
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
94 else
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
95 local item = st.stanza("item", { xmlns = "http://jabber.org/protocol/pubsub"; id = bm_jid });
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
96 item:tag("conference", { xmlns = ns; name = bookmark.name; autojoin = bookmark.autojoin and "true" or nil });
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
97 if bookmark.nick then item:text_tag("nick", bookmarks.nick); end
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
98 if bookmark.password then item:text_tag("password", bookmarks.password); end
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
99 local ok, err = service:publish("urn:xmpp:bookmarks:1", session.full_jid, bm_jid, item, publish_options);
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
100 if not ok then
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
101 module:log("error", "Could not add default bookmark %s to %s: %s", bm_jid, session.username, err);
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
102 end
4a34ed2bb9a2 mod_default_bookmarks: Improve validation
Kim Alvefur <zash@zash.se>
parents: 4859
diff changeset
103 end
4859
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
104 end
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
105 end
33208c3ae586 mod_default_bookmarks: Add support for XEP-0402 via mod_bookmarks(2)
Kim Alvefur <zash@zash.se>
parents: 4858
diff changeset
106 module:hook("bookmarks/empty", publish_bookmarks2);
479
597c872d691e mod_default_bookmarks: Serve a list of default bookmarks if the user has nil.
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 end
3236
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
108 else
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
109 local function on_private_xml_get(event)
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
110 local origin, stanza = event.origin, event.stanza;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
111 local tag = stanza.tags[1].tags[1];
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
112 local key = tag.name..":"..tag.attr.xmlns;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
113 if key ~= "storage:storage:bookmarks" then
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
114 return;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
115 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
116
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
117 local data, err = dm_load(origin.username, origin.host, "private");
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
118 if data and data[key] then
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
119 return;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
120 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
121
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
122 local bookmarks = get_default_bookmarks(origin.username);
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
123 if not bookmarks then
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
124 return;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
125 end;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
126
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
127 local reply = st.reply(stanza):tag("query", { xmlns = "jabber:iq:private" })
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
128 :add_child(bookmarks);
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
129 origin.send(reply);
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
130 return true;
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
131 end
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
132 module:hook("iq-get/self/jabber:iq:private:query", on_private_xml_get, 1);
73906187f964 mod_default_bookmarks: Add support for trunk’s mod_pep.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 1343
diff changeset
133 end