From 302f06df9519802d906cf4b553e314585f1bead9 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 6 Sep 2017 15:08:51 -0400 Subject: [PATCH] fixes #5914 --- .../1.6.0/clear-stale-digest-template.js | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/upgrades/1.6.0/clear-stale-digest-template.js diff --git a/src/upgrades/1.6.0/clear-stale-digest-template.js b/src/upgrades/1.6.0/clear-stale-digest-template.js new file mode 100644 index 0000000000..8b7adeed4b --- /dev/null +++ b/src/upgrades/1.6.0/clear-stale-digest-template.js @@ -0,0 +1,31 @@ +'use strict'; + +var meta = require('../../meta'); + +var async = require('async'); +var crypto = require('crypto'); + +module.exports = { + name: 'Clearing stale digest templates that were accidentally saved as custom', + timestamp: Date.UTC(2017, 8, 6), + method: function (callback) { + var matches = [ + '112e541b40023d6530dd44df4b0d9c5d', // digest @ 75917e25b3b5ad7bed8ed0c36433fb35c9ab33eb + '110b8805f70395b0282fd10555059e9f', // digest @ 9b02bb8f51f0e47c6e335578f776ffc17bc03537 + '9538e7249edb369b2a25b03f2bd3282b', // digest @ 3314ab4b83138c7ae579ac1f1f463098b8c2d414 + ]; + + async.waterfall([ + async.apply(meta.configs.getFields, ['email:custom:digest']), + function (fieldset, next) { + var hash = fieldset['email:custom:digest'] ? crypto.createHash('md5').update(fieldset['email:custom:digest']).digest('hex') : null; + + if (matches.includes(hash)) { + meta.configs.remove('email:custom:digest', next); + } else { + setImmediate(next); + } + }, + ], callback); + }, +};