Changeset

12637:2200f0c6b3f1 0.12

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.
author Kim Alvefur <zash@zash.se>
date Mon, 15 Aug 2022 18:56:22 +0200
parents 12599:5aafcf6a0730
children 12638:a47af78a9347 12679:7d4a95ba9b6c
files plugins/mod_admin_shell.lua
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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