File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed
Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -789,8 +789,18 @@ module.exports = function(User) {
789789 message : g . f ( 'Must provide a valid email' ) ,
790790 } ) ;
791791
792- // FIXME: We need to add support for uniqueness of composite keys in juggler
793- if ( ! ( UserModel . settings . realmRequired || UserModel . settings . realmDelimiter ) ) {
792+ // Realm users validation
793+ if ( UserModel . settings . realmRequired && UserModel . settings . realmDelimiter ) {
794+ UserModel . validatesUniquenessOf ( 'email' , {
795+ message : 'Email already exists' ,
796+ scopedTo : [ 'realm' ] ,
797+ } ) ;
798+ UserModel . validatesUniquenessOf ( 'username' , {
799+ message : 'User already exists' ,
800+ scopedTo : [ 'realm' ] ,
801+ } ) ;
802+ } else {
803+ // Regular(Non-realm) users validation
794804 UserModel . validatesUniquenessOf ( 'email' , { message : 'Email already exists' } ) ;
795805 UserModel . validatesUniquenessOf ( 'username' , { message : 'User already exists' } ) ;
796806 }
Original file line number Diff line number Diff line change @@ -998,6 +998,15 @@ describe('User', function() {
998998 } ) ;
999999 } ) ;
10001000
1001+ it ( 'honors unique email for realm' , function ( done ) {
1002+ User . create ( realm1User , function ( err , u ) {
1003+ assert ( err ) ;
1004+ assert ( err . message . match ( / U s e r a l r e a d y e x i s t s / ) &&
1005+ err . message . match ( / E m a i l a l r e a d y e x i s t s / ) ) ;
1006+ done ( ) ;
1007+ } ) ;
1008+ } ) ;
1009+
10011010 it ( 'rejects a user by without realm' , function ( done ) {
10021011 User . login ( credentialWithoutRealm , function ( err , accessToken ) {
10031012 assert ( err ) ;
You can’t perform that action at this time.
0 commit comments