Support uniqueness for realm users

This commit is contained in:
David Cheung 2016-08-18 17:52:04 -04:00
parent c3ba632aa3
commit d544ae1bf8
2 changed files with 21 additions and 2 deletions

View File

@ -789,8 +789,18 @@ module.exports = function(User) {
message: g.f('Must provide a valid email'),
});
// FIXME: We need to add support for uniqueness of composite keys in juggler
if (!(UserModel.settings.realmRequired || UserModel.settings.realmDelimiter)) {
// Realm users validation
if (UserModel.settings.realmRequired && UserModel.settings.realmDelimiter) {
UserModel.validatesUniquenessOf('email', {
message: 'Email already exists',
scopedTo: ['realm'],
});
UserModel.validatesUniquenessOf('username', {
message: 'User already exists',
scopedTo: ['realm'],
});
} else {
// Regular(Non-realm) users validation
UserModel.validatesUniquenessOf('email', { message: 'Email already exists' });
UserModel.validatesUniquenessOf('username', { message: 'User already exists' });
}

View File

@ -998,6 +998,15 @@ describe('User', function() {
});
});
it('honors unique email for realm', function(done) {
User.create(realm1User, function(err, u) {
assert(err);
assert(err.message.match(/User already exists/) &&
err.message.match(/Email already exists/));
done();
});
});
it('rejects a user by without realm', function(done) {
User.login(credentialWithoutRealm, function(err, accessToken) {
assert(err);