diff --git a/resources/sql/autopatches/20170424.user.01.verify.php b/resources/sql/autopatches/20170424.user.01.verify.php new file mode 100644 --- /dev/null +++ b/resources/sql/autopatches/20170424.user.01.verify.php @@ -0,0 +1,34 @@ +establishConnection('w'); + +foreach (new LiskMigrationIterator($table) as $user) { + // Ignore users who are verified. + if ($user->getIsEmailVerified()) { + continue; + } + + // Ignore unverified users with missing (rare) or unverified (common) + // primary emails: it's correct that their accounts are not verified. + $primary = $user->loadPrimaryEmail(); + if (!$primary) { + continue; + } + + if (!$primary->getIsVerified()) { + continue; + } + + queryfx( + $conn, + 'UPDATE %T SET isEmailVerified = 1 WHERE id = %d', + $table->getTableName(), + $user->getID()); + + echo tsprintf( + "%s\n", + pht( + 'Corrected account verification state for user "%s".', + $user->getUsername())); +}