diff --git a/resources/sql/autopatches/20141107.phriction.popkeys.php b/resources/sql/autopatches/20141107.phriction.popkeys.php new file mode 100644 index 0000000000..9af7e3a952 --- /dev/null +++ b/resources/sql/autopatches/20141107.phriction.popkeys.php @@ -0,0 +1,29 @@ +establishConnection('w'); + +echo "Populating Phriction mailkeys.\n"; + +foreach (new LiskMigrationIterator($table) as $doc) { + $id = $doc->getID(); + + $key = $doc->getMailKey(); + if ((strlen($key) == 20) && (strpos($key, "\0") === false)) { + // To be valid, keys must have length 20 and not contain any null bytes. + // See T6487. + echo "Document has valid mailkey.\n"; + continue; + } else { + echo "Populating mailkey for document {$id}...\n"; + $mail_key = Filesystem::readRandomCharacters(20); + queryfx( + $conn_w, + 'UPDATE %T SET mailKey = %s WHERE id = %d', + $table->getTableName(), + $mail_key, + $id); + } +} + +echo "Done.\n";