diff --git a/common/models/user.js b/common/models/user.js index c89c34e9..dadc6f90 100644 --- a/common/models/user.js +++ b/common/models/user.js @@ -845,7 +845,7 @@ module.exports = function(User) { if (emailChanged && ctx.Model.settings.emailVerificationRequired) { ctx.instance.emailVerified = false; } - } else { + } else if (ctx.data.email) { emailChanged = ctx.hookState.originalUserData.some(function(data) { return data.email != ctx.data.email; }); diff --git a/test/user.test.js b/test/user.test.js index c9d0f7df..f58ce330 100644 --- a/test/user.test.js +++ b/test/user.test.js @@ -2358,6 +2358,28 @@ describe('User', function() { ], done); }); + it('should not set verification to false after something other than email is updated', + function(done) { + User.settings.emailVerificationRequired = true; + async.series([ + function updateUser(next) { + userInstance.updateAttribute('realm', 'test', function(err, info) { + if (err) return next(err); + assert.equal(info.realm, 'test'); + next(); + }); + }, + function findUser(next) { + User.findById(userInstance.id, function(err, info) { + if (err) return next(err); + assert.equal(info.realm, 'test'); + assert.equal(info.emailVerified, true); + next(); + }); + }, + ], done); + }); + function createOriginalUser(done) { var userData = { email: 'original@example.com',