aboutsummaryrefslogtreecommitdiffstats
path: root/util/pubsub.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-08-04 21:32:24 +0100
committerMatthew Wild <mwild1@gmail.com>2018-08-04 21:32:24 +0100
commitdad630943d90af74bfb0eaf9c847168af8a087c9 (patch)
treef87d6fc002e697a0b260d5a771bd84c33c5fe91d /util/pubsub.lua
parent4fc4e76c83829ccf45594e48b354720f9b292c53 (diff)
downloadprosody-dad630943d90af74bfb0eaf9c847168af8a087c9.tar.gz
prosody-dad630943d90af74bfb0eaf9c847168af8a087c9.zip
util.pubsub: Add method to retrieve node configuration
Diffstat (limited to 'util/pubsub.lua')
-rw-r--r--util/pubsub.lua21
1 files changed, 21 insertions, 0 deletions
diff --git a/util/pubsub.lua b/util/pubsub.lua
index b124b115..381c449a 100644
--- a/util/pubsub.lua
+++ b/util/pubsub.lua
@@ -592,6 +592,27 @@ function service:set_node_config(node, actor, new_config)
return true;
end
+function service:get_node_config(node, actor)
+ if not self:may(node, actor, "get_configuration") then
+ return false, "forbidden";
+ end
+
+ local node_obj = self.nodes[node];
+ if not node_obj then
+ return false, "item-not-found";
+ end
+
+ local config_table = {};
+ for k, v in pairs(default_node_config) do
+ config_table[k] = v;
+ end
+ for k, v in pairs(node_obj.config) do
+ config_table[k] = v;
+ end
+
+ return true, config_table;
+end
+
return {
new = new;
};