Merge pull request #2298 from strongloop/user-realm-composite-key

Composite Key validation for Realm enabled users
This commit is contained in:
David Cheung 2016-09-20 14:15:10 -04:00 committed by GitHub
commit 489ed919a5
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);