aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_blocklist.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2016-12-08 18:13:56 +0100
committerKim Alvefur <zash@zash.se>2016-12-08 18:13:56 +0100
commit6280a047f6766dbf0423b5e76107d5c624f96e54 (patch)
treeb1b3ee010724be5c16f7414619d757a604aedaf5 /plugins/mod_blocklist.lua
parent9a914445bf15dcfe207b86cdbd49836f477bf396 (diff)
downloadprosody-6280a047f6766dbf0423b5e76107d5c624f96e54.tar.gz
prosody-6280a047f6766dbf0423b5e76107d5c624f96e54.zip
mod_blocklist: Make the 'false' metadata field a table so we can store timestamps and other useful data
Diffstat (limited to 'plugins/mod_blocklist.lua')
-rw-r--r--plugins/mod_blocklist.lua13
1 files changed, 9 insertions, 4 deletions
diff --git a/plugins/mod_blocklist.lua b/plugins/mod_blocklist.lua
index 9083dda4..f0b305d6 100644
--- a/plugins/mod_blocklist.lua
+++ b/plugins/mod_blocklist.lua
@@ -54,7 +54,7 @@ end
-- Migrates from the old mod_privacy storage
local function migrate_privacy_list(username)
- local migrated_data = { [false] = "not empty" };
+ local migrated_data = { [false] = { created = os.time(); migrated = "privacy" }};
local legacy_data = module:open_store("privacy"):get(username);
if legacy_data and legacy_data.lists and legacy_data.default then
legacy_data = legacy_data.lists[legacy_data.default];
@@ -160,18 +160,23 @@ local function edit_blocklist(event)
local blocklist = get_blocklist(username);
- local new_blocklist = {};
+ local new_blocklist = {
+ -- We set the [false] key to someting as a signal not to migrate privacy lists
+ [false] = blocklist[false] or { created = os.time(); };
+ };
+ if type(blocklist[false]) == "table" then
+ new_blocklist[false].modified = os.time();
+ end
if is_blocking or next(new) then
for jid in pairs(blocklist) do
- new_blocklist[jid] = true;
+ if jid then new_blocklist[jid] = true; end
end
for jid in pairs(new) do
new_blocklist[jid] = is_blocking;
end
-- else empty the blocklist
end
- new_blocklist[false] = "not empty"; -- In order to avoid doing the migration thing twice
local ok, err = set_blocklist(username, new_blocklist);
if ok then