diff options
author | Jeff Mitchell <jeff@jefferai.org> | 2010-05-20 14:18:12 -0400 |
---|---|---|
committer | Jeff Mitchell <jeff@jefferai.org> | 2010-05-20 14:18:12 -0400 |
commit | c316b28787e59817f0c19725dc524ef6c9f3bb32 (patch) | |
tree | 6dd27fc0c448d9dcb662c016dc7f531881c4f36c | |
parent | 29a91eb973059540ade5d3801307f67782bd60d4 (diff) | |
download | prosody-c316b28787e59817f0c19725dc524ef6c9f3bb32.tar.gz prosody-c316b28787e59817f0c19725dc524ef6c9f3bb32.zip |
Update usermanager to not crash, etc.
-rw-r--r-- | core/usermanager.lua | 15 | ||||
-rwxr-xr-x | prosodyctl | 2 |
2 files changed, 9 insertions, 8 deletions
diff --git a/core/usermanager.lua b/core/usermanager.lua index a9525ea8..6d43dca9 100644 --- a/core/usermanager.lua +++ b/core/usermanager.lua @@ -20,8 +20,15 @@ local require_provisioning = config.get("*", "core", "cyrus_require_provisioning local prosody = _G.prosody; +local setmetatable = setmetatable; + module "usermanager" +function new_null_provider() + local function dummy() end; + return setmetatable({}, { __index = function() return dummy; end }); +end + local function host_handler(host) local host_session = hosts[host]; host_session.events.add_handler("item-added/auth-provider", function (provider) @@ -32,15 +39,9 @@ local function host_handler(host) end); host_session.events.add_handler("item-removed/auth-provider", function (provider) if host_session.users == provider then - userplugins.new_default_provider(host); + host_session.users = new_null_provider(); end end); - if host_session.users ~= nil then - log("debug", "using non-default authentication provider"); - else - log("debug", "using default authentication provider"); - host_session.users = new_default_provider(host); -- Start with the default usermanager provider - end end prosody.events.add_handler("host-activated", host_handler); prosody.events.add_handler("component-activated", host_handler); @@ -123,7 +123,7 @@ local error_messages = setmetatable({ hosts = prosody.hosts; local function make_host(hostname) - return { events = prosody.events, users = require "core.usermanager".new_default_provider(hostname) }; + return { events = prosody.events, users = require "core.usermanager".new_null_provider(hostname) }; end for hostname, config in pairs(config.getconfig()) do |