From 2d922cbb68dc28afa9daab68232202d335d9d741 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Sat, 28 Jul 2012 21:31:54 +0200
Subject: util.datamanager: Add function for removing all data belonging to a
 user

---
 util/datamanager.lua | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/util/datamanager.lua b/util/datamanager.lua
index c29fb416..23a2d74f 100644
--- a/util/datamanager.lua
+++ b/util/datamanager.lua
@@ -253,4 +253,18 @@ function list_stores(username, host)
 	return list;
 end
 
+function purge(username, host)
+	local host_dir = format("%s/%s/", data_path, encode(host));
+	local deleted = 0;
+	for file in lfs.dir(host_dir) do
+		if lfs.attributes(host_dir..file, "mode") == "directory" then
+			local store = decode(file);
+			deleted = deleted + (os_remove(getpath(username, host, store)) and 1 or 0);
+			deleted = deleted + (os_remove(getpath(username, host, store, "list")) and 1 or 0);
+			-- We this will generate loads of "No such file or directory", but do we care?
+		end
+	end
+	return deleted > 0, deleted;
+end
+
 return _M;
-- 
cgit v1.2.3