Comparison

prosodyctl @ 13600:854df134274f

prosodyctl: deluser: Use user:delete() shell command for implementation
author Matthew Wild <mwild1@gmail.com>
date Tue, 07 Jan 2025 19:28:06 +0000
parent 13599:54803fb5b4d4
child 13606:6127b51803bb
comparison
equal deleted inserted replaced
13599:54803fb5b4d4 13600:854df134274f
166 local opts = parse_args(arg, only_help); 166 local opts = parse_args(arg, only_help);
167 if opts.help or not arg[1] then 167 if opts.help or not arg[1] then
168 show_usage([[deluser JID]], [[Permanently remove the specified user account from Prosody]]); 168 show_usage([[deluser JID]], [[Permanently remove the specified user account from Prosody]]);
169 return opts.help and 0 or 1; 169 return opts.help and 0 or 1;
170 end 170 end
171 local user, host = jid_split(arg[1]); 171
172 if not user and host then 172 local shell = require "prosody.util.prosodyctl.shell";
173 show_message [[Failed to understand JID, please supply the JID to the user account you want to delete]] 173 return shell.shell({ ("user:delete(%q)"):format(arg[1]) });
174 show_usage [[deluser user@host]]
175 return 1;
176 end
177
178 if not host then
179 show_message [[Please specify a JID, including a host. e.g. alice@example.com]];
180 return 1;
181 end
182
183 if not prosody.hosts[host] then
184 show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
185 prosody.hosts[host] = startup.make_host(host); --luacheck: ignore 122
186 end
187
188 if not prosodyctl.user_exists { user = user, host = host } then
189 show_message [[That user does not exist on this server]]
190 return 1;
191 end
192
193 local ok, msg = prosodyctl.deluser { user = user, host = host };
194
195 if ok then return 0; end
196
197 show_message(error_messages[msg])
198 return 1;
199 end 174 end
200 175
201 local function has_init_system() --> which 176 local function has_init_system() --> which
202 lfs = lfs or require"lfs"; 177 lfs = lfs or require"lfs";
203 if lfs.attributes("/etc/systemd") then 178 if lfs.attributes("/etc/systemd") then