From 95757d103f04aee8991fbe00c8c54276a59ea8a0 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Tue, 26 Jun 2018 20:00:07 +0200 Subject: mod_pubsub: Add boilerplate for changing affiliations --- plugins/mod_pubsub/pubsub.lib.lua | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'plugins/mod_pubsub/pubsub.lib.lua') diff --git a/plugins/mod_pubsub/pubsub.lib.lua b/plugins/mod_pubsub/pubsub.lib.lua index 96360677..9ef9597b 100644 --- a/plugins/mod_pubsub/pubsub.lib.lua +++ b/plugins/mod_pubsub/pubsub.lib.lua @@ -483,10 +483,27 @@ function handlers.owner_get_affiliations(origin, stanza, affiliations, service) return true; end ---[[ TODO function handlers.owner_set_affiliations(origin, stanza, affiliations, service) + local node = affiliations.attr.node; + if not node then + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; + end + if not service:may(node, stanza.attr.from, "set_affiliation") then + origin.send(pubsub_error_reply(stanza, "forbidden")); + return true; + end + + local node_obj = service.nodes[node]; + if not node_obj then + origin.send(pubsub_error_reply(stanza, "item-not-found")); + return true; + end + + local reply = st.error_reply(stanza, "wait", "not-implemented", "yet"); + origin.send(reply); + return true; end ---]] local function create_encapsulating_item(id, payload) local item = st.stanza("item", { id = id, xmlns = xmlns_pubsub }); -- cgit v1.2.3