# HG changeset patch # User Kim Alvefur # Date 1530036007 -7200 # Node ID 0ae46e6ea6474edbb22f586f241f5ad449d5ceed # Parent 7b75c7ec926e545afea49a5d550dd86acc83ab90 mod_pubsub: Add boilerplate for changing affiliations diff -r 7b75c7ec926e -r 0ae46e6ea647 plugins/mod_pubsub/pubsub.lib.lua --- a/plugins/mod_pubsub/pubsub.lib.lua Tue Jun 26 19:49:29 2018 +0200 +++ b/plugins/mod_pubsub/pubsub.lib.lua Tue Jun 26 20:00:07 2018 +0200 @@ -483,10 +483,27 @@ 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 });