@@ -24,7 +24,7 @@ passport.deserializeUser((id, done) => {
2424 * Sign in using Email/Username and Password.
2525 */
2626passport . use ( new LocalStrategy ( { usernameField : 'email' } , ( email , password , done ) => {
27- User . findByMailOrName ( email )
27+ User . findByEmailOrUsername ( email )
2828 . then ( ( user ) => { // eslint-disable-line consistent-return
2929 if ( ! user ) {
3030 return done ( null , false , { msg : `Email ${ email } not found.` } ) ;
@@ -43,7 +43,7 @@ passport.use(new LocalStrategy({ usernameField: 'email' }, (email, password, don
4343 * Authentificate using Basic Auth (Username + Api Key)
4444 */
4545passport . use ( new BasicStrategy ( ( userid , key , done ) => {
46- User . findOne ( { username : userid } ) . collation ( { locale : 'en' , strength : 2 } ) . exec ( ( err , user ) => { // eslint-disable-line consistent-return
46+ User . findByUsername ( userid , ( err , user ) => { // eslint-disable-line consistent-return
4747 if ( err ) { return done ( err ) ; }
4848 if ( ! user ) { return done ( null , false ) ; }
4949 user . findMatchingKey ( key , ( innerErr , isMatch , keyDocument ) => {
@@ -98,9 +98,7 @@ passport.use(new GitHubStrategy({
9898 const emails = getVerifiedEmails ( profile . emails ) ;
9999 const primaryEmail = getPrimaryEmail ( profile . emails ) ;
100100
101- User . findOne ( {
102- email : { $in : emails } ,
103- } ) . collation ( { locale : 'en' , strength : 2 } ) . exec ( ( findByEmailErr , existingEmailUser ) => {
101+ User . findByEmail ( emails , ( findByEmailErr , existingEmailUser ) => {
104102 if ( existingEmailUser ) {
105103 existingEmailUser . email = existingEmailUser . email || primaryEmail ;
106104 existingEmailUser . github = profile . id ;
@@ -141,47 +139,44 @@ passport.use(new GoogleStrategy({
141139
142140 const primaryEmail = profile . _json . emails [ 0 ] . value ;
143141
144- User . findOne ( {
145- email : primaryEmail ,
146- } ) . collation ( { locale : 'en' , strength : 2 } ) . exec ( ( findByEmailErr , existingEmailUser ) => {
142+ User . findByEmail ( primaryEmail , ( findByEmailErr , existingEmailUser ) => {
147143 let username = profile . _json . emails [ 0 ] . value . split ( '@' ) [ 0 ] ;
148- User . findOne ( { username } ) . collation ( { locale : 'en' , strength : 2 } )
149- . exec ( ( findByUsernameErr , existingUsernameUser ) => {
150- if ( existingUsernameUser ) {
151- const adj = friendlyWords . predicates [ Math . floor ( Math . random ( ) * friendlyWords . predicates . length ) ] ;
152- username = slugify ( `${ username } ${ adj } ` ) ;
153- }
154- // what if a username is already taken from the display name too?
155- // then, append a random friendly word?
156- if ( existingEmailUser ) {
157- existingEmailUser . email = existingEmailUser . email || primaryEmail ;
158- existingEmailUser . google = profile . _json . emails [ 0 ] . value ;
159- existingEmailUser . username = existingEmailUser . username || username ;
160- existingEmailUser . tokens . push ( { kind : 'google' , accessToken } ) ;
161- existingEmailUser . name = existingEmailUser . name || profile . _json . displayName ;
162- existingEmailUser . verified = User . EmailConfirmation . Verified ;
163- existingEmailUser . save ( ( saveErr ) => {
164- if ( saveErr ) {
165- console . log ( saveErr ) ;
166- }
167- done ( null , existingEmailUser ) ;
168- } ) ;
169- } else {
170- const user = new User ( ) ;
171- user . email = primaryEmail ;
172- user . google = profile . _json . emails [ 0 ] . value ;
173- user . username = username ;
174- user . tokens . push ( { kind : 'google' , accessToken } ) ;
175- user . name = profile . _json . displayName ;
176- user . verified = User . EmailConfirmation . Verified ;
177- user . save ( ( saveErr ) => {
178- if ( saveErr ) {
179- console . log ( saveErr ) ;
180- }
181- done ( null , user ) ;
182- } ) ;
183- }
184- } ) ;
144+ User . findByUsername ( username , ( findByUsernameErr , existingUsernameUser ) => {
145+ if ( existingUsernameUser ) {
146+ const adj = friendlyWords . predicates [ Math . floor ( Math . random ( ) * friendlyWords . predicates . length ) ] ;
147+ username = slugify ( `${ username } ${ adj } ` ) ;
148+ }
149+ // what if a username is already taken from the display name too?
150+ // then, append a random friendly word?
151+ if ( existingEmailUser ) {
152+ existingEmailUser . email = existingEmailUser . email || primaryEmail ;
153+ existingEmailUser . google = profile . _json . emails [ 0 ] . value ;
154+ existingEmailUser . username = existingEmailUser . username || username ;
155+ existingEmailUser . tokens . push ( { kind : 'google' , accessToken } ) ;
156+ existingEmailUser . name = existingEmailUser . name || profile . _json . displayName ;
157+ existingEmailUser . verified = User . EmailConfirmation . Verified ;
158+ existingEmailUser . save ( ( saveErr ) => {
159+ if ( saveErr ) {
160+ console . log ( saveErr ) ;
161+ }
162+ done ( null , existingEmailUser ) ;
163+ } ) ;
164+ } else {
165+ const user = new User ( ) ;
166+ user . email = primaryEmail ;
167+ user . google = profile . _json . emails [ 0 ] . value ;
168+ user . username = username ;
169+ user . tokens . push ( { kind : 'google' , accessToken } ) ;
170+ user . name = profile . _json . displayName ;
171+ user . verified = User . EmailConfirmation . Verified ;
172+ user . save ( ( saveErr ) => {
173+ if ( saveErr ) {
174+ console . log ( saveErr ) ;
175+ }
176+ done ( null , user ) ;
177+ } ) ;
178+ }
179+ } ) ;
185180 } ) ;
186181 } ) ;
187182} ) ) ;
0 commit comments