From: Matthew Wild Date: Fri, 12 Feb 2010 12:07:46 +0000 (+0000) Subject: mod_privacy: Upgrade old privacy lists to new storage format, so they don't get lost X-Git-Url: https://git.enpas.org/?a=commitdiff_plain;h=c6752bbf9c04f53eca26f6431ab3c86d74fbaba7;p=prosody.git mod_privacy: Upgrade old privacy lists to new storage format, so they don't get lost --- diff --git a/plugins/mod_privacy.lua b/plugins/mod_privacy.lua index d6ff9761..1cb931e0 100644 --- a/plugins/mod_privacy.lua +++ b/plugins/mod_privacy.lua @@ -303,7 +303,16 @@ module:hook("iq/bare/jabber:iq:privacy:query", function(data) if stanza.attr.to == nil then -- only service requests to own bare JID local query = stanza.tags[1]; -- the query element local valid = false; - local privacy_lists = datamanager.load(origin.username, origin.host, "privacy") or {}; + local privacy_lists = datamanager.load(origin.username, origin.host, "privacy") or { lists = {} }; + + if privacy_lists.lists[1] then -- Code to migrate from old privacy lists format, remove in 0.8 + module:log("info", "Upgrading format of stored privacy lists for %s@%s", origin.username, origin.host); + local lists = privacy_lists.lists; + for idx, list in ipairs(lists) do + lists[list.name] = list; + lists[idx] = nil; + end + end if stanza.attr.type == "set" then if #query.tags == 1 then -- the element MUST NOT include more than one child element