X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_auth_anonymous.lua;h=c877d532f69e30ee8176c5f5ab17f7e2020aab34;hb=9e1ab5393dee057c8449e648673098bb53033412;hp=5df81f2435133d6e79ffe5acbb73d3e2d1f30b72;hpb=5d3a0ec6ca5b469fe6151d05fd7c33baecd3dff5;p=prosody.git diff --git a/plugins/mod_auth_anonymous.lua b/plugins/mod_auth_anonymous.lua index 5df81f24..c877d532 100644 --- a/plugins/mod_auth_anonymous.lua +++ b/plugins/mod_auth_anonymous.lua @@ -8,42 +8,45 @@ local new_sasl = require "util.sasl".new; local datamanager = require "util.datamanager"; +local hosts = prosody.hosts; -function new_default_provider(host) - local provider = { name = "anonymous" }; +-- define auth provider +local provider = {}; - function provider.test_password(username, password) - return nil, "Password based auth not supported."; - end +function provider.test_password(username, password) + return nil, "Password based auth not supported."; +end - function provider.get_password(username) - return nil, "Password not available."; - end +function provider.get_password(username) + return nil, "Password not available."; +end - function provider.set_password(username, password) - return nil, "Password based auth not supported."; - end +function provider.set_password(username, password) + return nil, "Password based auth not supported."; +end - function provider.user_exists(username) - return nil, "Only anonymous users are supported."; -- FIXME check if anonymous user is connected? - end +function provider.user_exists(username) + return nil, "Only anonymous users are supported."; -- FIXME check if anonymous user is connected? +end - function provider.create_user(username, password) - return nil, "Account creation/modification not supported."; - end +function provider.create_user(username, password) + return nil, "Account creation/modification not supported."; +end - function provider.get_sasl_handler() - local anonymous_authentication_profile = { - anonymous = function(sasl, username, realm) - return true; -- for normal usage you should always return true here - end - }; - return new_sasl(module.host, anonymous_authentication_profile); - end +function provider.get_sasl_handler() + local anonymous_authentication_profile = { + anonymous = function(sasl, username, realm) + return true; -- for normal usage you should always return true here + end + }; + return new_sasl(module.host, anonymous_authentication_profile); +end - return provider; +function provider.users() + return next, hosts[host].sessions, nil; end +-- datamanager callback to disable writes local function dm_callback(username, host, datastore, data) if host == module.host then return false; @@ -51,8 +54,7 @@ local function dm_callback(username, host, datastore, data) return username, host, datastore, data; end -if module:get_option_boolean("disallow_s2s", true) then - hosts[module.host].disallow_s2s = true; +if not module:get_option_boolean("allow_anonymous_s2s", false) then module:hook("route/remote", function (event) return false; -- Block outgoing s2s from anonymous users end, 300); @@ -65,5 +67,5 @@ function module.unload() datamanager.remove_callback(dm_callback); end -module:add_item("auth-provider", new_default_provider(module.host)); +module:provides("auth", provider);