From 5320080656d2abacff6665d8ac1911d22ab2c170 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Tue, 9 Feb 2016 16:54:56 +0100
Subject: storagemanager: Add set_keys method to map store shim

---
 core/storagemanager.lua | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

(limited to 'core')

diff --git a/core/storagemanager.lua b/core/storagemanager.lua
index cf2c65d5..4f04e594 100644
--- a/core/storagemanager.lua
+++ b/core/storagemanager.lua
@@ -118,6 +118,23 @@ 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;
+				else
+					current = keydatas;
+				end
+			else
+				for k,v in pairs(keydatas) do
+					if v == self.remove then v = nil; end
+					current[k] = v;
+				end
+			end
+			return self.keyval_store:set(username, current);
+		end;
+		remove = {};
 	};
 }
 
-- 
cgit v1.2.3