Software /
code /
prosody
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 |