Merge 0.10->trunk
[prosody.git] / core / storagemanager.lua
index 45a1e21c8603734fd7af19f828deffb6e8a742ad..046f496a2ca8c5e85b73d8e0d4e1076744ce5c8e 100644 (file)
@@ -134,9 +134,14 @@ local function purge(user, host)
        if type(storage) == "table" then
                -- multiple storage backends in use that we need to purge
                local purged = {};
-               for store, driver in pairs(storage) do
-                       if not purged[driver] then
-                               purged[driver] = get_driver(host, store):purge(user);
+               for store, driver_name in pairs(storage) do
+                       if not purged[driver_name] then
+                               local driver = get_driver(host, store);
+                               if driver.purge then
+                                       purged[driver_name] = driver:purge(user);
+                               else
+                                       log("warn", "Storage driver %s does not support removing all user data, you may need to delete it manually", driver_name);
+                               end
                        end
                end
        end
@@ -172,6 +177,7 @@ return {
        load_driver = load_driver;
        get_driver = get_driver;
        open = open;
+       purge = purge;
 
        olddm = olddm;
 };