Diff

util/pubsub.lua @ 3934:4bd994df7296

util.pubsub: Add service:jids_equal() and new config option normalize_jid
author Matthew Wild <mwild1@gmail.com>
date Wed, 22 Dec 2010 03:04:14 +0000
parent 3931:6daed692264f
child 3936:61f12f8a8539
line wrap: on
line diff
--- a/util/pubsub.lua	Wed Dec 22 02:19:14 2010 +0000
+++ b/util/pubsub.lua	Wed Dec 22 03:04:14 2010 +0000
@@ -18,6 +18,11 @@
 	}, 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 @@
 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 @@
 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 @@
 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";