Changeset

5115:3939960b3c07

mod_auth_{internal_plain,cyrus,anonymous}: Get rid of useless wrapper function new_default_provider.
author Waqas Hussain <waqas20@gmail.com>
date Wed, 12 Sep 2012 21:32:12 +0500
parents 5113:3393cab2dd6b
children 5116:5f9066db1b4d
files plugins/mod_auth_anonymous.lua plugins/mod_auth_cyrus.lua plugins/mod_auth_internal_plain.lua
diffstat 3 files changed, 121 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_auth_anonymous.lua	Wed Sep 05 16:51:16 2012 +0200
+++ b/plugins/mod_auth_anonymous.lua	Wed Sep 12 21:32:12 2012 +0500
@@ -9,41 +9,39 @@
 local new_sasl = require "util.sasl".new;
 local datamanager = require "util.datamanager";
 
-function new_default_provider(host)
-	local provider = { name = "anonymous" };
-
-	function provider.test_password(username, password)
-		return nil, "Password based auth not supported.";
-	end
+-- define auth provider
+local provider = { name = "anonymous" };
 
-	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.test_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.create_user(username, password)
-		return nil, "Account creation/modification not supported.";
-	end
+function provider.get_password(username)
+	return nil, "Password not available.";
+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.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.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
+
+-- datamanager callback to disable writes
 local function dm_callback(username, host, datastore, data)
 	if host == module.host then
 		return false;
@@ -64,5 +62,5 @@
 	datamanager.remove_callback(dm_callback);
 end
 
-module:add_item("auth-provider", new_default_provider(module.host));
+module:add_item("auth-provider", provider);
 
--- a/plugins/mod_auth_cyrus.lua	Wed Sep 05 16:51:16 2012 +0200
+++ b/plugins/mod_auth_cyrus.lua	Wed Sep 12 21:32:12 2012 +0500
@@ -41,45 +41,44 @@
 	end
 end
 
-function new_default_provider(host)
-	local provider = { name = "cyrus" };
-	log("debug", "initializing default authentication provider for host '%s'", host);
-
-	function provider.test_password(username, password)
-		return nil, "Legacy auth not supported with Cyrus SASL.";
-	end
+local host = module.host;
 
-	function provider.get_password(username)
-		return nil, "Passwords unavailable for Cyrus SASL.";
-	end
-	
-	function provider.set_password(username, password)
-		return nil, "Passwords unavailable for Cyrus SASL.";
-	end
+-- define auth provider
+local provider = { name = "cyrus" };
+log("debug", "initializing default authentication provider for host '%s'", host);
 
-	function provider.user_exists(username)
-		if require_provisioning then
-			return usermanager_user_exists(username, module.host);
-		end
-		return true;
-	end
-
-	function provider.create_user(username, password)
-		return nil, "Account creation/modification not available with Cyrus SASL.";
-	end
+function provider.test_password(username, password)
+	return nil, "Legacy auth not supported with Cyrus SASL.";
+end
 
-	function provider.get_sasl_handler()
-		local handler = new_sasl(module.host);
-		if require_provisioning then
-			function handler.require_provisioning(username)
-				return usermanager_user_exists(username, module.host);
-			end
-		end
-		return handler;
-	end
+function provider.get_password(username)
+	return nil, "Passwords unavailable for Cyrus SASL.";
+end
 
-	return provider;
+function provider.set_password(username, password)
+	return nil, "Passwords unavailable for Cyrus SASL.";
 end
 
-module:add_item("auth-provider", new_default_provider(module.host));
+function provider.user_exists(username)
+	if require_provisioning then
+		return usermanager_user_exists(username, host);
+	end
+	return true;
+end
+
+function provider.create_user(username, password)
+	return nil, "Account creation/modification not available with Cyrus SASL.";
+end
 
+function provider.get_sasl_handler()
+	local handler = new_sasl(host);
+	if require_provisioning then
+		function handler.require_provisioning(username)
+			return usermanager_user_exists(username, host);
+		end
+	end
+	return handler;
+end
+
+module:add_item("auth-provider", provider);
+
--- a/plugins/mod_auth_internal_plain.lua	Wed Sep 05 16:51:16 2012 +0200
+++ b/plugins/mod_auth_internal_plain.lua	Wed Sep 12 21:32:12 2012 +0500
@@ -12,73 +12,71 @@
 local nodeprep = require "util.encodings".stringprep.nodeprep;
 
 local log = module._log;
-
-function new_default_provider(host)
-	local provider = { name = "internal_plain" };
-	log("debug", "initializing internal_plain authentication provider for host '%s'", host);
+local host = module.host;
 
-	function provider.test_password(username, password)
-		log("debug", "test password '%s' for user %s at host %s", password, username, module.host);
-		local credentials = datamanager.load(username, host, "accounts") or {};
-	
-		if password == credentials.password then
-			return true;
-		else
-			return nil, "Auth failed. Invalid username or password.";
-		end
-	end
+-- define auth provider
+local provider = { name = "internal_plain" };
+log("debug", "initializing internal_plain authentication provider for host '%s'", host);
 
-	function provider.get_password(username)
-		log("debug", "get_password for username '%s' at host '%s'", username, module.host);
-		return (datamanager.load(username, host, "accounts") or {}).password;
-	end
-	
-	function provider.set_password(username, password)
-		local account = datamanager.load(username, host, "accounts");
-		if account then
-			account.password = password;
-			return datamanager.store(username, host, "accounts", account);
-		end
-		return nil, "Account not available.";
-	end
+function provider.test_password(username, password)
+	log("debug", "test password '%s' for user %s at host %s", password, username, host);
+	local credentials = datamanager.load(username, host, "accounts") or {};
 
-	function provider.user_exists(username)
-		local account = datamanager.load(username, host, "accounts");
-		if not account then
-			log("debug", "account not found for username '%s' at host '%s'", username, module.host);
-			return nil, "Auth failed. Invalid username";
-		end
+	if password == credentials.password then
 		return true;
+	else
+		return nil, "Auth failed. Invalid username or password.";
 	end
-
-	function provider.create_user(username, password)
-		return datamanager.store(username, host, "accounts", {password = password});
-	end
-	
-	function provider.delete_user(username)
-		return datamanager.store(username, host, "accounts", nil);
-	end
+end
 
-	function provider.get_sasl_handler()
-		local getpass_authentication_profile = {
-			plain = function(sasl, username, realm)
-				local prepped_username = nodeprep(username);
-				if not prepped_username then
-					log("debug", "NODEprep failed on username: %s", username);
-					return "", nil;
-				end
-				local password = usermanager.get_password(prepped_username, realm);
-				if not password then
-					return "", nil;
-				end
-				return password, true;
-			end
-		};
-		return new_sasl(module.host, getpass_authentication_profile);
+function provider.get_password(username)
+	log("debug", "get_password for username '%s' at host '%s'", username, host);
+	return (datamanager.load(username, host, "accounts") or {}).password;
+end
+
+function provider.set_password(username, password)
+	local account = datamanager.load(username, host, "accounts");
+	if account then
+		account.password = password;
+		return datamanager.store(username, host, "accounts", account);
 	end
-	
-	return provider;
+	return nil, "Account not available.";
 end
 
-module:add_item("auth-provider", new_default_provider(module.host));
+function provider.user_exists(username)
+	local account = datamanager.load(username, host, "accounts");
+	if not account then
+		log("debug", "account not found for username '%s' at host '%s'", username, host);
+		return nil, "Auth failed. Invalid username";
+	end
+	return true;
+end
+
+function provider.create_user(username, password)
+	return datamanager.store(username, host, "accounts", {password = password});
+end
+
+function provider.delete_user(username)
+	return datamanager.store(username, host, "accounts", nil);
+end
 
+function provider.get_sasl_handler()
+	local getpass_authentication_profile = {
+		plain = function(sasl, username, realm)
+			local prepped_username = nodeprep(username);
+			if not prepped_username then
+				log("debug", "NODEprep failed on username: %s", username);
+				return "", nil;
+			end
+			local password = usermanager.get_password(prepped_username, realm);
+			if not password then
+				return "", nil;
+			end
+			return password, true;
+		end
+	};
+	return new_sasl(host, getpass_authentication_profile);
+end
+	
+module:add_item("auth-provider", provider);
+