Built motion from commit f74363e9.|2.6.34
[motion2.git] / server / api / authLocal / authLocal.controller.js
index d18eb80..7ef48ed 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x1c03=['loginAttempts','admin','user','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','blockDuration','add','minutes','clearBlockUser','getLicense','catch','MailAccount','email','MailServerOut','CloudProvider','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','merge','format','\x22%s\x22\x20<%s>','Smtp','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','login','local-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','Email\x20parameter\x20is\x20missing','generate','body','trim','toLowerCase','User','find','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','now','save','xCally\x20Motion\x20Password\x20Reset','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','https://','headers','host','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','previousPasswords','validatePasswordHistory','passwordHistoryLimit','Password\x20reset!','use','util','passport','passport-local','Strategy','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','http','Setting','findOne','allowedLoginAttempts','then','name','password','salt','role','disabled','blocked','blockedAt'];(function(_0x4060bb,_0x2e0569){var _0x1c7d5e=function(_0x523d38){while(--_0x523d38){_0x4060bb['push'](_0x4060bb['shift']());}};_0x1c7d5e(++_0x2e0569);}(_0x1c03,0x13e));var _0x31c0=function(_0x4314d7,_0x355218){_0x4314d7=_0x4314d7-0x0;var _0x5c599b=_0x1c03[_0x4314d7];return _0x5c599b;};'use strict';var util=require(_0x31c0('0x0'));var passport=require(_0x31c0('0x1'));var LocalStrategy=require(_0x31c0('0x2'))[_0x31c0('0x3')];var jayson=require('jayson/promise');var _=require(_0x31c0('0x4'));var rs=require(_0x31c0('0x5'));var moment=require(_0x31c0('0x6'));var db=require(_0x31c0('0x7'))['db'];var authService=require(_0x31c0('0x8'));var utils=require(_0x31c0('0x9'));var client=jayson['client'][_0x31c0('0xa')]({'port':0x232b});function localAuthenticate(_0x52061d,_0xe7223c,_0x27abed,_0x5a93fb){var _0x5e9dd4,_0x502218;return db[_0x31c0('0xb')][_0x31c0('0xc')]({'where':{'id':0x1},'attributes':[_0x31c0('0xd'),'blockDuration'],'raw':!![]})[_0x31c0('0xe')](function(_0x43a273){_0x5e9dd4=_0x43a273;return _0x52061d['findOne']({'attributes':['id',_0x31c0('0xf'),_0x31c0('0x10'),_0x31c0('0x11'),_0x31c0('0x12'),_0x31c0('0x13'),_0x31c0('0x14'),_0x31c0('0x15'),_0x31c0('0x16')],'where':{'name':_0xe7223c,'role':{'$or':[_0x31c0('0x17'),_0x31c0('0x18'),'agent']}}});})[_0x31c0('0xe')](function(_0x471c0c){if(!_0x471c0c||_0x471c0c&&_0x471c0c[_0x31c0('0xf')]!==_0xe7223c){throw new Error(_0x31c0('0x19'));}else{_0x502218=_0x471c0c;return _0x502218;}})[_0x31c0('0xe')](function(){_0x502218[_0x31c0('0x1a')](_0x27abed,function(_0x5693d6,_0xe60635){var _0x57ea30=_0x502218[_0x31c0('0x16')]+0x1;if(_0x5693d6){return _0x5a93fb(_0x5693d6);}else if(!_0xe60635){if(_0x502218['disabled']){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}else if(_0x5e9dd4['allowedLoginAttempts']>0x0){if(_0x502218['blocked']){if(_0x5e9dd4[_0x31c0('0x1b')]>0x0){if(moment(_0x502218[_0x31c0('0x15')])[_0x31c0('0x1c')](_0x5e9dd4[_0x31c0('0x1b')],_0x31c0('0x1d'))>moment()){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}else{return utils['clearBlockUser'](_0x502218,_0x57ea30,![],null)[_0x31c0('0xe')](function(){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});});}}else{return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}}else{if(_0x57ea30>=_0x5e9dd4[_0x31c0('0xd')]){return utils[_0x31c0('0x1e')](_0x502218,0x0,!![],moment())['then'](function(){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});});}else{return utils[_0x31c0('0x1e')](_0x502218,_0x57ea30,![],null)[_0x31c0('0xe')](function(){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});});}}}else{return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}}else{if(_0x502218['disabled']){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}else if(_0x5e9dd4[_0x31c0('0xd')]>0x0){if(_0x502218[_0x31c0('0x14')]){if(_0x5e9dd4[_0x31c0('0x1b')]>0x0){if(moment(_0x502218[_0x31c0('0x15')])['add'](_0x5e9dd4[_0x31c0('0x1b')],_0x31c0('0x1d'))>moment()){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}else{return utils[_0x31c0('0x1e')](_0x502218,0x0,![],null)['then'](function(){return utils['getLicense'](_0x502218);})['then'](function(){return _0x5a93fb(null,_0x502218);});}}else{return _0x5a93fb(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0x31c0('0x1e')](_0x502218,0x0,![],null)[_0x31c0('0xe')](function(){return utils[_0x31c0('0x1f')](_0x502218);})[_0x31c0('0xe')](function(){return _0x5a93fb(null,_0x502218);})[_0x31c0('0x20')](function(_0x432361){return _0x5a93fb(null,![],_0x432361);});}}else{if(_0x502218[_0x31c0('0x14')]){return _0x5a93fb(null,![],{'message':_0x31c0('0x19')});}else{return utils[_0x31c0('0x1f')](_0x502218)[_0x31c0('0xe')](function(){return _0x5a93fb(null,_0x502218);});}}}});})['catch'](function(_0x5e50cd){return _0x5a93fb(null,![],_0x5e50cd);});}function sendServiceMail(_0x659378){return db[_0x31c0('0x21')]['find']({'where':{'service':!![]},'attributes':['id','name',_0x31c0('0x22')],'include':[{'model':db[_0x31c0('0x23')],'as':'Smtp','include':[{'model':db[_0x31c0('0x24')],'as':_0x31c0('0x24')}]}]})[_0x31c0('0xe')](function(_0x3363f8){if(!_0x3363f8){throw new Error(_0x31c0('0x25'));}var _0x3bafe7=_0x3363f8['getSmtpOptions']();var _0x2684e1={'account':_0x3bafe7,'message':_[_0x31c0('0x26')]({'from':util[_0x31c0('0x27')](_0x31c0('0x28'),_0x3363f8[_0x31c0('0xf')],_0x3363f8['email']||_0x3363f8[_0x31c0('0x29')][_0x31c0('0x18')])},_0x659378)};return client[_0x31c0('0x2a')](_0x31c0('0x2b'),_0x2684e1);})[_0x31c0('0xe')](function(_0xb3d7e9){if(_0xb3d7e9[_0x31c0('0x2c')]){throw new Error(util[_0x31c0('0x27')](_0x31c0('0x2d'),_0xb3d7e9['error'][_0x31c0('0x2e')]||JSON[_0x31c0('0x2f')](_0xb3d7e9[_0x31c0('0x2c')])));}return!![];});}function handleError(_0x4581b7,_0xabb9b3,_0x58db4b){return _0x4581b7[_0x31c0('0x30')](_0xabb9b3||0x1f4)[_0x31c0('0x31')]({'message':_0x58db4b?_0x58db4b[_0x31c0('0x2e')]||_0x58db4b:''});}exports[_0x31c0('0x32')]=function(_0x505a12,_0x20e4cc,_0x59513e){passport[_0x31c0('0x1a')](_0x31c0('0x33'),function(_0x49ec60,_0x45e981,_0x17df1d){var _0x396418=_0x49ec60||_0x17df1d;if(_0x396418){return handleError(_0x20e4cc,0x191,_0x396418);}if(!_0x45e981){return handleError(_0x20e4cc,0x194,{'message':_0x31c0('0x34')});}else{var _0x1199f8={'payload':{'id':_0x45e981['id'],'role':_0x45e981[_0x31c0('0x12')]},'options':{'expiresIn':0x15180}};return authService[_0x31c0('0x35')](_0x1199f8)[_0x31c0('0xe')](function(_0x5b9eaa){_0x20e4cc[_0x31c0('0x36')]({'id':_0x45e981['id'],'token':_0x5b9eaa,'statusCall':'','isAlreadyLogged':_0x45e981[_0x31c0('0x37')]});});}})(_0x505a12,_0x20e4cc,_0x59513e);};exports[_0x31c0('0x38')]=function(_0x4a7317,_0x336b42){if(!_0x4a7317['body']['email']){return handleError(_0x336b42,0x1f4,{'message':_0x31c0('0x39')});}var _0x57a41b=rs[_0x31c0('0x3a')]();_0x4a7317[_0x31c0('0x3b')][_0x31c0('0x22')]=_0x4a7317['body'][_0x31c0('0x22')][_0x31c0('0x3c')]()[_0x31c0('0x3d')]();var _0xcedd85;return db[_0x31c0('0xb')][_0x31c0('0xc')]({'where':{'id':0x1},'attributes':[_0x31c0('0xd'),'blockDuration'],'raw':!![]})['then'](function(_0x1a2cb4){_0xcedd85=_0x1a2cb4;return db[_0x31c0('0x3e')][_0x31c0('0x3f')]({'where':{'email':_0x4a7317[_0x31c0('0x3b')][_0x31c0('0x22')]}});})['then'](function(_0xd39f1a){if(!_0xd39f1a){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0xd39f1a[_0x31c0('0x13')]){throw new Error(_0x31c0('0x40'));}if(_0xd39f1a[_0x31c0('0x14')]){if(moment(_0xd39f1a[_0x31c0('0x15')])['add'](_0xcedd85['blockDuration'],_0x31c0('0x1d'))>moment()){throw new Error(_0x31c0('0x41'));}else{_0xd39f1a[_0x31c0('0x14')]=![];_0xd39f1a[_0x31c0('0x15')]=null;}}_0xd39f1a[_0x31c0('0x42')]=_0x57a41b;_0xd39f1a['resetPasswordExpires']=Date[_0x31c0('0x43')]()+0x36ee80;return _0xd39f1a[_0x31c0('0x44')]();})[_0x31c0('0xe')](function(){return sendServiceMail({'to':_0x4a7317[_0x31c0('0x3b')][_0x31c0('0x22')],'subject':_0x31c0('0x45'),'text':'You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a'+_0x31c0('0x46')+_0x31c0('0x47')+_0x4a7317[_0x31c0('0x48')][_0x31c0('0x49')]+_0x31c0('0x4a')+_0x57a41b+'\x0a\x0a'+_0x31c0('0x4b')});})['then'](function(){_0x336b42[_0x31c0('0x30')](0xc8)[_0x31c0('0x31')]({'message':_0x31c0('0x4c')});})[_0x31c0('0x20')](function(_0x4251b0){return handleError(_0x336b42,0x1f4,_0x4251b0);});};exports['reset']=function(_0x3491d8,_0x34c743){return db[_0x31c0('0x3e')][_0x31c0('0x3f')]({'where':{'resetPasswordToken':_0x3491d8['params'][_0x31c0('0x4d')],'resetPasswordExpires':{'$gt':Date[_0x31c0('0x43')]()}}})[_0x31c0('0xe')](function(_0x252e4a){if(!_0x252e4a){throw new Error(_0x31c0('0x4e'));}return db[_0x31c0('0xb')][_0x31c0('0xc')]({'attributes':['id',_0x31c0('0x4f'),'enforcePasswordHistory','passwordHistoryLimit']})['then'](function(_0xf863c9){if(_0xf863c9[_0x31c0('0x4f')])authService['validatePasswordPattern'](_0x3491d8[_0x31c0('0x3b')]['password']);if(!_0xf863c9['enforcePasswordHistory']||!_0x252e4a[_0x31c0('0x50')])return _0x252e4a;authService[_0x31c0('0x51')](_0x3491d8['body'][_0x31c0('0x10')],_0x252e4a[_0x31c0('0x50')],_0xf863c9[_0x31c0('0x52')]);return _0x252e4a;})[_0x31c0('0xe')](function(){_0x252e4a[_0x31c0('0x10')]=_0x3491d8[_0x31c0('0x3b')]['password'];_0x252e4a[_0x31c0('0x42')]=null;_0x252e4a['resetPasswordExpires']=null;return _0x252e4a['save']();});})[_0x31c0('0xe')](function(){_0x34c743[_0x31c0('0x30')](0xc8)[_0x31c0('0x31')]({'message':_0x31c0('0x53')});})[_0x31c0('0x20')](function(_0x1b2511){return handleError(_0x34c743,0x1f4,_0x1b2511);});};passport[_0x31c0('0x54')](_0x31c0('0x33'),new LocalStrategy({'usernameField':_0x31c0('0xf'),'passwordField':_0x31c0('0x10')},function(_0x50ed13,_0x420555,_0x42c7cd){return localAuthenticate(db[_0x31c0('0x3e')],_0x50ed13,_0x420555,_0x42c7cd);}));
\ No newline at end of file
+var _0x7e35=['reset','find','params','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordHistory','previousPasswords','use','util','passport','passport-local','Strategy','jayson/promise','lodash','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','findOne','allowedLoginAttempts','blockDuration','then','password','disabled','blocked','loginAttempts','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','add','clearBlockUser','blockedAt','minutes','getLicense','catch','name','email','MailServerOut','Smtp','CloudProvider','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','getSmtpOptions','merge','format','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','status','send','login','local-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','role','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','Setting','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordExpires','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','headers','host','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!'];(function(_0x54b447,_0x5244d5){var _0x140a46=function(_0x2b8ffb){while(--_0x2b8ffb){_0x54b447['push'](_0x54b447['shift']());}};_0x140a46(++_0x5244d5);}(_0x7e35,0x14a));var _0x57e3=function(_0x2c73a1,_0x3b3845){_0x2c73a1=_0x2c73a1-0x0;var _0x2052ba=_0x7e35[_0x2c73a1];return _0x2052ba;};'use strict';var util=require(_0x57e3('0x0'));var passport=require(_0x57e3('0x1'));var LocalStrategy=require(_0x57e3('0x2'))[_0x57e3('0x3')];var jayson=require(_0x57e3('0x4'));var _=require(_0x57e3('0x5'));var rs=require('randomstring');var moment=require(_0x57e3('0x6'));var db=require(_0x57e3('0x7'))['db'];var authService=require(_0x57e3('0x8'));var utils=require(_0x57e3('0x9'));var client=jayson[_0x57e3('0xa')]['http']({'port':0x232b});function localAuthenticate(_0x11be1e,_0x2d00e4,_0x5d9971,_0x514335){var _0x4eba4f,_0x4df7f8;return db['Setting'][_0x57e3('0xb')]({'where':{'id':0x1},'attributes':[_0x57e3('0xc'),_0x57e3('0xd')],'raw':!![]})[_0x57e3('0xe')](function(_0x3b9bc3){_0x4eba4f=_0x3b9bc3;return _0x11be1e[_0x57e3('0xb')]({'attributes':['id','name',_0x57e3('0xf'),'salt','role',_0x57e3('0x10'),_0x57e3('0x11'),'blockedAt',_0x57e3('0x12')],'where':{'name':_0x2d00e4,'role':{'$or':['admin',_0x57e3('0x13'),_0x57e3('0x14')]}}});})[_0x57e3('0xe')](function(_0x48623){if(!_0x48623||_0x48623&&_0x48623['name']!==_0x2d00e4){throw new Error(_0x57e3('0x15'));}else{_0x4df7f8=_0x48623;return _0x4df7f8;}})[_0x57e3('0xe')](function(){_0x4df7f8[_0x57e3('0x16')](_0x5d9971,function(_0x37945a,_0x26e5b9){var _0x19b846=_0x4df7f8['loginAttempts']+0x1;if(_0x37945a){return _0x514335(_0x37945a);}else if(!_0x26e5b9){if(_0x4df7f8[_0x57e3('0x10')]){return _0x514335(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x4eba4f[_0x57e3('0xc')]>0x0){if(_0x4df7f8[_0x57e3('0x11')]){if(_0x4eba4f[_0x57e3('0xd')]>0x0){if(moment(_0x4df7f8['blockedAt'])[_0x57e3('0x17')](_0x4eba4f[_0x57e3('0xd')],'minutes')>moment()){return _0x514335(null,![],{'message':_0x57e3('0x15')});}else{return utils[_0x57e3('0x18')](_0x4df7f8,_0x19b846,![],null)[_0x57e3('0xe')](function(){return _0x514335(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x514335(null,![],{'message':_0x57e3('0x15')});}}else{if(_0x19b846>=_0x4eba4f[_0x57e3('0xc')]){return utils[_0x57e3('0x18')](_0x4df7f8,0x0,!![],moment())[_0x57e3('0xe')](function(){return _0x514335(null,![],{'message':_0x57e3('0x15')});});}else{return utils[_0x57e3('0x18')](_0x4df7f8,_0x19b846,![],null)[_0x57e3('0xe')](function(){return _0x514335(null,![],{'message':_0x57e3('0x15')});});}}}else{return _0x514335(null,![],{'message':_0x57e3('0x15')});}}else{if(_0x4df7f8[_0x57e3('0x10')]){return _0x514335(null,![],{'message':_0x57e3('0x15')});}else if(_0x4eba4f[_0x57e3('0xc')]>0x0){if(_0x4df7f8[_0x57e3('0x11')]){if(_0x4eba4f['blockDuration']>0x0){if(moment(_0x4df7f8[_0x57e3('0x19')])['add'](_0x4eba4f[_0x57e3('0xd')],_0x57e3('0x1a'))>moment()){return _0x514335(null,![],{'message':_0x57e3('0x15')});}else{return utils[_0x57e3('0x18')](_0x4df7f8,0x0,![],null)[_0x57e3('0xe')](function(){return utils[_0x57e3('0x1b')](_0x4df7f8);})['then'](function(){return _0x514335(null,_0x4df7f8);});}}else{return _0x514335(null,![],{'message':_0x57e3('0x15')});}}else{return utils['clearBlockUser'](_0x4df7f8,0x0,![],null)[_0x57e3('0xe')](function(){return utils[_0x57e3('0x1b')](_0x4df7f8);})['then'](function(){return _0x514335(null,_0x4df7f8);})[_0x57e3('0x1c')](function(_0xac32a){return _0x514335(null,![],_0xac32a);});}}else{if(_0x4df7f8[_0x57e3('0x11')]){return _0x514335(null,![],{'message':_0x57e3('0x15')});}else{return utils[_0x57e3('0x1b')](_0x4df7f8)['then'](function(){return _0x514335(null,_0x4df7f8);});}}}});})['catch'](function(_0x23714f){return _0x514335(null,![],_0x23714f);});}function sendServiceMail(_0x1d6317){return db['MailAccount']['find']({'where':{'service':!![]},'attributes':['id',_0x57e3('0x1d'),_0x57e3('0x1e')],'include':[{'model':db[_0x57e3('0x1f')],'as':_0x57e3('0x20'),'include':[{'model':db[_0x57e3('0x21')],'as':'CloudProvider'}]}]})['then'](function(_0x479e28){if(!_0x479e28){throw new Error(_0x57e3('0x22'));}var _0x3cfd4a=_0x479e28[_0x57e3('0x23')]();var _0x590cca={'account':_0x3cfd4a,'message':_[_0x57e3('0x24')]({'from':util[_0x57e3('0x25')]('\x22%s\x22\x20<%s>',_0x479e28['name'],_0x479e28[_0x57e3('0x1e')]||_0x479e28[_0x57e3('0x20')][_0x57e3('0x13')])},_0x1d6317)};return client[_0x57e3('0x26')](_0x57e3('0x27'),_0x590cca);})[_0x57e3('0xe')](function(_0x5bb0cd){if(_0x5bb0cd[_0x57e3('0x28')]){throw new Error(util[_0x57e3('0x25')](_0x57e3('0x29'),_0x5bb0cd[_0x57e3('0x28')][_0x57e3('0x2a')]||JSON['stringify'](_0x5bb0cd['error'])));}return!![];});}function handleError(_0x4f1c83,_0x3dc7df,_0x58d988){return _0x4f1c83[_0x57e3('0x2b')](_0x3dc7df||0x1f4)[_0x57e3('0x2c')]({'message':_0x58d988?_0x58d988[_0x57e3('0x2a')]||_0x58d988:''});}exports[_0x57e3('0x2d')]=function(_0x58b923,_0x4652fd,_0x92f5a0){passport['authenticate'](_0x57e3('0x2e'),function(_0x1978ba,_0x2dd345,_0x243dec){var _0x217343=_0x1978ba||_0x243dec;if(_0x217343){return handleError(_0x4652fd,0x191,_0x217343);}if(!_0x2dd345){return handleError(_0x4652fd,0x194,{'message':_0x57e3('0x2f')});}else{var _0x388cff={'payload':{'id':_0x2dd345['id'],'role':_0x2dd345[_0x57e3('0x30')]},'options':{'expiresIn':0x15180}};return authService[_0x57e3('0x31')](_0x388cff)[_0x57e3('0xe')](function(_0x4aa83c){_0x4652fd[_0x57e3('0x32')]({'id':_0x2dd345['id'],'token':_0x4aa83c,'statusCall':'','isAlreadyLogged':_0x2dd345[_0x57e3('0x33')]});});}})(_0x58b923,_0x4652fd,_0x92f5a0);};exports[_0x57e3('0x34')]=function(_0x3f4979,_0x12b4bd){if(!_0x3f4979[_0x57e3('0x35')][_0x57e3('0x1e')]){return handleError(_0x12b4bd,0x1f4,{'message':_0x57e3('0x36')});}var _0x2f442b=rs[_0x57e3('0x37')]();_0x3f4979[_0x57e3('0x35')][_0x57e3('0x1e')]=_0x3f4979[_0x57e3('0x35')][_0x57e3('0x1e')][_0x57e3('0x38')]()['toLowerCase']();var _0x19704b;return db[_0x57e3('0x39')]['findOne']({'where':{'id':0x1},'attributes':[_0x57e3('0xc'),_0x57e3('0xd')],'raw':!![]})[_0x57e3('0xe')](function(_0x19612d){_0x19704b=_0x19612d;return db[_0x57e3('0x3a')]['find']({'where':{'email':_0x3f4979[_0x57e3('0x35')][_0x57e3('0x1e')]}});})[_0x57e3('0xe')](function(_0x50fa9e){if(!_0x50fa9e){throw new Error(_0x57e3('0x3b'));}if(_0x50fa9e[_0x57e3('0x10')]){throw new Error(_0x57e3('0x3c'));}if(_0x50fa9e['blocked']){if(moment(_0x50fa9e[_0x57e3('0x19')])[_0x57e3('0x17')](_0x19704b[_0x57e3('0xd')],_0x57e3('0x1a'))>moment()){throw new Error(_0x57e3('0x3d'));}else{_0x50fa9e[_0x57e3('0x11')]=![];_0x50fa9e[_0x57e3('0x19')]=null;}}_0x50fa9e['resetPasswordToken']=_0x2f442b;_0x50fa9e[_0x57e3('0x3e')]=Date['now']()+0x36ee80;return _0x50fa9e[_0x57e3('0x3f')]();})[_0x57e3('0xe')](function(){return sendServiceMail({'to':_0x3f4979[_0x57e3('0x35')]['email'],'subject':_0x57e3('0x40'),'text':_0x57e3('0x41')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+'https://'+_0x3f4979[_0x57e3('0x42')][_0x57e3('0x43')]+'/reset/'+_0x2f442b+'\x0a\x0a'+_0x57e3('0x44')});})[_0x57e3('0xe')](function(){_0x12b4bd[_0x57e3('0x2b')](0xc8)[_0x57e3('0x2c')]({'message':_0x57e3('0x45')});})[_0x57e3('0x1c')](function(_0xdc824c){return handleError(_0x12b4bd,0x1f4,_0xdc824c);});};exports[_0x57e3('0x46')]=function(_0x1e0ba6,_0x368ade){return db['User'][_0x57e3('0x47')]({'where':{'resetPasswordToken':_0x1e0ba6[_0x57e3('0x48')]['token'],'resetPasswordExpires':{'$gt':Date['now']()}}})[_0x57e3('0xe')](function(_0x1a3394){if(!_0x1a3394){throw new Error(_0x57e3('0x49'));}return db[_0x57e3('0x39')][_0x57e3('0xb')]({'attributes':['id',_0x57e3('0x4a'),_0x57e3('0x4b'),_0x57e3('0x4c')]})[_0x57e3('0xe')](function(_0x21e25b){if(_0x21e25b['securePassword'])authService['validatePasswordPattern'](_0x1e0ba6[_0x57e3('0x35')][_0x57e3('0xf')]);if(!_0x21e25b[_0x57e3('0x4b')]||!_0x1a3394['previousPasswords'])return _0x1a3394;authService[_0x57e3('0x4d')](_0x1e0ba6[_0x57e3('0x35')][_0x57e3('0xf')],_0x1a3394[_0x57e3('0x4e')],_0x21e25b['passwordHistoryLimit']);return _0x1a3394;})[_0x57e3('0xe')](function(){_0x1a3394[_0x57e3('0xf')]=_0x1e0ba6['body'][_0x57e3('0xf')];_0x1a3394['resetPasswordToken']=null;_0x1a3394['resetPasswordExpires']=null;return _0x1a3394[_0x57e3('0x3f')]();});})[_0x57e3('0xe')](function(){_0x368ade['status'](0xc8)[_0x57e3('0x2c')]({'message':'Password\x20reset!'});})['catch'](function(_0x92ab66){return handleError(_0x368ade,0x1f4,_0x92ab66);});};passport[_0x57e3('0x4f')](_0x57e3('0x2e'),new LocalStrategy({'usernameField':_0x57e3('0x1d'),'passwordField':_0x57e3('0xf')},function(_0x10fa0e,_0x5a338d,_0x165202){return localAuthenticate(db[_0x57e3('0x3a')],_0x10fa0e,_0x5a338d,_0x165202);}));
\ No newline at end of file