Comparison

plugins/mod_pubsub.lua @ 4225:f8dc8b9e0bdd

mod_pubsub: Remove checks for whether the JID being (un)subscribed is the actor's own - it's possible to (un)subscribe another JID if you have the (un)subscribe_other capability, which is already checked in util.pubsub (thanks Andrew)
author Matthew Wild <mwild1@gmail.com>
date Fri, 18 Mar 2011 10:32:55 +0000
parent 4120:d62a2861f1f9
child 4246:d0767040236f
comparison
equal deleted inserted replaced
4223:9fb6e8ec15ed 4225:f8dc8b9e0bdd
106 return origin.send(reply); 106 return origin.send(reply);
107 end 107 end
108 108
109 function handlers.set_subscribe(origin, stanza, subscribe) 109 function handlers.set_subscribe(origin, stanza, subscribe)
110 local node, jid = subscribe.attr.node, subscribe.attr.jid; 110 local node, jid = subscribe.attr.node, subscribe.attr.jid;
111 if jid_bare(jid) ~= jid_bare(stanza.attr.from) then
112 return origin.send(pubsub_error_reply(stanza, "invalid-jid"));
113 end
114 local ok, ret = service:add_subscription(node, stanza.attr.from, jid); 111 local ok, ret = service:add_subscription(node, stanza.attr.from, jid);
115 local reply; 112 local reply;
116 if ok then 113 if ok then
117 reply = st.reply(stanza) 114 reply = st.reply(stanza)
118 :tag("pubsub", { xmlns = xmlns_pubsub }) 115 :tag("pubsub", { xmlns = xmlns_pubsub })
127 return origin.send(reply); 124 return origin.send(reply);
128 end 125 end
129 126
130 function handlers.set_unsubscribe(origin, stanza, unsubscribe) 127 function handlers.set_unsubscribe(origin, stanza, unsubscribe)
131 local node, jid = unsubscribe.attr.node, unsubscribe.attr.jid; 128 local node, jid = unsubscribe.attr.node, unsubscribe.attr.jid;
132 if jid_bare(jid) ~= jid_bare(stanza.attr.from) then
133 return origin.send(pubsub_error_reply(stanza, "invalid-jid"));
134 end
135 local ok, ret = service:remove_subscription(node, stanza.attr.from, jid); 129 local ok, ret = service:remove_subscription(node, stanza.attr.from, jid);
136 local reply; 130 local reply;
137 if ok then 131 if ok then
138 reply = st.reply(stanza); 132 reply = st.reply(stanza);
139 else 133 else