configmanager: Added rawget().
[prosody.git] / plugins / mod_auth_internal_hashed.lua
index c9b8107ba011f3ddeda5fa2c0c2f24c5195902e4..3ce8c0768cdf10c8e38c64852cfc31415b884fc6 100644 (file)
@@ -125,6 +125,9 @@ function new_hashpass_provider(host)
        end
 
        function provider.create_user(username, password)
+               if password == nil then
+                       return datamanager.store(username, host, "accounts", {});
+               end
                local salt = generate_uuid();
                local valid, stored_key, server_key = getAuthenticationDatabaseSHA1(password, salt, iteration_count);
                local stored_key_hex = to_hex(stored_key);
@@ -132,18 +135,22 @@ function new_hashpass_provider(host)
                return datamanager.store(username, host, "accounts", {stored_key = stored_key_hex, server_key = server_key_hex, salt = salt, iteration_count = iteration_count});
        end
 
+       function provider.delete_user(username)
+               return datamanager.store(username, host, "accounts", nil);
+       end
+
        function provider.get_sasl_handler()
                local realm = module:get_option("sasl_realm") or module.host;
                local testpass_authentication_profile = {
-                       plain_test = function(username, password, realm)
+                       plain_test = function(sasl, username, password, realm)
                                local prepped_username = nodeprep(username);
                                if not prepped_username then
                                        log("debug", "NODEprep failed on username: %s", username);
                                        return "", nil;
                                end
-                               return usermanager.test_password(prepped_username, password, realm), true;
+                               return usermanager.test_password(prepped_username, realm, password), true;
                        end,
-                       scram_sha_1 = function(username, realm)
+                       scram_sha_1 = function(sasl, username, realm)
                                local credentials = datamanager.load(username, host, "accounts");
                                if not credentials then return; end
                                if credentials.password then