From 9622bf99fb225ede604c657cc8588a11cd49aa09 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Wed, 22 Dec 2010 03:04:14 +0000 Subject: util.pubsub: Add service:jids_equal() and new config option normalize_jid --- util/pubsub.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'util') diff --git a/util/pubsub.lua b/util/pubsub.lua index f7d4a702..d43ed1db 100644 --- a/util/pubsub.lua +++ b/util/pubsub.lua @@ -18,6 +18,11 @@ function new(config) }, service_mt); end +function service:jids_equal(jid1, jid2) + local normalize = self.config.normalize_jid; + return normalize(jid1) == normalize(jid2); +end + function service:may(node, actor, action) if actor == true then return true; end @@ -82,7 +87,7 @@ end function service:add_subscription(node, actor, jid, options) -- Access checking local cap; - if jid == actor or self.config.jids_equal(actor, jid) then + if jid == actor or self:jids_equal(actor, jid) then cap = "subscribe"; else cap = "subscribe_other"; @@ -112,7 +117,7 @@ end function service:remove_subscription(node, actor, jid) -- Access checking local cap; - if jid == actor or self.config.jids_equal(actor, jid) then + if jid == actor or self:jids_equal(actor, jid) then cap = "unsubscribe"; else cap = "unsubscribe_other"; @@ -138,7 +143,7 @@ end function service:get_subscription(node, actor, jid) -- Access checking local cap; - if jid == actor or self.config.jids_equal(actor, jid) then + if jid == actor or self:jids_equal(actor, jid) then cap = "get_subscription"; else cap = "get_subscription_other"; -- cgit v1.2.3