Built motion from commit e38a297d.|2.6.18
[motion2.git] / server / api / authLocal / authLocal.controller.js
index 53188de..f8865b8 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xd011=['status','send','local-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','toLowerCase','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','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','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','https://','/reset/','User','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','validatePasswordPattern','password','validatePasswordHistory','previousPasswords','passwordHistoryLimit','save','Password\x20reset!','use','util','passport','passport-local','Strategy','jayson/promise','lodash','randomstring','moment','../../components/auth/service','../../config/utils','client','http','Setting','findOne','blockDuration','name','salt','role','disabled','blocked','blockedAt','loginAttempts','admin','user','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','allowedLoginAttempts','minutes','clearBlockUser','add','getLicense','catch','MailAccount','find','email','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','format','\x22%s\x22\x20<%s>','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xd011,0x15e));var _0x1d01=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd011[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x1d01('0x0'));var passport=require(_0x1d01('0x1'));var LocalStrategy=require(_0x1d01('0x2'))[_0x1d01('0x3')];var jayson=require(_0x1d01('0x4'));var _=require(_0x1d01('0x5'));var rs=require(_0x1d01('0x6'));var moment=require(_0x1d01('0x7'));var db=require('../../mysqldb')['db'];var authService=require(_0x1d01('0x8'));var utils=require(_0x1d01('0x9'));var client=jayson[_0x1d01('0xa')][_0x1d01('0xb')]({'port':0x232b});function localAuthenticate(_0x36da31,_0x3b8084,_0x328521,_0x40dd41){var _0x341240,_0x243c22;return db[_0x1d01('0xc')][_0x1d01('0xd')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x1d01('0xe')],'raw':!![]})['then'](function(_0x2bc210){_0x341240=_0x2bc210;return _0x36da31['findOne']({'attributes':['id',_0x1d01('0xf'),'password',_0x1d01('0x10'),_0x1d01('0x11'),_0x1d01('0x12'),_0x1d01('0x13'),_0x1d01('0x14'),_0x1d01('0x15')],'where':{'name':_0x3b8084,'role':{'$or':[_0x1d01('0x16'),_0x1d01('0x17'),_0x1d01('0x18')]}}});})[_0x1d01('0x19')](function(_0x105fcd){if(!_0x105fcd||_0x105fcd&&_0x105fcd[_0x1d01('0xf')]!==_0x3b8084){throw new Error(_0x1d01('0x1a'));}else{_0x243c22=_0x105fcd;return _0x243c22;}})['then'](function(){_0x243c22[_0x1d01('0x1b')](_0x328521,function(_0x23a5a1,_0x4ffbb9){var _0x1e929c=_0x243c22['loginAttempts']+0x1;if(_0x23a5a1){return _0x40dd41(_0x23a5a1);}else if(!_0x4ffbb9){if(_0x243c22[_0x1d01('0x12')]){return _0x40dd41(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x341240[_0x1d01('0x1c')]>0x0){if(_0x243c22['blocked']){if(_0x341240['blockDuration']>0x0){if(moment(_0x243c22[_0x1d01('0x14')])['add'](_0x341240[_0x1d01('0xe')],_0x1d01('0x1d'))>moment()){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}else{return utils[_0x1d01('0x1e')](_0x243c22,_0x1e929c,![],null)['then'](function(){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});});}}else{return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}}else{if(_0x1e929c>=_0x341240['allowedLoginAttempts']){return utils[_0x1d01('0x1e')](_0x243c22,0x0,!![],moment())['then'](function(){return _0x40dd41(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils['clearBlockUser'](_0x243c22,_0x1e929c,![],null)[_0x1d01('0x19')](function(){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});});}}}else{return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}}else{if(_0x243c22['disabled']){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}else if(_0x341240['allowedLoginAttempts']>0x0){if(_0x243c22[_0x1d01('0x13')]){if(_0x341240[_0x1d01('0xe')]>0x0){if(moment(_0x243c22[_0x1d01('0x14')])[_0x1d01('0x1f')](_0x341240[_0x1d01('0xe')],_0x1d01('0x1d'))>moment()){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}else{return utils[_0x1d01('0x1e')](_0x243c22,0x0,![],null)[_0x1d01('0x19')](function(){return utils['getLicense'](_0x243c22);})[_0x1d01('0x19')](function(){return _0x40dd41(null,_0x243c22);});}}else{return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}}else{return utils[_0x1d01('0x1e')](_0x243c22,0x0,![],null)['then'](function(){return utils[_0x1d01('0x20')](_0x243c22);})['then'](function(){return _0x40dd41(null,_0x243c22);})[_0x1d01('0x21')](function(_0x199afb){return _0x40dd41(null,![],_0x199afb);});}}else{if(_0x243c22[_0x1d01('0x13')]){return _0x40dd41(null,![],{'message':_0x1d01('0x1a')});}else{return utils[_0x1d01('0x20')](_0x243c22)[_0x1d01('0x19')](function(){return _0x40dd41(null,_0x243c22);});}}}});})[_0x1d01('0x21')](function(_0x3c0072){return _0x40dd41(null,![],_0x3c0072);});}function sendServiceMail(_0x3aa0e5){return db[_0x1d01('0x22')][_0x1d01('0x23')]({'where':{'service':!![]},'attributes':['id',_0x1d01('0xf'),_0x1d01('0x24')],'include':[{'model':db['MailServerOut'],'as':'Smtp','include':[{'model':db['CloudProvider'],'as':'CloudProvider'}]}]})[_0x1d01('0x19')](function(_0x59613b){if(!_0x59613b){throw new Error(_0x1d01('0x25'));}var _0x4c9c19=_0x59613b['getSmtpOptions']();var _0x11226c={'account':_0x4c9c19,'message':_['merge']({'from':util[_0x1d01('0x26')](_0x1d01('0x27'),_0x59613b[_0x1d01('0xf')],_0x59613b[_0x1d01('0x24')]||_0x59613b['Smtp']['user'])},_0x3aa0e5)};return client['request'](_0x1d01('0x28'),_0x11226c);})[_0x1d01('0x19')](function(_0x2456b9){if(_0x2456b9[_0x1d01('0x29')]){throw new Error(util['format'](_0x1d01('0x2a'),_0x2456b9[_0x1d01('0x29')][_0x1d01('0x2b')]||JSON[_0x1d01('0x2c')](_0x2456b9[_0x1d01('0x29')])));}return!![];});}function handleError(_0x43c419,_0x523976,_0x1d83c5){return _0x43c419[_0x1d01('0x2d')](_0x523976||0x1f4)[_0x1d01('0x2e')]({'message':_0x1d83c5?_0x1d83c5[_0x1d01('0x2b')]||_0x1d83c5:''});}exports['login']=function(_0x3899c1,_0x4c4902,_0x3d4f31){passport[_0x1d01('0x1b')](_0x1d01('0x2f'),function(_0x5bd596,_0x55f207,_0x3a2c69){var _0x161e83=_0x5bd596||_0x3a2c69;if(_0x161e83){return handleError(_0x4c4902,0x191,_0x161e83);}if(!_0x55f207){return handleError(_0x4c4902,0x194,{'message':_0x1d01('0x30')});}else{var _0x773d5e={'payload':{'id':_0x55f207['id'],'role':_0x55f207[_0x1d01('0x11')]},'options':{'expiresIn':0x15180}};return authService['signToken'](_0x773d5e)[_0x1d01('0x19')](function(_0x5efcca){_0x4c4902['json']({'id':_0x55f207['id'],'token':_0x5efcca,'statusCall':'','isAlreadyLogged':_0x55f207[_0x1d01('0x31')]});});}})(_0x3899c1,_0x4c4902,_0x3d4f31);};exports[_0x1d01('0x32')]=function(_0x4ff332,_0x22860a){if(!_0x4ff332[_0x1d01('0x33')][_0x1d01('0x24')]){return handleError(_0x22860a,0x1f4,{'message':_0x1d01('0x34')});}var _0x5a6d5d=rs[_0x1d01('0x35')]();_0x4ff332['body'][_0x1d01('0x24')]=_0x4ff332['body'][_0x1d01('0x24')][_0x1d01('0x36')]()[_0x1d01('0x37')]();var _0x2c6536;return db[_0x1d01('0xc')][_0x1d01('0xd')]({'where':{'id':0x1},'attributes':[_0x1d01('0x1c'),_0x1d01('0xe')],'raw':!![]})['then'](function(_0x3d42fb){_0x2c6536=_0x3d42fb;return db['User']['find']({'where':{'email':_0x4ff332['body'][_0x1d01('0x24')]}});})['then'](function(_0x167dc0){if(!_0x167dc0){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x167dc0['disabled']){throw new Error(_0x1d01('0x38'));}if(_0x167dc0[_0x1d01('0x13')]){if(moment(_0x167dc0[_0x1d01('0x14')])[_0x1d01('0x1f')](_0x2c6536[_0x1d01('0xe')],'minutes')>moment()){throw new Error(_0x1d01('0x39'));}else{_0x167dc0['blocked']=![];_0x167dc0[_0x1d01('0x14')]=null;}}_0x167dc0[_0x1d01('0x3a')]=_0x5a6d5d;_0x167dc0[_0x1d01('0x3b')]=Date[_0x1d01('0x3c')]()+0x36ee80;return _0x167dc0['save']();})[_0x1d01('0x19')](function(){return sendServiceMail({'to':_0x4ff332[_0x1d01('0x33')][_0x1d01('0x24')],'subject':_0x1d01('0x3d'),'text':_0x1d01('0x3e')+_0x1d01('0x3f')+_0x1d01('0x40')+_0x4ff332['headers']['host']+_0x1d01('0x41')+_0x5a6d5d+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0x1d01('0x19')](function(){_0x22860a[_0x1d01('0x2d')](0xc8)[_0x1d01('0x2e')]({'message':'Reset\x20Email\x20sent!'});})[_0x1d01('0x21')](function(_0x230ca2){return handleError(_0x22860a,0x1f4,_0x230ca2);});};exports['reset']=function(_0x4b16b9,_0x361c6c){return db[_0x1d01('0x42')][_0x1d01('0x23')]({'where':{'resetPasswordToken':_0x4b16b9[_0x1d01('0x43')][_0x1d01('0x44')],'resetPasswordExpires':{'$gt':Date['now']()}}})[_0x1d01('0x19')](function(_0x3e4416){if(!_0x3e4416){throw new Error(_0x1d01('0x45'));}return db[_0x1d01('0xc')][_0x1d01('0xd')]({'attributes':['id',_0x1d01('0x46'),'enforcePasswordHistory','passwordHistoryLimit']})[_0x1d01('0x19')](function(_0x1f0ce6){if(_0x1f0ce6[_0x1d01('0x46')])authService[_0x1d01('0x47')](_0x4b16b9['body'][_0x1d01('0x48')]);if(!_0x1f0ce6['enforcePasswordHistory']||!_0x3e4416['previousPasswords'])return _0x3e4416;authService[_0x1d01('0x49')](_0x4b16b9[_0x1d01('0x33')][_0x1d01('0x48')],_0x3e4416[_0x1d01('0x4a')],_0x1f0ce6[_0x1d01('0x4b')]);return _0x3e4416;})[_0x1d01('0x19')](function(){_0x3e4416['password']=_0x4b16b9['body'][_0x1d01('0x48')];_0x3e4416[_0x1d01('0x3a')]=null;_0x3e4416['resetPasswordExpires']=null;return _0x3e4416[_0x1d01('0x4c')]();});})['then'](function(){_0x361c6c[_0x1d01('0x2d')](0xc8)[_0x1d01('0x2e')]({'message':_0x1d01('0x4d')});})[_0x1d01('0x21')](function(_0x18e0e6){return handleError(_0x361c6c,0x1f4,_0x18e0e6);});};passport[_0x1d01('0x4e')](_0x1d01('0x2f'),new LocalStrategy({'usernameField':_0x1d01('0xf'),'passwordField':_0x1d01('0x48')},function(_0x1237b6,_0x181bdc,_0x36b365){return localAuthenticate(db[_0x1d01('0x42')],_0x1237b6,_0x181bdc,_0x36b365);}));
\ No newline at end of file
+var _0xfd2b=['format','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','body','Email\x20parameter\x20is\x20missing','trim','toLowerCase','User','This\x20email\x20is\x20not\x20registered.','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','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','send','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','enforcePasswordHistory','passwordHistoryLimit','securePassword','validatePasswordPattern','validatePasswordHistory','previousPasswords','resetPasswordExpires','Password\x20reset!','use','local-login','util','passport-local','lodash','moment','../../mysqldb','../../config/utils','Setting','findOne','allowedLoginAttempts','blockDuration','then','name','password','salt','role','loginAttempts','admin','authenticate','disabled','blocked','blockedAt','add','minutes','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','MailAccount','find','email','MailServerOut','Smtp','CloudProvider','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','getSmtpOptions'];(function(_0x3dbc32,_0x19ff42){var _0x4bca18=function(_0x31e5e9){while(--_0x31e5e9){_0x3dbc32['push'](_0x3dbc32['shift']());}};_0x4bca18(++_0x19ff42);}(_0xfd2b,0x79));var _0xbfd2=function(_0x9f309,_0x519828){_0x9f309=_0x9f309-0x0;var _0x164818=_0xfd2b[_0x9f309];return _0x164818;};'use strict';var util=require(_0xbfd2('0x0'));var passport=require('passport');var LocalStrategy=require(_0xbfd2('0x1'))['Strategy'];var jayson=require('jayson/promise');var _=require(_0xbfd2('0x2'));var rs=require('randomstring');var moment=require(_0xbfd2('0x3'));var db=require(_0xbfd2('0x4'))['db'];var authService=require('../../components/auth/service');var utils=require(_0xbfd2('0x5'));var client=jayson['client']['http']({'port':0x232b});function localAuthenticate(_0x255955,_0x48faf1,_0x2c7f98,_0xbafda7){var _0x52daad,_0x301e59;return db[_0xbfd2('0x6')][_0xbfd2('0x7')]({'where':{'id':0x1},'attributes':[_0xbfd2('0x8'),_0xbfd2('0x9')],'raw':!![]})[_0xbfd2('0xa')](function(_0x428c84){_0x52daad=_0x428c84;return _0x255955[_0xbfd2('0x7')]({'attributes':['id',_0xbfd2('0xb'),_0xbfd2('0xc'),_0xbfd2('0xd'),_0xbfd2('0xe'),'disabled','blocked','blockedAt',_0xbfd2('0xf')],'where':{'name':_0x48faf1,'role':{'$or':[_0xbfd2('0x10'),'user','agent']}}});})[_0xbfd2('0xa')](function(_0x220379){if(!_0x220379||_0x220379&&_0x220379[_0xbfd2('0xb')]!==_0x48faf1){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x301e59=_0x220379;return _0x301e59;}})[_0xbfd2('0xa')](function(){_0x301e59[_0xbfd2('0x11')](_0x2c7f98,function(_0x1b7f18,_0x5b165b){var _0x522d2b=_0x301e59[_0xbfd2('0xf')]+0x1;if(_0x1b7f18){return _0xbafda7(_0x1b7f18);}else if(!_0x5b165b){if(_0x301e59[_0xbfd2('0x12')]){return _0xbafda7(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x52daad[_0xbfd2('0x8')]>0x0){if(_0x301e59[_0xbfd2('0x13')]){if(_0x52daad[_0xbfd2('0x9')]>0x0){if(moment(_0x301e59[_0xbfd2('0x14')])[_0xbfd2('0x15')](_0x52daad[_0xbfd2('0x9')],_0xbfd2('0x16'))>moment()){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});}else{return utils[_0xbfd2('0x18')](_0x301e59,_0x522d2b,![],null)[_0xbfd2('0xa')](function(){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});});}}else{return _0xbafda7(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x522d2b>=_0x52daad[_0xbfd2('0x8')]){return utils['clearBlockUser'](_0x301e59,0x0,!![],moment())[_0xbfd2('0xa')](function(){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});});}else{return utils[_0xbfd2('0x18')](_0x301e59,_0x522d2b,![],null)['then'](function(){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});});}}}else{return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});}}else{if(_0x301e59[_0xbfd2('0x12')]){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});}else if(_0x52daad[_0xbfd2('0x8')]>0x0){if(_0x301e59[_0xbfd2('0x13')]){if(_0x52daad['blockDuration']>0x0){if(moment(_0x301e59['blockedAt'])[_0xbfd2('0x15')](_0x52daad['blockDuration'],_0xbfd2('0x16'))>moment()){return _0xbafda7(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xbfd2('0x18')](_0x301e59,0x0,![],null)['then'](function(){return utils[_0xbfd2('0x19')](_0x301e59);})[_0xbfd2('0xa')](function(){return _0xbafda7(null,_0x301e59);});}}else{return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});}}else{return utils['clearBlockUser'](_0x301e59,0x0,![],null)['then'](function(){return utils[_0xbfd2('0x19')](_0x301e59);})['then'](function(){return _0xbafda7(null,_0x301e59);})[_0xbfd2('0x1a')](function(_0x4850b2){return _0xbafda7(null,![],_0x4850b2);});}}else{if(_0x301e59[_0xbfd2('0x13')]){return _0xbafda7(null,![],{'message':_0xbfd2('0x17')});}else{return utils[_0xbfd2('0x19')](_0x301e59)['then'](function(){return _0xbafda7(null,_0x301e59);});}}}});})[_0xbfd2('0x1a')](function(_0x4572b2){return _0xbafda7(null,![],_0x4572b2);});}function sendServiceMail(_0x1bd21e){return db[_0xbfd2('0x1b')][_0xbfd2('0x1c')]({'where':{'service':!![]},'attributes':['id',_0xbfd2('0xb'),_0xbfd2('0x1d')],'include':[{'model':db[_0xbfd2('0x1e')],'as':_0xbfd2('0x1f'),'include':[{'model':db[_0xbfd2('0x20')],'as':_0xbfd2('0x20')}]}]})['then'](function(_0x21aa49){if(!_0x21aa49){throw new Error(_0xbfd2('0x21'));}var _0x42fb4a=_0x21aa49[_0xbfd2('0x22')]();var _0x58fe9a={'account':_0x42fb4a,'message':_['merge']({'from':util[_0xbfd2('0x23')]('\x22%s\x22\x20<%s>',_0x21aa49[_0xbfd2('0xb')],_0x21aa49['email']||_0x21aa49['Smtp']['user'])},_0x1bd21e)};return client[_0xbfd2('0x24')](_0xbfd2('0x25'),_0x58fe9a);})['then'](function(_0x994a36){if(_0x994a36[_0xbfd2('0x26')]){throw new Error(util[_0xbfd2('0x23')](_0xbfd2('0x27'),_0x994a36[_0xbfd2('0x26')][_0xbfd2('0x28')]||JSON[_0xbfd2('0x29')](_0x994a36[_0xbfd2('0x26')])));}return!![];});}function handleError(_0x5eb3f9,_0x36da78,_0xf01a06){return _0x5eb3f9[_0xbfd2('0x2a')](_0x36da78||0x1f4)['send']({'message':_0xf01a06?_0xf01a06[_0xbfd2('0x28')]||_0xf01a06:''});}exports['login']=function(_0x4df76d,_0x59d65a,_0x21c3ac){passport[_0xbfd2('0x11')]('local-login',function(_0x533d5b,_0x4a4aed,_0x382b45){var _0x24d13b=_0x533d5b||_0x382b45;if(_0x24d13b){return handleError(_0x59d65a,0x191,_0x24d13b);}if(!_0x4a4aed){return handleError(_0x59d65a,0x194,{'message':_0xbfd2('0x2b')});}else{var _0x59d549={'payload':{'id':_0x4a4aed['id'],'role':_0x4a4aed[_0xbfd2('0xe')]},'options':{'expiresIn':0x15180}};return authService[_0xbfd2('0x2c')](_0x59d549)[_0xbfd2('0xa')](function(_0x4ce3b4){_0x59d65a[_0xbfd2('0x2d')]({'id':_0x4a4aed['id'],'token':_0x4ce3b4,'statusCall':'','isAlreadyLogged':_0x4a4aed[_0xbfd2('0x2e')]});});}})(_0x4df76d,_0x59d65a,_0x21c3ac);};exports['forgot']=function(_0x485ad1,_0x492200){if(!_0x485ad1[_0xbfd2('0x2f')][_0xbfd2('0x1d')]){return handleError(_0x492200,0x1f4,{'message':_0xbfd2('0x30')});}var _0x1aaaf9=rs['generate']();_0x485ad1[_0xbfd2('0x2f')]['email']=_0x485ad1[_0xbfd2('0x2f')][_0xbfd2('0x1d')][_0xbfd2('0x31')]()[_0xbfd2('0x32')]();var _0x844ea9;return db[_0xbfd2('0x6')]['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]})[_0xbfd2('0xa')](function(_0x5a7198){_0x844ea9=_0x5a7198;return db[_0xbfd2('0x33')][_0xbfd2('0x1c')]({'where':{'email':_0x485ad1[_0xbfd2('0x2f')][_0xbfd2('0x1d')]}});})[_0xbfd2('0xa')](function(_0x2c2ea6){if(!_0x2c2ea6){throw new Error(_0xbfd2('0x34'));}if(_0x2c2ea6[_0xbfd2('0x12')]){throw new Error(_0xbfd2('0x35'));}if(_0x2c2ea6['blocked']){if(moment(_0x2c2ea6[_0xbfd2('0x14')])['add'](_0x844ea9[_0xbfd2('0x9')],_0xbfd2('0x16'))>moment()){throw new Error(_0xbfd2('0x36'));}else{_0x2c2ea6['blocked']=![];_0x2c2ea6[_0xbfd2('0x14')]=null;}}_0x2c2ea6[_0xbfd2('0x37')]=_0x1aaaf9;_0x2c2ea6['resetPasswordExpires']=Date[_0xbfd2('0x38')]()+0x36ee80;return _0x2c2ea6[_0xbfd2('0x39')]();})['then'](function(){return sendServiceMail({'to':_0x485ad1['body'][_0xbfd2('0x1d')],'subject':_0xbfd2('0x3a'),'text':'You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a'+_0xbfd2('0x3b')+_0xbfd2('0x3c')+_0x485ad1[_0xbfd2('0x3d')]['host']+_0xbfd2('0x3e')+_0x1aaaf9+'\x0a\x0a'+_0xbfd2('0x3f')});})['then'](function(){_0x492200[_0xbfd2('0x2a')](0xc8)[_0xbfd2('0x40')]({'message':'Reset\x20Email\x20sent!'});})['catch'](function(_0x49d899){return handleError(_0x492200,0x1f4,_0x49d899);});};exports['reset']=function(_0x476a5f,_0x32e443){return db[_0xbfd2('0x33')]['find']({'where':{'resetPasswordToken':_0x476a5f[_0xbfd2('0x41')][_0xbfd2('0x42')],'resetPasswordExpires':{'$gt':Date[_0xbfd2('0x38')]()}}})['then'](function(_0x10d393){if(!_0x10d393){throw new Error(_0xbfd2('0x43'));}return db[_0xbfd2('0x6')][_0xbfd2('0x7')]({'attributes':['id','securePassword',_0xbfd2('0x44'),_0xbfd2('0x45')]})[_0xbfd2('0xa')](function(_0x30325d){if(_0x30325d[_0xbfd2('0x46')])authService[_0xbfd2('0x47')](_0x476a5f[_0xbfd2('0x2f')]['password']);if(!_0x30325d[_0xbfd2('0x44')]||!_0x10d393['previousPasswords'])return _0x10d393;authService[_0xbfd2('0x48')](_0x476a5f[_0xbfd2('0x2f')]['password'],_0x10d393[_0xbfd2('0x49')],_0x30325d[_0xbfd2('0x45')]);return _0x10d393;})[_0xbfd2('0xa')](function(){_0x10d393[_0xbfd2('0xc')]=_0x476a5f['body'][_0xbfd2('0xc')];_0x10d393['resetPasswordToken']=null;_0x10d393[_0xbfd2('0x4a')]=null;return _0x10d393[_0xbfd2('0x39')]();});})[_0xbfd2('0xa')](function(){_0x32e443[_0xbfd2('0x2a')](0xc8)[_0xbfd2('0x40')]({'message':_0xbfd2('0x4b')});})['catch'](function(_0x46c18d){return handleError(_0x32e443,0x1f4,_0x46c18d);});};passport[_0xbfd2('0x4c')](_0xbfd2('0x4d'),new LocalStrategy({'usernameField':_0xbfd2('0xb'),'passwordField':_0xbfd2('0xc')},function(_0x1baf00,_0x1b536e,_0x48e756){return localAuthenticate(db['User'],_0x1baf00,_0x1b536e,_0x48e756);}));
\ No newline at end of file