X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;ds=sidebyside;f=util%2Fprosodyctl.lua;h=b80a69f26eaafab55be94e4a2b47b65130e9818a;hb=068e0e6db77c1810df59be4b0b980dde961429ae;hp=8c58f2cdc309e2a6d3e95e1fe27a442cde890ed8;hpb=1cec98db7c5f3cb4922a44a155cb6c0b58137473;p=prosody.git diff --git a/util/prosodyctl.lua b/util/prosodyctl.lua index 8c58f2cd..b80a69f2 100644 --- a/util/prosodyctl.lua +++ b/util/prosodyctl.lua @@ -136,11 +136,16 @@ function adduser(params) return false, "invalid-hostname"; end - local provider = prosody.hosts[host].users; + local host_session = prosody.hosts[host]; + if not host_session then + return false, "no-such-host"; + end + + storagemanager.initialize_host(host); + local provider = host_session.users; if not(provider) or provider.name == "null" then usermanager.initialize_host(host); end - storagemanager.initialize_host(host); local ok, errmsg = usermanager.create_user(user, password, host); if not ok then @@ -151,11 +156,12 @@ end function user_exists(params) local user, host, password = nodeprep(params.user), nameprep(params.host), params.password; + + storagemanager.initialize_host(host); local provider = prosody.hosts[host].users; if not(provider) or provider.name == "null" then usermanager.initialize_host(host); end - storagemanager.initialize_host(host); return usermanager.user_exists(user, host); end @@ -172,18 +178,18 @@ function deluser(params) if not _M.user_exists(params) then return false, "no-such-user"; end - params.password = nil; + local user, host = nodeprep(params.user), nameprep(params.host); - return _M.adduser(params); + return usermanager.delete_user(user, host); end function getpid() - local pidfile = config.get("*", "core", "pidfile"); + local pidfile = config.get("*", "pidfile"); if not pidfile then return false, "no-pidfile"; end - local modules_enabled = set.new(config.get("*", "core", "modules_enabled")); + local modules_enabled = set.new(config.get("*", "modules_enabled")); if not modules_enabled:contains("posix") then return false, "no-posix"; end @@ -269,3 +275,5 @@ function reload() signal.kill(pid, signal.SIGHUP); return true; end + +return _M;