# HG changeset patch # User Kim Alvefur # Date 1660582582 -7200 # Node ID 2200f0c6b3f1d3209a3339009c960a95151674c0 # Parent 5aafcf6a073046eeefd734933f9ba945325804f1 mod_admin_shell: Switch names for user role management commands user:roles() does not convey that this is the mutating command, it should have been called setroles from the start but wasn't due to lack of foresight. This has to accidentally removing roles when wanting to show them. diff -r 5aafcf6a0730 -r 2200f0c6b3f1 plugins/mod_admin_shell.lua --- a/plugins/mod_admin_shell.lua Fri Jul 22 19:09:50 2022 +0200 +++ b/plugins/mod_admin_shell.lua Mon Aug 15 18:56:22 2022 +0200 @@ -257,8 +257,8 @@ elseif section == "user" then print [[user:create(jid, password, roles) - Create the specified user account]] print [[user:password(jid, password) - Set the password for the specified user account]] - print [[user:showroles(jid, host) - Show current roles for an user]] - print [[user:roles(jid, host, roles) - Set roles for an user (see 'help roles')]] + print [[user:roles(jid, host) - Show current roles for an user]] + print [[user:setroles(jid, host, roles) - Set roles for an user (see 'help roles')]] print [[user:delete(jid) - Permanently remove the specified user account]] print [[user:list(hostname, pattern) - List users on the specified host, optionally filtering with a pattern]] elseif section == "roles" then @@ -1399,7 +1399,10 @@ end end -function def_env.user:showroles(jid, host) +function def_env.user:roles(jid, host, new_roles) + if new_roles or type(host) == "table" then + return nil, "Use user:setroles(jid, host, roles) to change user roles"; + end local username, userhost = jid_split(jid); if host == nil then host = userhost; end if host ~= "*" and not prosody.hosts[host] then @@ -1417,10 +1420,11 @@ end return true, count == 1 and "1 role" or count.." roles"; end +def_env.user.showroles = def_env.user.roles; -- COMPAT -- user:roles("someone@example.com", "example.com", {"prosody:admin"}) -- user:roles("someone@example.com", {"prosody:admin"}) -function def_env.user:roles(jid, host, new_roles) +function def_env.user:setroles(jid, host, new_roles) local username, userhost = jid_split(jid); if new_roles == nil then host, new_roles = userhost, host; end if host ~= "*" and not prosody.hosts[host] then