X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fusermanager.lua;h=5e2e41fcd31c72a53afc2de9d6e6f901d38188ec;hb=84b379f0d0962b44837ce648c2fa70698939dd20;hp=2e64af8c48a82351c48b02d8fcd75417d6562b63;hpb=c8a50a9545d4cab5163e366cc66090ee97d93e3f;p=prosody.git diff --git a/core/usermanager.lua b/core/usermanager.lua index 2e64af8c..5e2e41fc 100644 --- a/core/usermanager.lua +++ b/core/usermanager.lua @@ -24,11 +24,15 @@ local default_provider = "internal_plain"; module "usermanager" function new_null_provider() - local function dummy() end; + local function dummy() return nil, "method not implemented"; end; local function dummy_get_sasl_handler() return sasl_new(nil, {}); end - return setmetatable({name = "null", get_sasl_handler = dummy_get_sasl_handler}, { __index = function() return dummy; end }); + return setmetatable({name = "null", get_sasl_handler = dummy_get_sasl_handler}, { + __index = function(self, method) return dummy; end + }); end +local provider_mt = { __index = new_null_provider() }; + function initialize_host(host) local host_session = hosts[host]; if host_session.type ~= "local" then return; end @@ -38,7 +42,7 @@ function initialize_host(host) local auth_provider = config.get(host, "core", "authentication") or default_provider; if config.get(host, "core", "anonymous_login") then auth_provider = "anonymous"; end -- COMPAT 0.7 if provider.name == auth_provider then - host_session.users = provider; + host_session.users = setmetatable(provider, provider_mt); end if host_session.users ~= nil and host_session.users.name ~= nil then log("debug", "host '%s' now set to use user provider '%s'", host, host_session.users.name); @@ -79,6 +83,10 @@ function create_user(username, password, host) return hosts[host].users.create_user(username, password); end +function delete_user(username, host) + return hosts[host].users.delete_user(username); +end + function get_sasl_handler(host) return hosts[host].users.get_sasl_handler(); end