equal
deleted
inserted
replaced
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 |