diff options
author | Matthew Wild <mwild1@gmail.com> | 2018-08-04 21:32:24 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2018-08-04 21:32:24 +0100 |
commit | dad630943d90af74bfb0eaf9c847168af8a087c9 (patch) | |
tree | f87d6fc002e697a0b260d5a771bd84c33c5fe91d /util | |
parent | 4fc4e76c83829ccf45594e48b354720f9b292c53 (diff) | |
download | prosody-dad630943d90af74bfb0eaf9c847168af8a087c9.tar.gz prosody-dad630943d90af74bfb0eaf9c847168af8a087c9.zip |
util.pubsub: Add method to retrieve node configuration
Diffstat (limited to 'util')
-rw-r--r-- | util/pubsub.lua | 21 |
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; }; |