X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fstoragemanager.lua;h=fb868d03e574db9d92ad23b062e7a06ceb0296ea;hb=b6d336cbfe79bf837dbf89f80d4852aa58a110c4;hp=b72b84db138967a7280dbcb10733242959848006;hpb=dcf4c0d6e836ae1bb9a4171ebb8ffd1437fed159;p=prosody.git diff --git a/core/storagemanager.lua b/core/storagemanager.lua index b72b84db..fb868d03 100644 --- a/core/storagemanager.lua +++ b/core/storagemanager.lua @@ -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; };