diff options
author | Kim Alvefur <zash@zash.se> | 2019-12-20 22:47:34 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-12-20 22:47:34 +0100 |
commit | e10171d44d362918cc0d4886e37018cd14843d0d (patch) | |
tree | 10b79de6881f3814f3064bb278f76959aa9eb9c1 /plugins/adhoc | |
parent | 96c1406bcdea0d0e98b70fb968d5d315790cc391 (diff) | |
download | prosody-e10171d44d362918cc0d4886e37018cd14843d0d.tar.gz prosody-e10171d44d362918cc0d4886e37018cd14843d0d.zip |
mod_adhoc: Improve permission setting (fix #1482) BC
Rename 'user' permission mode to 'any' for clarity, too easily mistaken
for what the 'local_user' setting does.
It is also removed as a default and made a required argument.
Diffstat (limited to 'plugins/adhoc')
-rw-r--r-- | plugins/adhoc/adhoc.lib.lua | 8 | ||||
-rw-r--r-- | plugins/adhoc/mod_adhoc.lua | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/plugins/adhoc/adhoc.lib.lua b/plugins/adhoc/adhoc.lib.lua index 0b910299..0c61a636 100644 --- a/plugins/adhoc/adhoc.lib.lua +++ b/plugins/adhoc/adhoc.lib.lua @@ -21,7 +21,13 @@ local function _cmdtag(desc, status, sessionid, action) end function _M.new(name, node, handler, permission) - return { name = name, node = node, handler = handler, cmdtag = _cmdtag, permission = (permission or "user") }; + if not permission then + error "adhoc.new() expects a permission argument, none given" + end + if permission == "user" then + error "the permission mode 'user' has been renamed 'any', please update your code" + end + return { name = name, node = node, handler = handler, cmdtag = _cmdtag, permission = permission }; end function _M.handle_cmd(command, origin, stanza) diff --git a/plugins/adhoc/mod_adhoc.lua b/plugins/adhoc/mod_adhoc.lua index f6553773..188d05e8 100644 --- a/plugins/adhoc/mod_adhoc.lua +++ b/plugins/adhoc/mod_adhoc.lua @@ -26,7 +26,7 @@ module:hook("host-disco-info-node", function (event) if (command.permission == "admin" and privileged) or (command.permission == "global_admin" and global_admin) or (command.permission == "local_user" and hostname == module.host) - or (command.permission == "user") then + or (command.permission == "any") then reply:tag("identity", { name = command.name, category = "automation", type = "command-node" }):up(); reply:tag("feature", { var = xmlns_cmd }):up(); @@ -57,7 +57,7 @@ module:hook("host-disco-items-node", function (event) if (command.permission == "admin" and admin) or (command.permission == "global_admin" and global_admin) or (command.permission == "local_user" and hostname == module.host) - or (command.permission == "user") then + or (command.permission == "any") then reply:tag("item", { name = command.name, node = node, jid = module:get_host() }); reply:up(); |