comparison mod_privilege/mod_privilege.lua @ 1664:6bdcb1418029

mod_privilege: implemented "managed_entity" presence
author Goffi <goffi@goffi.org>
date Tue, 07 Apr 2015 12:47:47 +0200
parents ca07a6ada631
children 746d94f37a4c
comparison
equal deleted inserted replaced
1663:ca07a6ada631 1664:6bdcb1418029
285 session.send(st.error_reply(stanza, 'auth', 'forbidden')) 285 session.send(st.error_reply(stanza, 'auth', 'forbidden'))
286 end 286 end
287 287
288 return true 288 return true
289 end); 289 end);
290
291
292 --> presence permission <--
293
294 module:hook("presence/bare", function(event)
295 if presence_man_ent:empty() then return; end
296 local session, stanza = event.origin, event.stanza;
297 if stanza.attr.to then return; end
298 if stanza.attr.type == nil or stanza.attr.type == "unavailable" then
299 for entity in presence_man_ent:items() do
300 if stanza.attr.from ~= entity then
301 presence_fwd = st.clone(stanza)
302 presence_fwd.attr.to = entity
303 module:log("debug", "presence forwarded to "..entity..": "..tostring(presence_fwd))
304 prosody.core_route_stanza(nil, presence_fwd)
305 end
306 end
307 end
308 end, 150);