Built motion from commit (unavailable).|2.4.4
[motion2.git] / server / api / authLocal / authLocal.controller.js
index 4aea984..ba5a341 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x6228=['securePassword','resetPasswordToken','use','passport','passport-local','jayson/promise','lodash','moment','../../mysqldb','../../config/utils','client','http','Setting','findOne','then','name','password','disabled','blocked','blockedAt','loginAttempts','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','blockDuration','minutes','clearBlockUser','allowedLoginAttempts','add','getLicense','catch','find','email','MailServerOut','Smtp','service','host','port','secure','pass','merge','format','\x22%s\x22\x20<%s>','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','login','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','role','json','forgot','body','Email\x20parameter\x20is\x20missing','toLowerCase','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordExpires','now','save','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','http://','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','reset','User','params','token'];(function(_0x4b609d,_0x2e4766){var _0x43bb79=function(_0x3cb5b2){while(--_0x3cb5b2){_0x4b609d['push'](_0x4b609d['shift']());}};_0x43bb79(++_0x2e4766);}(_0x6228,0x189));var _0x8622=function(_0x1699c7,_0x55e15a){_0x1699c7=_0x1699c7-0x0;var _0x23dbd3=_0x6228[_0x1699c7];return _0x23dbd3;};'use strict';var util=require('util');var passport=require(_0x8622('0x0'));var LocalStrategy=require(_0x8622('0x1'))['Strategy'];var jayson=require(_0x8622('0x2'));var _=require(_0x8622('0x3'));var rs=require('randomstring');var moment=require(_0x8622('0x4'));var db=require(_0x8622('0x5'))['db'];var signToken=require('../../components/auth/service')['signToken'];var utils=require(_0x8622('0x6'));var client=jayson[_0x8622('0x7')][_0x8622('0x8')]({'port':0x232b});function localAuthenticate(_0x418472,_0x1cf2df,_0x17e82c,_0x5c5f3e){var _0x5ec669,_0x2df21f;return db[_0x8622('0x9')][_0x8622('0xa')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]})[_0x8622('0xb')](function(_0x5ae2db){_0x5ec669=_0x5ae2db;return _0x418472[_0x8622('0xa')]({'attributes':['id',_0x8622('0xc'),_0x8622('0xd'),'salt','role',_0x8622('0xe'),_0x8622('0xf'),_0x8622('0x10'),_0x8622('0x11')],'where':{'name':_0x1cf2df,'role':{'$or':[_0x8622('0x12'),_0x8622('0x13'),_0x8622('0x14')]}}});})['then'](function(_0x3cd1a7){if(!_0x3cd1a7||_0x3cd1a7&&_0x3cd1a7[_0x8622('0xc')]!==_0x1cf2df){throw new Error(_0x8622('0x15'));}else{_0x2df21f=_0x3cd1a7;return _0x2df21f;}})['then'](function(){_0x2df21f[_0x8622('0x16')](_0x17e82c,function(_0x40e525,_0x3aaee3){var _0x5d1993=_0x2df21f[_0x8622('0x11')]+0x1;if(_0x40e525){return _0x5c5f3e(_0x40e525);}else if(!_0x3aaee3){if(_0x2df21f[_0x8622('0xe')]){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});}else if(_0x5ec669['allowedLoginAttempts']>0x0){if(_0x2df21f[_0x8622('0xf')]){if(_0x5ec669[_0x8622('0x17')]>0x0){if(moment(_0x2df21f[_0x8622('0x10')])['add'](_0x5ec669[_0x8622('0x17')],_0x8622('0x18'))>moment()){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});}else{return utils['clearBlockUser'](_0x2df21f,_0x5d1993,![],null)[_0x8622('0xb')](function(){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});});}}else{return _0x5c5f3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x5d1993>=_0x5ec669['allowedLoginAttempts']){return utils['clearBlockUser'](_0x2df21f,0x0,!![],moment())['then'](function(){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});});}else{return utils[_0x8622('0x19')](_0x2df21f,_0x5d1993,![],null)[_0x8622('0xb')](function(){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});});}}}else{return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});}}else{if(_0x2df21f['disabled']){return _0x5c5f3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x5ec669[_0x8622('0x1a')]>0x0){if(_0x2df21f[_0x8622('0xf')]){if(_0x5ec669[_0x8622('0x17')]>0x0){if(moment(_0x2df21f['blockedAt'])[_0x8622('0x1b')](_0x5ec669[_0x8622('0x17')],_0x8622('0x18'))>moment()){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});}else{return utils['clearBlockUser'](_0x2df21f,0x0,![],null)[_0x8622('0xb')](function(){return utils[_0x8622('0x1c')](_0x2df21f);})[_0x8622('0xb')](function(){return _0x5c5f3e(null,_0x2df21f);});}}else{return _0x5c5f3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0x8622('0x19')](_0x2df21f,0x0,![],null)[_0x8622('0xb')](function(){return utils[_0x8622('0x1c')](_0x2df21f);})['then'](function(){return _0x5c5f3e(null,_0x2df21f);})[_0x8622('0x1d')](function(_0xad3baa){return _0x5c5f3e(null,![],_0xad3baa);});}}else{if(_0x2df21f[_0x8622('0xf')]){return _0x5c5f3e(null,![],{'message':_0x8622('0x15')});}else{return utils[_0x8622('0x1c')](_0x2df21f)[_0x8622('0xb')](function(){return _0x5c5f3e(null,_0x2df21f);});}}}});})['catch'](function(_0x393219){return _0x5c5f3e(null,![],_0x393219);});}function sendServiceMail(_0x56b9b0){return db['MailAccount'][_0x8622('0x1e')]({'where':{'service':!![]},'attributes':['id',_0x8622('0xc'),_0x8622('0x1f')],'include':[{'model':db[_0x8622('0x20')],'as':_0x8622('0x21')}]})[_0x8622('0xb')](function(_0x3f4671){if(!_0x3f4671){throw new Error('Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!');}var _0x4fec4f={'tls':{'rejectUnauthorized':![]}};if(_0x3f4671['Smtp'][_0x8622('0x22')]){_0x4fec4f[_0x8622('0x22')]=_0x3f4671[_0x8622('0x21')]['service'];}else{_0x4fec4f[_0x8622('0x23')]=_0x3f4671[_0x8622('0x21')][_0x8622('0x23')];_0x4fec4f[_0x8622('0x24')]=_0x3f4671[_0x8622('0x21')][_0x8622('0x24')];_0x4fec4f['secure']=_0x3f4671['Smtp'][_0x8622('0x25')];}if(_0x3f4671[_0x8622('0x21')]['authentication']){_0x4fec4f['auth']={'user':_0x3f4671[_0x8622('0x21')][_0x8622('0x13')],'pass':_0x3f4671[_0x8622('0x21')][_0x8622('0x26')]};}var _0x11c205={'account':_0x4fec4f,'message':_[_0x8622('0x27')]({'from':util[_0x8622('0x28')](_0x8622('0x29'),_0x3f4671[_0x8622('0xc')],_0x3f4671[_0x8622('0x1f')]||_0x3f4671[_0x8622('0x21')]['user'])},_0x56b9b0)};return client[_0x8622('0x2a')](_0x8622('0x2b'),_0x11c205);})[_0x8622('0xb')](function(_0x1b8153){if(_0x1b8153[_0x8622('0x2c')]){throw new Error(util[_0x8622('0x28')](_0x8622('0x2d'),_0x1b8153['error'][_0x8622('0x2e')]||JSON[_0x8622('0x2f')](_0x1b8153['error'])));}return!![];});}function handleError(_0x3bade0,_0x28c567,_0x499e45){return _0x3bade0[_0x8622('0x30')](_0x28c567||0x1f4)[_0x8622('0x31')]({'message':_0x499e45?_0x499e45[_0x8622('0x2e')]||_0x499e45:''});}function checkPasswordPattern(_0x15a366,_0x52b1da,_0x46e200){if(_0x46e200){var _0x26a9d5=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x26a9d5['test'](_0x52b1da)){return _0x15a366;}else{throw new Error(_0x8622('0x32'));}}else{return _0x15a366;}}exports[_0x8622('0x33')]=function(_0x227ad7,_0x5b1e57,_0xf8dc02){passport[_0x8622('0x16')](_0x8622('0x34'),function(_0x246e34,_0x1197fb,_0x10d00a){var _0x3afae7=_0x246e34||_0x10d00a;if(_0x3afae7){return handleError(_0x5b1e57,0x191,_0x3afae7);}if(!_0x1197fb){return handleError(_0x5b1e57,0x194,{'message':_0x8622('0x35')});}else{var _0x5a241e=signToken(_0x1197fb['id'],_0x1197fb[_0x8622('0x36')]);_0x5b1e57[_0x8622('0x37')]({'id':_0x1197fb['id'],'token':_0x5a241e,'statusCall':'','isAlreadyLogged':_0x1197fb['online']});}})(_0x227ad7,_0x5b1e57,_0xf8dc02);};exports[_0x8622('0x38')]=function(_0x4e9497,_0x148e1f,_0x2ddf54){if(!_0x4e9497[_0x8622('0x39')][_0x8622('0x1f')]){return handleError(_0x148e1f,0x1f4,{'message':_0x8622('0x3a')});}var _0x3cda4e=rs['generate']();_0x4e9497['body'][_0x8622('0x1f')]=_0x4e9497['body'][_0x8622('0x1f')]['trim']()[_0x8622('0x3b')]();var _0x544a1a;return db[_0x8622('0x9')][_0x8622('0xa')]({'where':{'id':0x1},'attributes':[_0x8622('0x1a'),'blockDuration'],'raw':!![]})[_0x8622('0xb')](function(_0x4fd975){_0x544a1a=_0x4fd975;return db['User'][_0x8622('0x1e')]({'where':{'email':_0x4e9497[_0x8622('0x39')][_0x8622('0x1f')]}});})[_0x8622('0xb')](function(_0x28de02){if(!_0x28de02){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x28de02[_0x8622('0xe')]){throw new Error(_0x8622('0x3c'));}if(_0x28de02[_0x8622('0xf')]){if(moment(_0x28de02['blockedAt'])[_0x8622('0x1b')](_0x544a1a[_0x8622('0x17')],_0x8622('0x18'))>moment()){throw new Error(_0x8622('0x3d'));}else{_0x28de02[_0x8622('0xf')]=![];_0x28de02[_0x8622('0x10')]=null;}}_0x28de02['resetPasswordToken']=_0x3cda4e;_0x28de02[_0x8622('0x3e')]=Date[_0x8622('0x3f')]()+0x36ee80;return _0x28de02[_0x8622('0x40')]();})[_0x8622('0xb')](function(){return sendServiceMail({'to':_0x4e9497[_0x8622('0x39')][_0x8622('0x1f')],'subject':'xCally\x20Motion\x20Password\x20Reset','text':_0x8622('0x41')+_0x8622('0x42')+_0x8622('0x43')+_0x4e9497['headers'][_0x8622('0x23')]+_0x8622('0x44')+_0x3cda4e+'\x0a\x0a'+_0x8622('0x45')});})['then'](function(){_0x148e1f[_0x8622('0x30')](0xc8)[_0x8622('0x31')]({'message':_0x8622('0x46')});})['catch'](function(_0xd7ca6a){return handleError(_0x148e1f,0x1f4,_0xd7ca6a);});};exports[_0x8622('0x47')]=function(_0x27b285,_0x6e058e,_0x400e42){var _0x34cbd0;return db[_0x8622('0x48')][_0x8622('0x1e')]({'where':{'resetPasswordToken':_0x27b285[_0x8622('0x49')][_0x8622('0x4a')],'resetPasswordExpires':{'$gt':Date[_0x8622('0x3f')]()}}})['then'](function(_0x54cd12){_0x34cbd0=_0x54cd12;if(!_0x34cbd0){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0x8622('0x9')][_0x8622('0xa')]({'attributes':['id','securePassword']});})['then'](function(_0xb89a0e){return checkPasswordPattern(_0xb89a0e,_0x27b285[_0x8622('0x39')][_0x8622('0xd')],_0xb89a0e[_0x8622('0x4b')]);})[_0x8622('0xb')](function(){_0x34cbd0[_0x8622('0xd')]=_0x27b285[_0x8622('0x39')][_0x8622('0xd')];_0x34cbd0[_0x8622('0x4c')]=null;_0x34cbd0[_0x8622('0x3e')]=null;return _0x34cbd0['save']();})['then'](function(){_0x6e058e[_0x8622('0x30')](0xc8)['send']({'message':'Password\x20reset!'});})[_0x8622('0x1d')](function(_0x15b2cc){return handleError(_0x6e058e,0x1f4,_0x15b2cc);});};passport[_0x8622('0x4d')](new LocalStrategy({'usernameField':_0x8622('0xc'),'passwordField':'password'},function(_0x36bb39,_0x1d6a6c,_0x1bb47e){return localAuthenticate(db[_0x8622('0x48')],_0x36bb39,_0x1d6a6c,_0x1bb47e);}));
\ No newline at end of file
+var _0xbb8b=['../../mysqldb','signToken','client','http','Setting','findOne','allowedLoginAttempts','blockDuration','then','name','password','salt','role','disabled','blocked','admin','user','authenticate','loginAttempts','blockedAt','add','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','minutes','getLicense','catch','find','MailServerOut','Smtp','service','host','port','secure','authentication','auth','pass','format','email','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','test','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','login','local','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','toLowerCase','User','This\x20email\x20is\x20not\x20registered.','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','http://','headers','/reset/','Reset\x20Email\x20sent!','reset','params','token','securePassword','Password\x20reset!','use','passport','passport-local','jayson/promise','lodash','randomstring','moment'];(function(_0x5af609,_0x469d2b){var _0x943d5c=function(_0x27fd90){while(--_0x27fd90){_0x5af609['push'](_0x5af609['shift']());}};_0x943d5c(++_0x469d2b);}(_0xbb8b,0x199));var _0xbbb8=function(_0x42ab89,_0xd3872d){_0x42ab89=_0x42ab89-0x0;var _0xf2dbe1=_0xbb8b[_0x42ab89];return _0xf2dbe1;};'use strict';var util=require('util');var passport=require(_0xbbb8('0x0'));var LocalStrategy=require(_0xbbb8('0x1'))['Strategy'];var jayson=require(_0xbbb8('0x2'));var _=require(_0xbbb8('0x3'));var rs=require(_0xbbb8('0x4'));var moment=require(_0xbbb8('0x5'));var db=require(_0xbbb8('0x6'))['db'];var signToken=require('../../components/auth/service')[_0xbbb8('0x7')];var utils=require('../../config/utils');var client=jayson[_0xbbb8('0x8')][_0xbbb8('0x9')]({'port':0x232b});function localAuthenticate(_0x347820,_0xaf6063,_0x11b039,_0x2574b0){var _0x20c395,_0xef1a00;return db[_0xbbb8('0xa')][_0xbbb8('0xb')]({'where':{'id':0x1},'attributes':[_0xbbb8('0xc'),_0xbbb8('0xd')],'raw':!![]})[_0xbbb8('0xe')](function(_0x30ab91){_0x20c395=_0x30ab91;return _0x347820['findOne']({'attributes':['id',_0xbbb8('0xf'),_0xbbb8('0x10'),_0xbbb8('0x11'),_0xbbb8('0x12'),_0xbbb8('0x13'),_0xbbb8('0x14'),'blockedAt','loginAttempts'],'where':{'name':_0xaf6063,'role':{'$or':[_0xbbb8('0x15'),_0xbbb8('0x16'),'agent']}}});})[_0xbbb8('0xe')](function(_0x26aeb2){if(!_0x26aeb2||_0x26aeb2&&_0x26aeb2[_0xbbb8('0xf')]!==_0xaf6063){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0xef1a00=_0x26aeb2;return _0xef1a00;}})[_0xbbb8('0xe')](function(){_0xef1a00[_0xbbb8('0x17')](_0x11b039,function(_0x3f8dc6,_0x35acbe){var _0x53fb4b=_0xef1a00[_0xbbb8('0x18')]+0x1;if(_0x3f8dc6){return _0x2574b0(_0x3f8dc6);}else if(!_0x35acbe){if(_0xef1a00['disabled']){return _0x2574b0(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x20c395['allowedLoginAttempts']>0x0){if(_0xef1a00[_0xbbb8('0x14')]){if(_0x20c395[_0xbbb8('0xd')]>0x0){if(moment(_0xef1a00[_0xbbb8('0x19')])[_0xbbb8('0x1a')](_0x20c395[_0xbbb8('0xd')],'minutes')>moment()){return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});}else{return utils['clearBlockUser'](_0xef1a00,_0x53fb4b,![],null)[_0xbbb8('0xe')](function(){return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});});}}else{return _0x2574b0(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x53fb4b>=_0x20c395[_0xbbb8('0xc')]){return utils[_0xbbb8('0x1c')](_0xef1a00,0x0,!![],moment())['then'](function(){return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});});}else{return utils[_0xbbb8('0x1c')](_0xef1a00,_0x53fb4b,![],null)['then'](function(){return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});});}}}else{return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});}}else{if(_0xef1a00[_0xbbb8('0x13')]){return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});}else if(_0x20c395[_0xbbb8('0xc')]>0x0){if(_0xef1a00[_0xbbb8('0x14')]){if(_0x20c395[_0xbbb8('0xd')]>0x0){if(moment(_0xef1a00[_0xbbb8('0x19')])[_0xbbb8('0x1a')](_0x20c395[_0xbbb8('0xd')],_0xbbb8('0x1d'))>moment()){return _0x2574b0(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xbbb8('0x1c')](_0xef1a00,0x0,![],null)[_0xbbb8('0xe')](function(){return utils[_0xbbb8('0x1e')](_0xef1a00);})[_0xbbb8('0xe')](function(){return _0x2574b0(null,_0xef1a00);});}}else{return _0x2574b0(null,![],{'message':_0xbbb8('0x1b')});}}else{return utils[_0xbbb8('0x1c')](_0xef1a00,0x0,![],null)['then'](function(){return utils['getLicense'](_0xef1a00);})[_0xbbb8('0xe')](function(){return _0x2574b0(null,_0xef1a00);})[_0xbbb8('0x1f')](function(_0x48cffd){return _0x2574b0(null,![],_0x48cffd);});}}else{if(_0xef1a00['blocked']){return _0x2574b0(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0xbbb8('0x1e')](_0xef1a00)[_0xbbb8('0xe')](function(){return _0x2574b0(null,_0xef1a00);});}}}});})[_0xbbb8('0x1f')](function(_0x2619cd){return _0x2574b0(null,![],_0x2619cd);});}function sendServiceMail(_0x230a59){return db['MailAccount'][_0xbbb8('0x20')]({'where':{'service':!![]},'attributes':['id',_0xbbb8('0xf'),'email'],'include':[{'model':db[_0xbbb8('0x21')],'as':_0xbbb8('0x22')}]})[_0xbbb8('0xe')](function(_0x5ec680){if(!_0x5ec680){throw new Error('Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!');}var _0x15d984={'tls':{'rejectUnauthorized':![]}};if(_0x5ec680[_0xbbb8('0x22')][_0xbbb8('0x23')]){_0x15d984[_0xbbb8('0x23')]=_0x5ec680[_0xbbb8('0x22')][_0xbbb8('0x23')];}else{_0x15d984[_0xbbb8('0x24')]=_0x5ec680['Smtp'][_0xbbb8('0x24')];_0x15d984[_0xbbb8('0x25')]=_0x5ec680[_0xbbb8('0x22')]['port'];_0x15d984[_0xbbb8('0x26')]=_0x5ec680[_0xbbb8('0x22')][_0xbbb8('0x26')];}if(_0x5ec680['Smtp'][_0xbbb8('0x27')]){_0x15d984[_0xbbb8('0x28')]={'user':_0x5ec680[_0xbbb8('0x22')]['user'],'pass':_0x5ec680[_0xbbb8('0x22')][_0xbbb8('0x29')]};}var _0x3cd711={'account':_0x15d984,'message':_['merge']({'from':util[_0xbbb8('0x2a')]('\x22%s\x22\x20<%s>',_0x5ec680[_0xbbb8('0xf')],_0x5ec680[_0xbbb8('0x2b')]||_0x5ec680['Smtp'][_0xbbb8('0x16')])},_0x230a59)};return client[_0xbbb8('0x2c')](_0xbbb8('0x2d'),_0x3cd711);})[_0xbbb8('0xe')](function(_0x450516){if(_0x450516[_0xbbb8('0x2e')]){throw new Error(util[_0xbbb8('0x2a')](_0xbbb8('0x2f'),_0x450516['error'][_0xbbb8('0x30')]||JSON[_0xbbb8('0x31')](_0x450516[_0xbbb8('0x2e')])));}return!![];});}function handleError(_0xcd3d63,_0x2f2081,_0xcbb4f5){return _0xcd3d63[_0xbbb8('0x32')](_0x2f2081||0x1f4)[_0xbbb8('0x33')]({'message':_0xcbb4f5?_0xcbb4f5[_0xbbb8('0x30')]||_0xcbb4f5:''});}function checkPasswordPattern(_0x5d3dba,_0x1e5fe1,_0xceadc4){if(_0xceadc4){var _0x237732=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x237732[_0xbbb8('0x34')](_0x1e5fe1)){return _0x5d3dba;}else{throw new Error(_0xbbb8('0x35'));}}else{return _0x5d3dba;}}exports[_0xbbb8('0x36')]=function(_0x381e09,_0x46c896,_0x57cd29){passport[_0xbbb8('0x17')](_0xbbb8('0x37'),function(_0x3ee40e,_0x16e3df,_0x2baa83){var _0x22c86e=_0x3ee40e||_0x2baa83;if(_0x22c86e){return handleError(_0x46c896,0x191,_0x22c86e);}if(!_0x16e3df){return handleError(_0x46c896,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x422cf2=signToken(_0x16e3df['id'],_0x16e3df[_0xbbb8('0x12')]);_0x46c896[_0xbbb8('0x38')]({'id':_0x16e3df['id'],'token':_0x422cf2,'statusCall':'','isAlreadyLogged':_0x16e3df[_0xbbb8('0x39')]});}})(_0x381e09,_0x46c896,_0x57cd29);};exports[_0xbbb8('0x3a')]=function(_0x3a57b5,_0x447a9c,_0xa1eac8){if(!_0x3a57b5[_0xbbb8('0x3b')][_0xbbb8('0x2b')]){return handleError(_0x447a9c,0x1f4,{'message':_0xbbb8('0x3c')});}var _0x2fc307=rs[_0xbbb8('0x3d')]();_0x3a57b5['body'][_0xbbb8('0x2b')]=_0x3a57b5[_0xbbb8('0x3b')]['email']['trim']()[_0xbbb8('0x3e')]();var _0x42f065;return db[_0xbbb8('0xa')][_0xbbb8('0xb')]({'where':{'id':0x1},'attributes':[_0xbbb8('0xc'),_0xbbb8('0xd')],'raw':!![]})[_0xbbb8('0xe')](function(_0x5eac63){_0x42f065=_0x5eac63;return db[_0xbbb8('0x3f')]['find']({'where':{'email':_0x3a57b5[_0xbbb8('0x3b')]['email']}});})['then'](function(_0x4d375a){if(!_0x4d375a){throw new Error(_0xbbb8('0x40'));}if(_0x4d375a[_0xbbb8('0x13')]){throw new Error(_0xbbb8('0x41'));}if(_0x4d375a[_0xbbb8('0x14')]){if(moment(_0x4d375a[_0xbbb8('0x19')])['add'](_0x42f065['blockDuration'],_0xbbb8('0x1d'))>moment()){throw new Error(_0xbbb8('0x42'));}else{_0x4d375a[_0xbbb8('0x14')]=![];_0x4d375a['blockedAt']=null;}}_0x4d375a[_0xbbb8('0x43')]=_0x2fc307;_0x4d375a[_0xbbb8('0x44')]=Date[_0xbbb8('0x45')]()+0x36ee80;return _0x4d375a['save']();})[_0xbbb8('0xe')](function(){return sendServiceMail({'to':_0x3a57b5[_0xbbb8('0x3b')][_0xbbb8('0x2b')],'subject':_0xbbb8('0x46'),'text':_0xbbb8('0x47')+_0xbbb8('0x48')+_0xbbb8('0x49')+_0x3a57b5[_0xbbb8('0x4a')][_0xbbb8('0x24')]+_0xbbb8('0x4b')+_0x2fc307+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0xbbb8('0xe')](function(){_0x447a9c[_0xbbb8('0x32')](0xc8)[_0xbbb8('0x33')]({'message':_0xbbb8('0x4c')});})[_0xbbb8('0x1f')](function(_0x547269){return handleError(_0x447a9c,0x1f4,_0x547269);});};exports[_0xbbb8('0x4d')]=function(_0x4f15fb,_0x2061c8,_0x1a0556){var _0x486652;return db[_0xbbb8('0x3f')][_0xbbb8('0x20')]({'where':{'resetPasswordToken':_0x4f15fb[_0xbbb8('0x4e')][_0xbbb8('0x4f')],'resetPasswordExpires':{'$gt':Date['now']()}}})[_0xbbb8('0xe')](function(_0x4e9295){_0x486652=_0x4e9295;if(!_0x486652){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0xbbb8('0xa')][_0xbbb8('0xb')]({'attributes':['id',_0xbbb8('0x50')]});})[_0xbbb8('0xe')](function(_0xc06e96){return checkPasswordPattern(_0xc06e96,_0x4f15fb[_0xbbb8('0x3b')]['password'],_0xc06e96[_0xbbb8('0x50')]);})[_0xbbb8('0xe')](function(){_0x486652['password']=_0x4f15fb['body']['password'];_0x486652[_0xbbb8('0x43')]=null;_0x486652[_0xbbb8('0x44')]=null;return _0x486652['save']();})[_0xbbb8('0xe')](function(){_0x2061c8[_0xbbb8('0x32')](0xc8)[_0xbbb8('0x33')]({'message':_0xbbb8('0x51')});})['catch'](function(_0x46c9a3){return handleError(_0x2061c8,0x1f4,_0x46c9a3);});};passport[_0xbbb8('0x52')](new LocalStrategy({'usernameField':_0xbbb8('0xf'),'passwordField':'password'},function(_0x3ecc23,_0x412990,_0x15accf){return localAuthenticate(db['User'],_0x3ecc23,_0x412990,_0x15accf);}));
\ No newline at end of file