diff options
author | Waqas Hussain <waqas20@gmail.com> | 2010-08-23 16:54:56 +0500 |
---|---|---|
committer | Waqas Hussain <waqas20@gmail.com> | 2010-08-23 16:54:56 +0500 |
commit | 373662e4a695ef9d75381173eb4efb439e91d91b (patch) | |
tree | 82b3a14bfacbc2e01a2d47570a01d55e2c985eb9 /plugins/mod_auth_cyrus.lua | |
parent | 06fbe2e85325a81cff5f2ddf816ebaf4925364c6 (diff) | |
download | prosody-373662e4a695ef9d75381173eb4efb439e91d91b.tar.gz prosody-373662e4a695ef9d75381173eb4efb439e91d91b.zip |
mod_saslauth, mod_auth_cyrus, util.sasl_cyrus: Moved cyrus account provisioning check out of mod_saslauth.
Diffstat (limited to 'plugins/mod_auth_cyrus.lua')
-rw-r--r-- | plugins/mod_auth_cyrus.lua | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/plugins/mod_auth_cyrus.lua b/plugins/mod_auth_cyrus.lua index c1315e7f..ed3d5408 100644 --- a/plugins/mod_auth_cyrus.lua +++ b/plugins/mod_auth_cyrus.lua @@ -8,9 +8,12 @@ local log = require "util.logger".init("auth_cyrus"); +local usermanager_user_exists = require "core.usermanager".user_exists; + local cyrus_service_realm = module:get_option("cyrus_service_realm"); local cyrus_service_name = module:get_option("cyrus_service_name"); local cyrus_application_name = module:get_option("cyrus_application_name"); +local require_provisioning = module:get_option("cyrus_require_provisioning") or false; prosody.unlock_globals(); --FIXME: Figure out why this is needed and -- why cyrussasl isn't caught by the sandbox @@ -41,6 +44,9 @@ function new_default_provider(host) end function provider.user_exists(username) + if require_provisioning then + return usermanager_user_exists(username, module.host); + end return true; end @@ -50,7 +56,13 @@ function new_default_provider(host) function provider.get_sasl_handler() local realm = module:get_option("sasl_realm") or module.host; - return new_sasl(realm); + local handler = new_sasl(realm); + if require_provisioning then + function handler.require_provisioning(username) + return usermanager_user_exists(username, module.host); + end + end + return handler; end return provider; |