X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_storage_internal.lua;h=ade4f0a656ec7b12ee15076c4823fe48be382b2c;hb=163d2b9489196e5c9a532ecd4494afaddc414df6;hp=821d1e1a32a6ca6d0cbf59cb9cfce75abe862f72;hpb=093e7bb084c42c8ec56cc94bbd51cff25f94664a;p=prosody.git diff --git a/plugins/mod_storage_internal.lua b/plugins/mod_storage_internal.lua index 821d1e1a..ade4f0a6 100644 --- a/plugins/mod_storage_internal.lua +++ b/plugins/mod_storage_internal.lua @@ -2,11 +2,14 @@ local datamanager = require "core.storagemanager".olddm; local host = module.host; -local driver = { name = "internal" }; +local driver = {}; local driver_mt = { __index = driver }; -function driver:open(store) - return setmetatable({ store = store }, driver_mt); +function driver:open(store, typ) + if typ and typ ~= "keyval" then + return nil, "unsupported-store"; + end + return setmetatable({ store = store, type = typ }, driver_mt); end function driver:get(user) return datamanager.load(user, host, self.store); @@ -16,4 +19,16 @@ function driver:set(user, data) return datamanager.store(user, host, self.store, data); end -module:add_item("data-driver", driver); +function driver:stores(username) + return datamanager.stores(username, host); +end + +function driver:users() + return datamanager.users(host, self.store, self.type); +end + +function driver:purge(user) + return datamanager.purge(user, host); +end + +module:provides("storage", driver);