Changeset

13599:54803fb5b4d4

prosodyctl: passwd: Use user:password() shell command for implementation
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Jan 2025 19:25:35 +0000
parents 13598:2cd43975a15c
children 13600:854df134274f
files prosodyctl
diffstat 1 files changed, 2 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/prosodyctl	Tue Jan 07 19:25:12 2025 +0000
+++ b/prosodyctl	Tue Jan 07 19:25:35 2025 +0000
@@ -157,38 +157,9 @@
 		show_usage([[passwd JID]], [[Set the password for the specified user account in Prosody]]);
 		return opts.help and 0 or 1;
 	end
-	local user, host = jid_split(arg[1]);
-	if not user and host then
-		show_message [[Failed to understand JID, please supply the JID you want to set the password for]]
-		show_usage [[passwd user@host]]
-		return 1;
-	end
 
-	if not host then
-		show_message [[Please specify a JID, including a host. e.g. alice@example.com]];
-		return 1;
-	end
-
-	if not prosody.hosts[host] then
-		show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
-		show_warning("The user will not be able to log in until this is changed.");
-		prosody.hosts[host] = startup.make_host(host); --luacheck: ignore 122
-	end
-
-	if not prosodyctl.user_exists { user = user, host = host } then
-		show_message [[That user does not exist, use prosodyctl adduser to create a new user]]
-		return 1;
-	end
-
-	local password = read_password();
-	if not password then return 1; end
-
-	local ok, msg = prosodyctl.passwd { user = user, host = host, password = password };
-
-	if ok then return 0; end
-
-	show_message(error_messages[msg])
-	return 1;
+	local shell = require "prosody.util.prosodyctl.shell";
+	return shell.shell({ ("user:password(%q, nil)"):format(arg[1]) });
 end
 
 function commands.deluser(arg)