Skip to content

Commit

Permalink
Support uniqueness for realm users
Browse files Browse the repository at this point in the history
  • Loading branch information
David Cheung committed Sep 20, 2016
1 parent c3ba632 commit d544ae1
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
14 changes: 12 additions & 2 deletions common/models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -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' });
}
Expand Down
9 changes: 9 additions & 0 deletions test/user.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit d544ae1

Please sign in to comment.