test_util_multitable: make mt variable local [luacheck]
[prosody.git] / plugins / mod_storage_internal.lua
index 92ac3ef50fcfe729e206bf644728214800b995cd..ade4f0a656ec7b12ee15076c4823fe48be382b2c 100644 (file)
@@ -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,12 +19,16 @@ function driver:set(user, data)
        return datamanager.store(user, host, self.store, data);
 end
 
-function driver:list_stores(username)
-       return datamanager.list_stores(username, host);
+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:add_item("data-driver", driver);
+module:provides("storage", driver);