diff options
author | Matthew Wild <mwild1@gmail.com> | 2010-05-15 19:38:40 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2010-05-15 19:38:40 +0100 |
commit | 7a03cd0c613168053260e94f763a883519730357 (patch) | |
tree | fbdb292e4cf5deb18fe1ac2bb484c4ac147ecd15 | |
parent | 2830d442258e1b031c9f8a94dde13a5142b06fd5 (diff) | |
download | prosody-7a03cd0c613168053260e94f763a883519730357.tar.gz prosody-7a03cd0c613168053260e94f763a883519730357.zip |
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)
-rwxr-xr-x | prosodyctl | 47 |
1 files changed, 41 insertions, 6 deletions
@@ -122,8 +122,12 @@ local error_messages = setmetatable({ hosts = prosody.hosts; +local function make_host(hostname) + return { events = prosody.events, users = require "core.usermanager".new_default_provider(hostname) }; +end + for hostname, config in pairs(config.getconfig()) do - hosts[hostname] = { events = prosody.events }; + hosts[hostname] = make_host(hostname); end require "core.modulemanager" @@ -235,14 +239,21 @@ function commands.adduser(arg) return 1; end - if prosodyctl.user_exists{ user = user, host = host } then - show_message [[That user already exists]]; - return 1; - end - if not 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."); + hosts[host] = make_host(host); + elseif config.get(host, "core", "authentication") + and config.get(host, "core", "authentication") ~= "default" then + show_warning("The host '%s' is configured to use the '%s' authentication provider", host, + config.get(host, "core", "authentication")); + show_warning("prosodyctl currently only supports the default provider, sorry :("); + return 1; + end + + if prosodyctl.user_exists{ user = user, host = host } then + show_message [[That user already exists]]; + return 1; end local password = read_password(); @@ -273,6 +284,18 @@ function commands.passwd(arg) return 1; end + if not 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."); + hosts[host] = make_host(host); + elseif config.get(host, "core", "authentication") + and config.get(host, "core", "authentication") ~= "default" then + show_warning("The host '%s' is configured to use the '%s' authentication provider", host, + config.get(host, "core", "authentication")); + show_warning("prosodyctl currently only supports the default provider, sorry :("); + return 1; + 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; @@ -306,6 +329,18 @@ function commands.deluser(arg) return 1; end + if not 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."); + hosts[host] = make_host(host); + elseif config.get(host, "core", "authentication") + and config.get(host, "core", "authentication") ~= "default" then + show_warning("The host '%s' is configured to use the '%s' authentication provider", host, + config.get(host, "core", "authentication")); + show_warning("prosodyctl currently only supports the default provider, sorry :("); + return 1; + end + if not prosodyctl.user_exists { user = user, host = host } then show_message [[That user does not exist on this server]] return 1; |