Merge 0.9->0.10
[prosody.git] / core / storagemanager.lua
index b72b84db138967a7280dbcb10733242959848006..fb868d03e574db9d92ad23b062e7a06ceb0296ea 100644 (file)
@@ -98,9 +98,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
@@ -136,6 +141,7 @@ return {
        load_driver = load_driver;
        get_driver = get_driver;
        open = open;
+       purge = purge;
 
        olddm = olddm;
 };