Software / code / prosody
Comparison
plugins/mod_blocklist.lua @ 12775:1dd468c63a3d
mod_blocklist: Add option 'migrate_legacy_blocking' to disable migration from mod_privacy
Tiny performance improvement for new users by skipping this check. Most
servers should have gone trough the migration for all active users long
ago.
As a suitable first step of phasing out this code, we make it possible
to disable it first. Later it can be disabled by default, before finally
the code is deleted.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 17 Oct 2022 15:20:06 +0200 |
| parent | 10111:0f335815244f |
| child | 12977:74b9e05af71e |
comparison
equal
deleted
inserted
replaced
| 12774:fc4adc32a537 | 12775:1dd468c63a3d |
|---|---|
| 52 cache[username] = blocklist; | 52 cache[username] = blocklist; |
| 53 return true; | 53 return true; |
| 54 end | 54 end |
| 55 | 55 |
| 56 -- Migrates from the old mod_privacy storage | 56 -- Migrates from the old mod_privacy storage |
| 57 -- TODO mod_privacy was removed in 0.10.0, this should be phased out | |
| 57 local function migrate_privacy_list(username) | 58 local function migrate_privacy_list(username) |
| 58 local legacy_data = module:open_store("privacy"):get(username); | 59 local legacy_data = module:open_store("privacy"):get(username); |
| 59 if not legacy_data or not legacy_data.lists or not legacy_data.default then return; end | 60 if not legacy_data or not legacy_data.lists or not legacy_data.default then return; end |
| 60 local default_list = legacy_data.lists[legacy_data.default]; | 61 local default_list = legacy_data.lists[legacy_data.default]; |
| 61 if not default_list or not default_list.items then return; end | 62 if not default_list or not default_list.items then return; end |
| 73 end | 74 end |
| 74 end | 75 end |
| 75 end | 76 end |
| 76 set_blocklist(username, migrated_data); | 77 set_blocklist(username, migrated_data); |
| 77 return migrated_data; | 78 return migrated_data; |
| 79 end | |
| 80 | |
| 81 if not module:get_option_boolean("migrate_legacy_blocking", true) then | |
| 82 migrate_privacy_list = function (username) | |
| 83 module:log("debug", "Migrating from mod_privacy disabled, user '%s' will start with a fresh blocklist", username); | |
| 84 return nil; | |
| 85 end | |
| 78 end | 86 end |
| 79 | 87 |
| 80 local function get_blocklist(username) | 88 local function get_blocklist(username) |
| 81 local blocklist = cache2:get(username); | 89 local blocklist = cache2:get(username); |
| 82 if not blocklist then | 90 if not blocklist then |