@@ -2,6 +2,7 @@ import { randomString } from '../cryptoUtils';
2
2
import { inflate } from '../triggers' ;
3
3
import AdaptableController from './AdaptableController' ;
4
4
import MailAdapter from '../Adapters/Email/MailAdapter' ;
5
+ import rest from '../rest' ;
5
6
6
7
var DatabaseAdapter = require ( '../DatabaseAdapter' ) ;
7
8
var RestWrite = require ( '../RestWrite' ) ;
@@ -165,9 +166,17 @@ export class UserController extends AdaptableController {
165
166
}
166
167
167
168
updatePassword ( username , token , password , config ) {
168
- return this . checkResetTokenValidity ( username , token ) . then ( ( ) => {
169
- return updateUserPassword ( username , token , password , this . config ) ;
170
- } ) ;
169
+ return this . checkResetTokenValidity ( username , token ) . then ( ( user ) => {
170
+ return updateUserPassword ( user . _id , password , this . config ) ;
171
+ } ) . then ( ( ) => {
172
+ // clear reset password token
173
+ return this . config . database . adaptiveCollection ( '_User' ) . then ( function ( collection ) {
174
+ // Need direct database access because verification token is not a parse field
175
+ return collection . findOneAndUpdate ( { username : username } , // query
176
+ { $unset : { _perishable_token : null } } // update
177
+ ) ;
178
+ } ) ;
179
+ } ) ;
171
180
}
172
181
173
182
defaultVerificationEmail ( { link, user, appName, } ) {
@@ -192,12 +201,10 @@ export class UserController extends AdaptableController {
192
201
}
193
202
194
203
// Mark this private
195
- function updateUserPassword ( username , token , password , config ) {
196
- var write = new RestWrite ( config , Auth . master ( config ) , '_User' , {
197
- username : username ,
198
- _perishable_token : token
199
- } , { password : password , _perishable_token : null } , undefined ) ;
200
- return write . execute ( ) ;
204
+ function updateUserPassword ( userId , password , config ) {
205
+ return rest . update ( config , Auth . master ( config ) , '_User' , userId , {
206
+ password : password
207
+ } ) ;
201
208
}
202
209
203
210
export default UserController ;
0 commit comments