Comparison

prosodyctl @ 3038:6b68355d615a

prosodyctl: Support for the new usermanager, refactor host creation and fail if a host is not using the default authentication provider, for now. (thanks Nicola)
author Matthew Wild <mwild1@gmail.com>
date Sat, 15 May 2010 19:38:40 +0100
parent 3015:aad8034ab389
child 3161:73e93a48c0c1
comparison
equal deleted inserted replaced
3037:0319abdcf04f 3038:6b68355d615a
120 ["not-running"] = "Prosody is not running"; 120 ["not-running"] = "Prosody is not running";
121 }, { __index = function (t,k) return "Error: "..(tostring(k):gsub("%-", " "):gsub("^.", string.upper)); end }); 121 }, { __index = function (t,k) return "Error: "..(tostring(k):gsub("%-", " "):gsub("^.", string.upper)); end });
122 122
123 hosts = prosody.hosts; 123 hosts = prosody.hosts;
124 124
125 local function make_host(hostname)
126 return { events = prosody.events, users = require "core.usermanager".new_default_provider(hostname) };
127 end
128
125 for hostname, config in pairs(config.getconfig()) do 129 for hostname, config in pairs(config.getconfig()) do
126 hosts[hostname] = { events = prosody.events }; 130 hosts[hostname] = make_host(hostname);
127 end 131 end
128 132
129 require "core.modulemanager" 133 require "core.modulemanager"
130 134
131 require "util.prosodyctl" 135 require "util.prosodyctl"
233 if not host then 237 if not host then
234 show_message [[Please specify a JID, including a host. e.g. alice@example.com]]; 238 show_message [[Please specify a JID, including a host. e.g. alice@example.com]];
235 return 1; 239 return 1;
236 end 240 end
237 241
238 if prosodyctl.user_exists{ user = user, host = host } then
239 show_message [[That user already exists]];
240 return 1;
241 end
242
243 if not hosts[host] then 242 if not hosts[host] then
244 show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host) 243 show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
245 show_warning("The user will not be able to log in until this is changed."); 244 show_warning("The user will not be able to log in until this is changed.");
245 hosts[host] = make_host(host);
246 elseif config.get(host, "core", "authentication")
247 and config.get(host, "core", "authentication") ~= "default" then
248 show_warning("The host '%s' is configured to use the '%s' authentication provider", host,
249 config.get(host, "core", "authentication"));
250 show_warning("prosodyctl currently only supports the default provider, sorry :(");
251 return 1;
252 end
253
254 if prosodyctl.user_exists{ user = user, host = host } then
255 show_message [[That user already exists]];
256 return 1;
246 end 257 end
247 258
248 local password = read_password(); 259 local password = read_password();
249 if not password then return 1; end 260 if not password then return 1; end
250 261
271 if not host then 282 if not host then
272 show_message [[Please specify a JID, including a host. e.g. alice@example.com]]; 283 show_message [[Please specify a JID, including a host. e.g. alice@example.com]];
273 return 1; 284 return 1;
274 end 285 end
275 286
287 if not hosts[host] then
288 show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
289 show_warning("The user will not be able to log in until this is changed.");
290 hosts[host] = make_host(host);
291 elseif config.get(host, "core", "authentication")
292 and config.get(host, "core", "authentication") ~= "default" then
293 show_warning("The host '%s' is configured to use the '%s' authentication provider", host,
294 config.get(host, "core", "authentication"));
295 show_warning("prosodyctl currently only supports the default provider, sorry :(");
296 return 1;
297 end
298
276 if not prosodyctl.user_exists { user = user, host = host } then 299 if not prosodyctl.user_exists { user = user, host = host } then
277 show_message [[That user does not exist, use prosodyctl adduser to create a new user]] 300 show_message [[That user does not exist, use prosodyctl adduser to create a new user]]
278 return 1; 301 return 1;
279 end 302 end
280 303
304 if not host then 327 if not host then
305 show_message [[Please specify a JID, including a host. e.g. alice@example.com]]; 328 show_message [[Please specify a JID, including a host. e.g. alice@example.com]];
306 return 1; 329 return 1;
307 end 330 end
308 331
332 if not hosts[host] then
333 show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
334 show_warning("The user will not be able to log in until this is changed.");
335 hosts[host] = make_host(host);
336 elseif config.get(host, "core", "authentication")
337 and config.get(host, "core", "authentication") ~= "default" then
338 show_warning("The host '%s' is configured to use the '%s' authentication provider", host,
339 config.get(host, "core", "authentication"));
340 show_warning("prosodyctl currently only supports the default provider, sorry :(");
341 return 1;
342 end
343
309 if not prosodyctl.user_exists { user = user, host = host } then 344 if not prosodyctl.user_exists { user = user, host = host } then
310 show_message [[That user does not exist on this server]] 345 show_message [[That user does not exist on this server]]
311 return 1; 346 return 1;
312 end 347 end
313 348