diff options
Diffstat (limited to 'plugins/mod_pubsub')
-rw-r--r-- | plugins/mod_pubsub/mod_pubsub.lua | 3 | ||||
-rw-r--r-- | plugins/mod_pubsub/pubsub.lib.lua | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/plugins/mod_pubsub/mod_pubsub.lua b/plugins/mod_pubsub/mod_pubsub.lua index 01bf3aea..4e9cecb4 100644 --- a/plugins/mod_pubsub/mod_pubsub.lua +++ b/plugins/mod_pubsub/mod_pubsub.lua @@ -60,6 +60,9 @@ function simple_broadcast(kind, node, jids, item, actor, node_obj) item = st.clone(item); item.attr.xmlns = nil; -- Clear the pubsub namespace if kind == "items" then + if node_obj and node_obj.config.include_payload == false then + item:maptags(function () return nil; end); + end if expose_publisher and actor then item.attr.publisher = actor end diff --git a/plugins/mod_pubsub/pubsub.lib.lua b/plugins/mod_pubsub/pubsub.lib.lua index 1850c54c..5c3b1e89 100644 --- a/plugins/mod_pubsub/pubsub.lib.lua +++ b/plugins/mod_pubsub/pubsub.lib.lua @@ -104,6 +104,11 @@ local node_config_form = dataform { name = "pubsub#deliver_notifications"; }; { + type = "boolean"; + label = "Whether to deliver payloads with event notifications"; + name = "pubsub#deliver_payloads"; + }; + { type = "list-single"; name = "pubsub#notification_type"; label = "Specify the delivery style for notifications"; @@ -171,6 +176,7 @@ local config_field_map = { notify_items = "pubsub#deliver_notifications"; notify_delete = "pubsub#notify_delete"; notify_retract = "pubsub#notify_retract"; + include_payload = "pubsub#deliver_payloads"; }; local reverse_config_field_map = {}; for k, v in pairs(config_field_map) do reverse_config_field_map[v] = k; end @@ -189,6 +195,7 @@ local function config_to_xep0060(node_config) ["pubsub#deliver_notifications"] = node_config["notify_items"]; ["pubsub#notify_delete"] = node_config["notify_delete"]; ["pubsub#notify_retract"] = node_config["notify_retract"]; + ["pubsub#deliver_payloads"] = node_config["include_payload"] } end |