Diff

util/pubsub.lua @ 9158:37e814a680ab

mod_pubsub, mod_pep, util.pubsub: Move capability definitions into util.pubsub to avoid duplication
author Matthew Wild <mwild1@gmail.com>
date Wed, 08 Aug 2018 20:48:02 +0100
parent 9144:b40efef8ec99
child 9160:e13a1a0b0107
line wrap: on
line diff
--- a/util/pubsub.lua	Wed Aug 08 20:40:44 2018 +0100
+++ b/util/pubsub.lua	Wed Aug 08 20:48:02 2018 +0100
@@ -9,7 +9,83 @@
 	itemcheck = function () return true; end;
 	get_affiliation = function () end;
 	normalize_jid = function (jid) return jid; end;
-	capabilities = {};
+	capabilities = {
+		restricted = {
+			be_subscribed = false;
+			be_unsubscribed = true;
+		};
+		none = {
+			create = false;
+			publish = false;
+			retract = false;
+			get_nodes = true;
+
+			subscribe = true;
+			unsubscribe = true;
+			get_subscription = true;
+			get_subscriptions = true;
+			get_items = true;
+
+			subscribe_other = false;
+			unsubscribe_other = false;
+			get_subscription_other = false;
+			get_subscriptions_other = false;
+
+			be_subscribed = true;
+			be_unsubscribed = true;
+
+			set_affiliation = false;
+		};
+		publisher = {
+			create = false;
+			publish = true;
+			retract = true;
+			get_nodes = true;
+			get_configuration = true;
+
+			subscribe = true;
+			unsubscribe = true;
+			get_subscription = true;
+			get_subscriptions = true;
+			get_items = true;
+
+			subscribe_other = false;
+			unsubscribe_other = false;
+			get_subscription_other = false;
+			get_subscriptions_other = false;
+
+			be_subscribed = true;
+			be_unsubscribed = true;
+
+			set_affiliation = false;
+		};
+		owner = {
+			create = true;
+			publish = true;
+			retract = true;
+			delete = true;
+			get_nodes = true;
+			configure = true;
+			get_configuration = true;
+
+			subscribe = true;
+			unsubscribe = true;
+			get_subscription = true;
+			get_subscriptions = true;
+			get_items = true;
+
+
+			subscribe_other = true;
+			unsubscribe_other = true;
+			get_subscription_other = true;
+			get_subscriptions_other = true;
+
+			be_subscribed = true;
+			be_unsubscribed = true;
+
+			set_affiliation = true;
+		};
+	};
 };
 local default_config_mt = { __index = default_config };