Merge 0.10->trunk
[prosody.git] / core / storagemanager.lua
index 33fd5d494c370376e185533eb23c2e20c02493ab..cadae0ed13aac80e518f5f3976ceb1d686694af8 100644 (file)
@@ -118,6 +118,21 @@ local map_shim_mt = {
                        current[key] = data;
                        return self.keyval_store:set(username, current);
                end;
+               set_keys = function (self, username, keydatas)
+                       local current, err = self.keyval_store:get(username);
+                       if current == nil then
+                               if err then
+                                       return nil, err;
+                               end
+                               current = {};
+                       end
+                       for k,v in pairs(keydatas) do
+                               if v == self.remove then v = nil; end
+                               current[k] = v;
+                       end
+                       return self.keyval_store:set(username, current);
+               end;
+               remove = {};
        };
 }
 
@@ -181,7 +196,7 @@ end
 function datamanager.users(host, datastore, typ)
        local driver = open(host, datastore, typ);
        if not driver.users then
-               return function() log("warn", "storage driver %s does not support listing users", driver.name) end
+               return function() log("warn", "Storage driver %s does not support listing users", driver.name) end
        end
        return driver:users();
 end