mod_pubsub: Add support for including the publisher in item broadcasts

remotes/origin/0.11
Philipp Hancke 11 years ago
parent 486335f3db
commit 958a4e177b
  1. 6
      plugins/mod_pubsub/mod_pubsub.lua
  2. 2
      util/pubsub.lua

@ -11,6 +11,7 @@ local autocreate_on_publish = module:get_option_boolean("autocreate_on_publish",
local autocreate_on_subscribe = module:get_option_boolean("autocreate_on_subscribe", false);
local pubsub_disco_name = module:get_option("name");
if type(pubsub_disco_name) ~= "string" then pubsub_disco_name = "Prosody PubSub Service"; end
local expose_publisher = module:get_option_boolean("expose_publisher", false)
local service;
@ -36,10 +37,13 @@ function handle_pubsub_iq(event)
end
end
function simple_broadcast(kind, node, jids, item)
function simple_broadcast(kind, node, jids, item, actor)
if item then
item = st.clone(item);
item.attr.xmlns = nil; -- Clear the pubsub namespace
if expose_publisher and actor then
item.attr.publisher = actor
end
end
local message = st.message({ from = module.host, type = "headline" })
:tag("event", { xmlns = xmlns_pubsub_event })

@ -294,7 +294,7 @@ function service:publish(node, actor, id, item)
node_data[id] = item;
trim_items(node_data, node_obj.config["pubsub#max_items"]);
self.events.fire_event("item-published", { node = node, actor = actor, id = id, item = item });
self.config.broadcaster("items", node, node_obj.subscribers, item);
self.config.broadcaster("items", node, node_obj.subscribers, item, actor);
return true;
end

Loading…
Cancel
Save