diff options
author | Kim Alvefur <zash@zash.se> | 2016-12-08 18:13:56 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2016-12-08 18:13:56 +0100 |
commit | 6280a047f6766dbf0423b5e76107d5c624f96e54 (patch) | |
tree | b1b3ee010724be5c16f7414619d757a604aedaf5 | |
parent | 9a914445bf15dcfe207b86cdbd49836f477bf396 (diff) | |
download | prosody-6280a047f6766dbf0423b5e76107d5c624f96e54.tar.gz prosody-6280a047f6766dbf0423b5e76107d5c624f96e54.zip |
mod_blocklist: Make the 'false' metadata field a table so we can store timestamps and other useful data
-rw-r--r-- | plugins/mod_blocklist.lua | 13 |
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 |