Comparison

core/usermanager.lua @ 3161:73e93a48c0c1

Update usermanager to not crash, etc.
author Jeff Mitchell <jeff@jefferai.org>
date Thu, 20 May 2010 14:18:12 -0400
parent 3160:9064dd006b21
child 3163:a23168cc4af5
comparison
equal deleted inserted replaced
3160:9064dd006b21 3161:73e93a48c0c1
18 18
19 local require_provisioning = config.get("*", "core", "cyrus_require_provisioning") or false; 19 local require_provisioning = config.get("*", "core", "cyrus_require_provisioning") or false;
20 20
21 local prosody = _G.prosody; 21 local prosody = _G.prosody;
22 22
23 local setmetatable = setmetatable;
24
23 module "usermanager" 25 module "usermanager"
26
27 function new_null_provider()
28 local function dummy() end;
29 return setmetatable({}, { __index = function() return dummy; end });
30 end
24 31
25 local function host_handler(host) 32 local function host_handler(host)
26 local host_session = hosts[host]; 33 local host_session = hosts[host];
27 host_session.events.add_handler("item-added/auth-provider", function (provider) 34 host_session.events.add_handler("item-added/auth-provider", function (provider)
28 log("debug", "authentication provider = '%s'", config.get(host, "core", "authentication")); 35 log("debug", "authentication provider = '%s'", config.get(host, "core", "authentication"));
30 host_session.users = provider; 37 host_session.users = provider;
31 end 38 end
32 end); 39 end);
33 host_session.events.add_handler("item-removed/auth-provider", function (provider) 40 host_session.events.add_handler("item-removed/auth-provider", function (provider)
34 if host_session.users == provider then 41 if host_session.users == provider then
35 userplugins.new_default_provider(host); 42 host_session.users = new_null_provider();
36 end 43 end
37 end); 44 end);
38 if host_session.users ~= nil then
39 log("debug", "using non-default authentication provider");
40 else
41 log("debug", "using default authentication provider");
42 host_session.users = new_default_provider(host); -- Start with the default usermanager provider
43 end
44 end 45 end
45 prosody.events.add_handler("host-activated", host_handler); 46 prosody.events.add_handler("host-activated", host_handler);
46 prosody.events.add_handler("component-activated", host_handler); 47 prosody.events.add_handler("component-activated", host_handler);
47 48
48 local function is_cyrus(host) return config.get(host, "core", "sasl_backend") == "cyrus"; end 49 local function is_cyrus(host) return config.get(host, "core", "sasl_backend") == "cyrus"; end