Software /
code /
prosody
Annotate
plugins/mod_pubsub/mod_pubsub.lua @ 8946:3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
The ‘item’ argument is optional, so it needs to handle it not being
included, or util.stanza will throw an error in add_child
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 28 Jun 2018 01:46:28 +0200 |
parent | 8815:5974c9da1391 |
child | 8957:21ae6cb20dcf |
rev | line source |
---|---|
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
1 local pubsub = require "util.pubsub"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
2 local st = require "util.stanza"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
3 local jid_bare = require "util.jid".bare; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
4 local usermanager = require "core.usermanager"; |
8811
f2d35eee69c9
mod_pubsub: Set an id attribute on outgoing event messages
Kim Alvefur <zash@zash.se>
parents:
8808
diff
changeset
|
5 local new_id = require "util.id".medium; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
6 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
7 local xmlns_pubsub = "http://jabber.org/protocol/pubsub"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
8 local xmlns_pubsub_event = "http://jabber.org/protocol/pubsub#event"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
9 local xmlns_pubsub_owner = "http://jabber.org/protocol/pubsub#owner"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
10 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
11 local autocreate_on_publish = module:get_option_boolean("autocreate_on_publish", false); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
12 local autocreate_on_subscribe = module:get_option_boolean("autocreate_on_subscribe", false); |
7983
879be73c0a58
mod_pubsub: Fix syntax error introduced in 241f02bd66ce
Matthew Wild <mwild1@gmail.com>
parents:
7980
diff
changeset
|
13 local pubsub_disco_name = module:get_option_string("name", "Prosody PubSub Service"); |
6515
c9a72c64c3e2
mod_pubsub: Add support for including the publisher in item broadcasts
Philipp Hancke <fippo@goodadvice.pages.de>
parents:
6446
diff
changeset
|
14 local expose_publisher = module:get_option_boolean("expose_publisher", false) |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
15 |
8313
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
16 local enable_persistence = module:get_option_boolean("experimental_pubsub_item_persistence", false); |
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
17 |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
18 local service; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
19 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
20 local lib_pubsub = module:require "pubsub"; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
21 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
22 module:depends("disco"); |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
23 module:add_identity("pubsub", "service", pubsub_disco_name); |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
24 module:add_feature("http://jabber.org/protocol/pubsub"); |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
25 |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
26 function handle_pubsub_iq(event) |
8334
036e46d12b78
mod_pubsub: Move dispatch function into pubsub.lib
Kim Alvefur <zash@zash.se>
parents:
8328
diff
changeset
|
27 return lib_pubsub.handle_pubsub_iq(event, service); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
28 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
29 |
8504
80b8355c8b8b
mod_pubsub: Add nodestore to service configuration
Matthew Wild <mwild1@gmail.com>
parents:
8503
diff
changeset
|
30 local node_store = module:open_store(module.name.."_nodes"); |
80b8355c8b8b
mod_pubsub: Add nodestore to service configuration
Matthew Wild <mwild1@gmail.com>
parents:
8503
diff
changeset
|
31 |
8503
3b86134c56ea
mod_pubsub: Some variable renames for clarity
Matthew Wild <mwild1@gmail.com>
parents:
8340
diff
changeset
|
32 local function create_simple_itemstore(node_config, node_name) |
3b86134c56ea
mod_pubsub: Some variable renames for clarity
Matthew Wild <mwild1@gmail.com>
parents:
8340
diff
changeset
|
33 local archive = module:open_store("pubsub_"..node_name, "archive"); |
3b86134c56ea
mod_pubsub: Some variable renames for clarity
Matthew Wild <mwild1@gmail.com>
parents:
8340
diff
changeset
|
34 return lib_pubsub.archive_itemstore(archive, node_config, nil, node_name); |
8213
e1272aeef31c
mod_pubsub: Add item persistence using mod_storage_*’s archive store.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
8210
diff
changeset
|
35 end |
e1272aeef31c
mod_pubsub: Add item persistence using mod_storage_*’s archive store.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
8210
diff
changeset
|
36 |
8313
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
37 if enable_persistence then |
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
38 module:log("warn", "Item persistence is an experimental feature. Note that ownership information is lost on restart.") |
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
39 else |
8503
3b86134c56ea
mod_pubsub: Some variable renames for clarity
Matthew Wild <mwild1@gmail.com>
parents:
8340
diff
changeset
|
40 create_simple_itemstore = nil; |
8313
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
41 end |
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
42 |
21466b778bf1
mod_pubsub: Hide item persistence behind option (at least until affiliations are also persisted)
Kim Alvefur <zash@zash.se>
parents:
8311
diff
changeset
|
43 |
8814
07197f29e2b8
mod_pubsub: Make the 'type' attribute on broadcast messages configurable
Kim Alvefur <zash@zash.se>
parents:
8811
diff
changeset
|
44 function simple_broadcast(kind, node, jids, item, actor, node_obj) |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
45 if item then |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
46 item = st.clone(item); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
47 item.attr.xmlns = nil; -- Clear the pubsub namespace |
6515
c9a72c64c3e2
mod_pubsub: Add support for including the publisher in item broadcasts
Philipp Hancke <fippo@goodadvice.pages.de>
parents:
6446
diff
changeset
|
48 if expose_publisher and actor then |
c9a72c64c3e2
mod_pubsub: Add support for including the publisher in item broadcasts
Philipp Hancke <fippo@goodadvice.pages.de>
parents:
6446
diff
changeset
|
49 item.attr.publisher = actor |
c9a72c64c3e2
mod_pubsub: Add support for including the publisher in item broadcasts
Philipp Hancke <fippo@goodadvice.pages.de>
parents:
6446
diff
changeset
|
50 end |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
51 end |
8811
f2d35eee69c9
mod_pubsub: Set an id attribute on outgoing event messages
Kim Alvefur <zash@zash.se>
parents:
8808
diff
changeset
|
52 |
f2d35eee69c9
mod_pubsub: Set an id attribute on outgoing event messages
Kim Alvefur <zash@zash.se>
parents:
8808
diff
changeset
|
53 local id = new_id(); |
8814
07197f29e2b8
mod_pubsub: Make the 'type' attribute on broadcast messages configurable
Kim Alvefur <zash@zash.se>
parents:
8811
diff
changeset
|
54 local msg_type = node_obj and node_obj.config.message_type or "headline"; |
07197f29e2b8
mod_pubsub: Make the 'type' attribute on broadcast messages configurable
Kim Alvefur <zash@zash.se>
parents:
8811
diff
changeset
|
55 local message = st.message({ from = module.host, type = msg_type, id = id }) |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
56 :tag("event", { xmlns = xmlns_pubsub_event }) |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
57 :tag(kind, { node = node }) |
8946
3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
Kim Alvefur <zash@zash.se>
parents:
8815
diff
changeset
|
58 |
3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
Kim Alvefur <zash@zash.se>
parents:
8815
diff
changeset
|
59 if item then |
3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
Kim Alvefur <zash@zash.se>
parents:
8815
diff
changeset
|
60 message:add_child(item); |
3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
Kim Alvefur <zash@zash.se>
parents:
8815
diff
changeset
|
61 end |
8814
07197f29e2b8
mod_pubsub: Make the 'type' attribute on broadcast messages configurable
Kim Alvefur <zash@zash.se>
parents:
8811
diff
changeset
|
62 |
8815
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
63 -- Compose a sensible textual representation of at least Atom payloads |
8946
3a095233e178
mod_pubsub: Handle optional item (thanks jonasw)
Kim Alvefur <zash@zash.se>
parents:
8815
diff
changeset
|
64 if node_obj and item and node_obj.config.include_body and item.tags[1] then |
8815
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
65 local payload = item.tags[1]; |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
66 if payload.attr.xmlns == "http://www.w3.org/2005/Atom" then |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
67 message:reset(); |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
68 local title = payload:get_child_text("title"); |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
69 local summary = payload:get_child_text("summary"); |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
70 if not summary and title then |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
71 local author = payload:find("author/name#"); |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
72 summary = title; |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
73 if author then |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
74 summary = author .. " posted " .. summary; |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
75 end |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
76 end |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
77 if summary then |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
78 message:body(summary); |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
79 end |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
80 end |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
81 end |
5974c9da1391
mod_pubsub: Add support for generation of a plain text <body> from Atom payloads
Kim Alvefur <zash@zash.se>
parents:
8814
diff
changeset
|
82 |
8808
40a7135eb6ac
mod_pubsub: Use moduleapi broadcast method
Kim Alvefur <zash@zash.se>
parents:
8695
diff
changeset
|
83 module:broadcast(jids, message, pairs); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
84 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
85 |
8695
09e7fd8b16cd
mod_pubsub: Reject publishing of non-items
Kim Alvefur <zash@zash.se>
parents:
8505
diff
changeset
|
86 function is_item_stanza(item) |
09e7fd8b16cd
mod_pubsub: Reject publishing of non-items
Kim Alvefur <zash@zash.se>
parents:
8505
diff
changeset
|
87 return st.is_stanza(item) and item.attr.xmlns == xmlns_pubsub and item.name == "item"; |
09e7fd8b16cd
mod_pubsub: Reject publishing of non-items
Kim Alvefur <zash@zash.se>
parents:
8505
diff
changeset
|
88 end |
09e7fd8b16cd
mod_pubsub: Reject publishing of non-items
Kim Alvefur <zash@zash.se>
parents:
8505
diff
changeset
|
89 |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
90 module:hook("iq/host/"..xmlns_pubsub..":pubsub", handle_pubsub_iq); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
91 module:hook("iq/host/"..xmlns_pubsub_owner..":pubsub", handle_pubsub_iq); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
92 |
8505
c9bdb4dfed96
mod_pubsub: Ignore unused parameter [luacheck]
Matthew Wild <mwild1@gmail.com>
parents:
8504
diff
changeset
|
93 local function add_disco_features_from_service(service) --luacheck: ignore 431/service |
8340
7c1fb8c042dc
mod_pubsub: Move service feature dection to pubsub.lib to allow reuse
Kim Alvefur <zash@zash.se>
parents:
8339
diff
changeset
|
94 for feature in lib_pubsub.get_feature_set(service) do |
7c1fb8c042dc
mod_pubsub: Move service feature dection to pubsub.lib to allow reuse
Kim Alvefur <zash@zash.se>
parents:
8339
diff
changeset
|
95 module:add_feature(xmlns_pubsub.."#"..feature); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
96 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
97 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
98 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
99 module:hook("host-disco-info-node", function (event) |
8210
352d605b1178
mod_pubsub: Fix a few warnings [luacheck]
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
7984
diff
changeset
|
100 local stanza, reply, node = event.stanza, event.reply, event.node; |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
101 local ok, ret = service:get_nodes(stanza.attr.from); |
5970
6a2c3293d4d7
mod_pubsub: Don't sent error replies from service disco events, let mod_disco handle that
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
102 if not ok or not ret[node] then |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
103 return; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
104 end |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
105 event.exists = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
106 reply:tag("identity", { category = "pubsub", type = "leaf" }); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
107 end); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
108 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
109 module:hook("host-disco-items-node", function (event) |
8210
352d605b1178
mod_pubsub: Fix a few warnings [luacheck]
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
7984
diff
changeset
|
110 local stanza, reply, node = event.stanza, event.reply, event.node; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
111 local ok, ret = service:get_items(node, stanza.attr.from); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
112 if not ok then |
5970
6a2c3293d4d7
mod_pubsub: Don't sent error replies from service disco events, let mod_disco handle that
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
113 return; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
114 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
115 |
6434
382e03a40dd2
mod_pubsub: Transplant pieces of cdcfd93e2f43 from trunk
Kim Alvefur <zash@zash.se>
parents:
5970
diff
changeset
|
116 for _, id in ipairs(ret) do |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
117 reply:tag("item", { jid = module.host, name = id }):up(); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
118 end |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
119 event.exists = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
120 end); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
121 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
122 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
123 module:hook("host-disco-items", function (event) |
8210
352d605b1178
mod_pubsub: Fix a few warnings [luacheck]
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
7984
diff
changeset
|
124 local stanza, reply = event.stanza, event.reply; |
352d605b1178
mod_pubsub: Fix a few warnings [luacheck]
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
7984
diff
changeset
|
125 local ok, ret = service:get_nodes(stanza.attr.from); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
126 if not ok then |
5970
6a2c3293d4d7
mod_pubsub: Don't sent error replies from service disco events, let mod_disco handle that
Kim Alvefur <zash@zash.se>
parents:
5690
diff
changeset
|
127 return; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
128 end |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
129 for node, node_obj in pairs(ret) do |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
130 reply:tag("item", { jid = module.host, node = node, name = node_obj.config.name }):up(); |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
131 end |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
132 end); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
133 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
134 local admin_aff = module:get_option_string("default_admin_affiliation", "owner"); |
7708
c420a38db5ef
Backed out changeset f1af4edd5722, doesn't work as intended (node is the name of the node and always present)
Kim Alvefur <zash@zash.se>
parents:
6841
diff
changeset
|
135 local function get_affiliation(jid) |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
136 local bare_jid = jid_bare(jid); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
137 if bare_jid == module.host or usermanager.is_admin(bare_jid, module.host) then |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
138 return admin_aff; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
139 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
140 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
141 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
142 function set_service(new_service) |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
143 service = new_service; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
144 module.environment.service = service; |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
145 add_disco_features_from_service(service); |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
146 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
147 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
148 function module.save() |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
149 return { service = service }; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
150 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
151 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
152 function module.restore(data) |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
153 set_service(data.service); |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
154 end |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
155 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
156 function module.load() |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
157 if module.reloading then return; end |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
158 |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
159 set_service(pubsub.new({ |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
160 capabilities = { |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
161 none = { |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
162 create = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
163 publish = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
164 retract = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
165 get_nodes = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
166 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
167 subscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
168 unsubscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
169 get_subscription = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
170 get_subscriptions = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
171 get_items = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
172 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
173 subscribe_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
174 unsubscribe_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
175 get_subscription_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
176 get_subscriptions_other = false; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
177 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
178 be_subscribed = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
179 be_unsubscribed = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
180 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
181 set_affiliation = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
182 }; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
183 publisher = { |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
184 create = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
185 publish = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
186 retract = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
187 get_nodes = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
188 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
189 subscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
190 unsubscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
191 get_subscription = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
192 get_subscriptions = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
193 get_items = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
194 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
195 subscribe_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
196 unsubscribe_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
197 get_subscription_other = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
198 get_subscriptions_other = false; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
199 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
200 be_subscribed = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
201 be_unsubscribed = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
202 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
203 set_affiliation = false; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
204 }; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
205 owner = { |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
206 create = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
207 publish = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
208 retract = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
209 delete = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
210 get_nodes = true; |
6438
b1c40054b59d
mod_pubsub: Add support for node configuration
Kim Alvefur <zash@zash.se>
parents:
6434
diff
changeset
|
211 configure = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
212 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
213 subscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
214 unsubscribe = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
215 get_subscription = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
216 get_subscriptions = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
217 get_items = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
218 |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
219 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
220 subscribe_other = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
221 unsubscribe_other = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
222 get_subscription_other = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
223 get_subscriptions_other = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
224 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
225 be_subscribed = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
226 be_unsubscribed = true; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
227 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
228 set_affiliation = true; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
229 }; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
230 }; |
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
231 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
232 autocreate_on_publish = autocreate_on_publish; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
233 autocreate_on_subscribe = autocreate_on_subscribe; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
234 |
8504
80b8355c8b8b
mod_pubsub: Add nodestore to service configuration
Matthew Wild <mwild1@gmail.com>
parents:
8503
diff
changeset
|
235 nodestore = node_store; |
8503
3b86134c56ea
mod_pubsub: Some variable renames for clarity
Matthew Wild <mwild1@gmail.com>
parents:
8340
diff
changeset
|
236 itemstore = create_simple_itemstore; |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
237 broadcaster = simple_broadcast; |
8695
09e7fd8b16cd
mod_pubsub: Reject publishing of non-items
Kim Alvefur <zash@zash.se>
parents:
8505
diff
changeset
|
238 itemcheck = is_item_stanza; |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
239 get_affiliation = get_affiliation; |
5626
8416d4619d80
mod_pubsub: Split out handlers into a module library
Florian Zeitz <florob@babelmonkeys.de>
parents:
diff
changeset
|
240 |
5690
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
241 normalize_jid = jid_bare; |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
242 })); |
630e7224a65f
mod_pubsub: Utilize mod_disco, instead of reimplementing disco handling
Florian Zeitz <florob@babelmonkeys.de>
parents:
5626
diff
changeset
|
243 end |