Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / authLocal / authLocal.controller.js
index ac3ca37..f117376 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xe162=['minutes','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','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','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','http://','headers','/reset/','status','Reset\x20Email\x20sent!','reset','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','use','util','passport','passport-local','Strategy','jayson/promise','lodash','randomstring','../../components/auth/service','client','Setting','findOne','allowedLoginAttempts','blockDuration','password','salt','blockedAt','admin','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','loginAttempts','blocked','clearBlockUser','disabled','add','getLicense','catch','MailAccount','find','name','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','user','merge','format','\x22%s\x22\x20<%s>','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','stringify','send','message','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','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','body','generate','trim','toLowerCase','User','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.'];(function(_0x395524,_0x31ac11){var _0x3f6568=function(_0x43d86d){while(--_0x43d86d){_0x395524['push'](_0x395524['shift']());}};_0x3f6568(++_0x31ac11);}(_0xe162,0xb2));var _0x2e16=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xe162[_0x8c43de];return _0xa6591b;};'use strict';var util=require(_0x2e16('0x0'));var passport=require(_0x2e16('0x1'));var LocalStrategy=require(_0x2e16('0x2'))[_0x2e16('0x3')];var jayson=require(_0x2e16('0x4'));var _=require(_0x2e16('0x5'));var rs=require(_0x2e16('0x6'));var moment=require('moment');var db=require('../../mysqldb')['db'];var authService=require(_0x2e16('0x7'));var utils=require('../../config/utils');var client=jayson[_0x2e16('0x8')]['http']({'port':0x232b});function localAuthenticate(_0x348857,_0x18ca90,_0x615517,_0x388f96){var _0x4b9e66,_0x4875bb;return db[_0x2e16('0x9')][_0x2e16('0xa')]({'where':{'id':0x1},'attributes':[_0x2e16('0xb'),_0x2e16('0xc')],'raw':!![]})['then'](function(_0xeec465){_0x4b9e66=_0xeec465;return _0x348857[_0x2e16('0xa')]({'attributes':['id','name',_0x2e16('0xd'),_0x2e16('0xe'),'role','disabled','blocked',_0x2e16('0xf'),'loginAttempts'],'where':{'name':_0x18ca90,'role':{'$or':[_0x2e16('0x10'),'user',_0x2e16('0x11')]}}});})[_0x2e16('0x12')](function(_0x281bd6){if(!_0x281bd6||_0x281bd6&&_0x281bd6['name']!==_0x18ca90){throw new Error(_0x2e16('0x13'));}else{_0x4875bb=_0x281bd6;return _0x4875bb;}})[_0x2e16('0x12')](function(){_0x4875bb[_0x2e16('0x14')](_0x615517,function(_0x528992,_0xd3904c){var _0xc39a84=_0x4875bb[_0x2e16('0x15')]+0x1;if(_0x528992){return _0x388f96(_0x528992);}else if(!_0xd3904c){if(_0x4875bb['disabled']){return _0x388f96(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x4b9e66[_0x2e16('0xb')]>0x0){if(_0x4875bb[_0x2e16('0x16')]){if(_0x4b9e66[_0x2e16('0xc')]>0x0){if(moment(_0x4875bb[_0x2e16('0xf')])['add'](_0x4b9e66['blockDuration'],'minutes')>moment()){return _0x388f96(null,![],{'message':_0x2e16('0x13')});}else{return utils[_0x2e16('0x17')](_0x4875bb,_0xc39a84,![],null)['then'](function(){return _0x388f96(null,![],{'message':_0x2e16('0x13')});});}}else{return _0x388f96(null,![],{'message':_0x2e16('0x13')});}}else{if(_0xc39a84>=_0x4b9e66['allowedLoginAttempts']){return utils['clearBlockUser'](_0x4875bb,0x0,!![],moment())[_0x2e16('0x12')](function(){return _0x388f96(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils['clearBlockUser'](_0x4875bb,_0xc39a84,![],null)[_0x2e16('0x12')](function(){return _0x388f96(null,![],{'message':_0x2e16('0x13')});});}}}else{return _0x388f96(null,![],{'message':_0x2e16('0x13')});}}else{if(_0x4875bb[_0x2e16('0x18')]){return _0x388f96(null,![],{'message':_0x2e16('0x13')});}else if(_0x4b9e66[_0x2e16('0xb')]>0x0){if(_0x4875bb['blocked']){if(_0x4b9e66[_0x2e16('0xc')]>0x0){if(moment(_0x4875bb[_0x2e16('0xf')])[_0x2e16('0x19')](_0x4b9e66[_0x2e16('0xc')],'minutes')>moment()){return _0x388f96(null,![],{'message':_0x2e16('0x13')});}else{return utils[_0x2e16('0x17')](_0x4875bb,0x0,![],null)[_0x2e16('0x12')](function(){return utils['getLicense'](_0x4875bb);})['then'](function(){return _0x388f96(null,_0x4875bb);});}}else{return _0x388f96(null,![],{'message':_0x2e16('0x13')});}}else{return utils[_0x2e16('0x17')](_0x4875bb,0x0,![],null)['then'](function(){return utils[_0x2e16('0x1a')](_0x4875bb);})[_0x2e16('0x12')](function(){return _0x388f96(null,_0x4875bb);})[_0x2e16('0x1b')](function(_0x4f3912){return _0x388f96(null,![],_0x4f3912);});}}else{if(_0x4875bb['blocked']){return _0x388f96(null,![],{'message':_0x2e16('0x13')});}else{return utils['getLicense'](_0x4875bb)[_0x2e16('0x12')](function(){return _0x388f96(null,_0x4875bb);});}}}});})[_0x2e16('0x1b')](function(_0x48be80){return _0x388f96(null,![],_0x48be80);});}function sendServiceMail(_0x55e570){return db[_0x2e16('0x1c')][_0x2e16('0x1d')]({'where':{'service':!![]},'attributes':['id',_0x2e16('0x1e'),_0x2e16('0x1f')],'include':[{'model':db[_0x2e16('0x20')],'as':_0x2e16('0x21')}]})[_0x2e16('0x12')](function(_0x508a0){if(!_0x508a0){throw new Error(_0x2e16('0x22'));}var _0x25167f={'tls':{'rejectUnauthorized':![]}};if(_0x508a0[_0x2e16('0x21')][_0x2e16('0x23')]){_0x25167f[_0x2e16('0x23')]=_0x508a0[_0x2e16('0x21')]['service'];}else{_0x25167f[_0x2e16('0x24')]=_0x508a0[_0x2e16('0x21')][_0x2e16('0x24')];_0x25167f[_0x2e16('0x25')]=_0x508a0[_0x2e16('0x21')]['port'];_0x25167f[_0x2e16('0x26')]=_0x508a0[_0x2e16('0x21')]['secure'];}if(_0x508a0[_0x2e16('0x21')][_0x2e16('0x27')]){_0x25167f['auth']={'user':_0x508a0[_0x2e16('0x21')][_0x2e16('0x28')],'pass':_0x508a0['Smtp']['pass']};}var _0x252389={'account':_0x25167f,'message':_[_0x2e16('0x29')]({'from':util[_0x2e16('0x2a')](_0x2e16('0x2b'),_0x508a0[_0x2e16('0x1e')],_0x508a0[_0x2e16('0x1f')]||_0x508a0[_0x2e16('0x21')][_0x2e16('0x28')])},_0x55e570)};return client['request']('SendMail',_0x252389);})[_0x2e16('0x12')](function(_0x1fe3be){if(_0x1fe3be[_0x2e16('0x2c')]){throw new Error(util[_0x2e16('0x2a')](_0x2e16('0x2d'),_0x1fe3be[_0x2e16('0x2c')]['message']||JSON[_0x2e16('0x2e')](_0x1fe3be['error'])));}return!![];});}function handleError(_0x19f3b7,_0x1e3877,_0x43b278){return _0x19f3b7['status'](_0x1e3877||0x1f4)[_0x2e16('0x2f')]({'message':_0x43b278?_0x43b278[_0x2e16('0x30')]||_0x43b278:''});}function checkPasswordPattern(_0x1452ac,_0x531729,_0x282517){if(_0x282517){var _0x38b60a=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x38b60a[_0x2e16('0x31')](_0x531729)){return _0x1452ac;}else{throw new Error(_0x2e16('0x32'));}}else{return _0x1452ac;}}exports[_0x2e16('0x33')]=function(_0xa804f6,_0x209668,_0x3a7691){passport[_0x2e16('0x14')](_0x2e16('0x34'),function(_0x17b446,_0x46fc4e,_0x4e57c9){var _0x24c9c2=_0x17b446||_0x4e57c9;if(_0x24c9c2){return handleError(_0x209668,0x191,_0x24c9c2);}if(!_0x46fc4e){return handleError(_0x209668,0x194,{'message':_0x2e16('0x35')});}else{var _0x122e67={'payload':{'id':_0x46fc4e['id'],'role':_0x46fc4e['role']},'options':{'expiresIn':0x15180}};return authService[_0x2e16('0x36')](_0x122e67)[_0x2e16('0x12')](function(_0x36b449){_0x209668[_0x2e16('0x37')]({'id':_0x46fc4e['id'],'token':_0x36b449,'statusCall':'','isAlreadyLogged':_0x46fc4e['online']});});}})(_0xa804f6,_0x209668,_0x3a7691);};exports['forgot']=function(_0x2cee37,_0x2ca021,_0x30fc46){if(!_0x2cee37[_0x2e16('0x38')]['email']){return handleError(_0x2ca021,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x228ab9=rs[_0x2e16('0x39')]();_0x2cee37[_0x2e16('0x38')][_0x2e16('0x1f')]=_0x2cee37['body'][_0x2e16('0x1f')][_0x2e16('0x3a')]()[_0x2e16('0x3b')]();var _0x1f1ebe;return db[_0x2e16('0x9')][_0x2e16('0xa')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x2e16('0xc')],'raw':!![]})[_0x2e16('0x12')](function(_0xf75ae9){_0x1f1ebe=_0xf75ae9;return db[_0x2e16('0x3c')][_0x2e16('0x1d')]({'where':{'email':_0x2cee37[_0x2e16('0x38')]['email']}});})['then'](function(_0x16e3d9){if(!_0x16e3d9){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x16e3d9['disabled']){throw new Error(_0x2e16('0x3d'));}if(_0x16e3d9[_0x2e16('0x16')]){if(moment(_0x16e3d9['blockedAt'])['add'](_0x1f1ebe[_0x2e16('0xc')],_0x2e16('0x3e'))>moment()){throw new Error(_0x2e16('0x3f'));}else{_0x16e3d9['blocked']=![];_0x16e3d9[_0x2e16('0xf')]=null;}}_0x16e3d9[_0x2e16('0x40')]=_0x228ab9;_0x16e3d9[_0x2e16('0x41')]=Date[_0x2e16('0x42')]()+0x36ee80;return _0x16e3d9[_0x2e16('0x43')]();})['then'](function(){return sendServiceMail({'to':_0x2cee37[_0x2e16('0x38')][_0x2e16('0x1f')],'subject':_0x2e16('0x44'),'text':_0x2e16('0x45')+_0x2e16('0x46')+_0x2e16('0x47')+_0x2cee37[_0x2e16('0x48')][_0x2e16('0x24')]+_0x2e16('0x49')+_0x228ab9+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0x2e16('0x12')](function(){_0x2ca021[_0x2e16('0x4a')](0xc8)['send']({'message':_0x2e16('0x4b')});})[_0x2e16('0x1b')](function(_0x4995cd){return handleError(_0x2ca021,0x1f4,_0x4995cd);});};exports[_0x2e16('0x4c')]=function(_0x1d7474,_0xcb9f32,_0x496eef){var _0x38ac51;return db['User'][_0x2e16('0x1d')]({'where':{'resetPasswordToken':_0x1d7474['params']['token'],'resetPasswordExpires':{'$gt':Date[_0x2e16('0x42')]()}}})[_0x2e16('0x12')](function(_0x26a887){_0x38ac51=_0x26a887;if(!_0x38ac51){throw new Error(_0x2e16('0x4d'));}return db[_0x2e16('0x9')][_0x2e16('0xa')]({'attributes':['id',_0x2e16('0x4e')]});})[_0x2e16('0x12')](function(_0x1365c6){return checkPasswordPattern(_0x1365c6,_0x1d7474[_0x2e16('0x38')][_0x2e16('0xd')],_0x1365c6[_0x2e16('0x4e')]);})[_0x2e16('0x12')](function(){_0x38ac51[_0x2e16('0xd')]=_0x1d7474[_0x2e16('0x38')][_0x2e16('0xd')];_0x38ac51[_0x2e16('0x40')]=null;_0x38ac51[_0x2e16('0x41')]=null;return _0x38ac51['save']();})[_0x2e16('0x12')](function(){_0xcb9f32[_0x2e16('0x4a')](0xc8)[_0x2e16('0x2f')]({'message':'Password\x20reset!'});})['catch'](function(_0x299a0f){return handleError(_0xcb9f32,0x1f4,_0x299a0f);});};passport[_0x2e16('0x4f')](new LocalStrategy({'usernameField':_0x2e16('0x1e'),'passwordField':_0x2e16('0xd')},function(_0x486d48,_0x831995,_0x5b62c7){return localAuthenticate(db[_0x2e16('0x3c')],_0x486d48,_0x831995,_0x5b62c7);}));
\ No newline at end of file
+var _0x2b55=['password','salt','role','disabled','loginAttempts','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blockDuration','blockedAt','clearBlockUser','blocked','add','minutes','getLicense','catch','find','email','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','authentication','auth','pass','format','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','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','signToken','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordExpires','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','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','status','Reset\x20Email\x20sent!','reset','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','Password\x20reset!','use','util','passport','passport-local','Strategy','jayson/promise','lodash','randomstring','../../components/auth/service','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts','then','name'];(function(_0x32034d,_0x3cd7a9){var _0xe6a87d=function(_0xb9262c){while(--_0xb9262c){_0x32034d['push'](_0x32034d['shift']());}};_0xe6a87d(++_0x3cd7a9);}(_0x2b55,0x180));var _0x52b5=function(_0x27ee9f,_0x4e179e){_0x27ee9f=_0x27ee9f-0x0;var _0x2b9066=_0x2b55[_0x27ee9f];return _0x2b9066;};'use strict';var util=require(_0x52b5('0x0'));var passport=require(_0x52b5('0x1'));var LocalStrategy=require(_0x52b5('0x2'))[_0x52b5('0x3')];var jayson=require(_0x52b5('0x4'));var _=require(_0x52b5('0x5'));var rs=require(_0x52b5('0x6'));var moment=require('moment');var db=require('../../mysqldb')['db'];var authService=require(_0x52b5('0x7'));var utils=require(_0x52b5('0x8'));var client=jayson[_0x52b5('0x9')][_0x52b5('0xa')]({'port':0x232b});function localAuthenticate(_0x3582ad,_0x1c1ea2,_0x2bf6ad,_0x2af60a){var _0x4a0c79,_0x5548eb;return db[_0x52b5('0xb')][_0x52b5('0xc')]({'where':{'id':0x1},'attributes':[_0x52b5('0xd'),'blockDuration'],'raw':!![]})[_0x52b5('0xe')](function(_0x22b926){_0x4a0c79=_0x22b926;return _0x3582ad[_0x52b5('0xc')]({'attributes':['id',_0x52b5('0xf'),_0x52b5('0x10'),_0x52b5('0x11'),_0x52b5('0x12'),_0x52b5('0x13'),'blocked','blockedAt',_0x52b5('0x14')],'where':{'name':_0x1c1ea2,'role':{'$or':[_0x52b5('0x15'),_0x52b5('0x16'),_0x52b5('0x17')]}}});})[_0x52b5('0xe')](function(_0x46fa25){if(!_0x46fa25||_0x46fa25&&_0x46fa25[_0x52b5('0xf')]!==_0x1c1ea2){throw new Error(_0x52b5('0x18'));}else{_0x5548eb=_0x46fa25;return _0x5548eb;}})[_0x52b5('0xe')](function(){_0x5548eb['authenticate'](_0x2bf6ad,function(_0x1e43c5,_0xf3dfdf){var _0x29afb5=_0x5548eb[_0x52b5('0x14')]+0x1;if(_0x1e43c5){return _0x2af60a(_0x1e43c5);}else if(!_0xf3dfdf){if(_0x5548eb[_0x52b5('0x13')]){return _0x2af60a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x4a0c79['allowedLoginAttempts']>0x0){if(_0x5548eb['blocked']){if(_0x4a0c79[_0x52b5('0x19')]>0x0){if(moment(_0x5548eb[_0x52b5('0x1a')])['add'](_0x4a0c79[_0x52b5('0x19')],'minutes')>moment()){return _0x2af60a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils['clearBlockUser'](_0x5548eb,_0x29afb5,![],null)[_0x52b5('0xe')](function(){return _0x2af60a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x2af60a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x29afb5>=_0x4a0c79[_0x52b5('0xd')]){return utils['clearBlockUser'](_0x5548eb,0x0,!![],moment())['then'](function(){return _0x2af60a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0x52b5('0x1b')](_0x5548eb,_0x29afb5,![],null)['then'](function(){return _0x2af60a(null,![],{'message':_0x52b5('0x18')});});}}}else{return _0x2af60a(null,![],{'message':_0x52b5('0x18')});}}else{if(_0x5548eb[_0x52b5('0x13')]){return _0x2af60a(null,![],{'message':_0x52b5('0x18')});}else if(_0x4a0c79[_0x52b5('0xd')]>0x0){if(_0x5548eb[_0x52b5('0x1c')]){if(_0x4a0c79['blockDuration']>0x0){if(moment(_0x5548eb['blockedAt'])[_0x52b5('0x1d')](_0x4a0c79[_0x52b5('0x19')],_0x52b5('0x1e'))>moment()){return _0x2af60a(null,![],{'message':_0x52b5('0x18')});}else{return utils[_0x52b5('0x1b')](_0x5548eb,0x0,![],null)[_0x52b5('0xe')](function(){return utils[_0x52b5('0x1f')](_0x5548eb);})[_0x52b5('0xe')](function(){return _0x2af60a(null,_0x5548eb);});}}else{return _0x2af60a(null,![],{'message':_0x52b5('0x18')});}}else{return utils['clearBlockUser'](_0x5548eb,0x0,![],null)['then'](function(){return utils[_0x52b5('0x1f')](_0x5548eb);})[_0x52b5('0xe')](function(){return _0x2af60a(null,_0x5548eb);})['catch'](function(_0x40fd99){return _0x2af60a(null,![],_0x40fd99);});}}else{if(_0x5548eb[_0x52b5('0x1c')]){return _0x2af60a(null,![],{'message':_0x52b5('0x18')});}else{return utils[_0x52b5('0x1f')](_0x5548eb)[_0x52b5('0xe')](function(){return _0x2af60a(null,_0x5548eb);});}}}});})[_0x52b5('0x20')](function(_0x227d8e){return _0x2af60a(null,![],_0x227d8e);});}function sendServiceMail(_0x4c4ccf){return db['MailAccount'][_0x52b5('0x21')]({'where':{'service':!![]},'attributes':['id',_0x52b5('0xf'),_0x52b5('0x22')],'include':[{'model':db['MailServerOut'],'as':_0x52b5('0x23')}]})['then'](function(_0x345f94){if(!_0x345f94){throw new Error(_0x52b5('0x24'));}var _0x3cd5bd={'tls':{'rejectUnauthorized':![]}};if(_0x345f94['Smtp'][_0x52b5('0x25')]){_0x3cd5bd[_0x52b5('0x25')]=_0x345f94[_0x52b5('0x23')][_0x52b5('0x25')];}else{_0x3cd5bd[_0x52b5('0x26')]=_0x345f94[_0x52b5('0x23')][_0x52b5('0x26')];_0x3cd5bd[_0x52b5('0x27')]=_0x345f94['Smtp'][_0x52b5('0x27')];_0x3cd5bd[_0x52b5('0x28')]=_0x345f94[_0x52b5('0x23')][_0x52b5('0x28')];}if(_0x345f94[_0x52b5('0x23')][_0x52b5('0x29')]){_0x3cd5bd[_0x52b5('0x2a')]={'user':_0x345f94[_0x52b5('0x23')][_0x52b5('0x16')],'pass':_0x345f94[_0x52b5('0x23')][_0x52b5('0x2b')]};}var _0xedb170={'account':_0x3cd5bd,'message':_['merge']({'from':util[_0x52b5('0x2c')]('\x22%s\x22\x20<%s>',_0x345f94['name'],_0x345f94['email']||_0x345f94[_0x52b5('0x23')][_0x52b5('0x16')])},_0x4c4ccf)};return client[_0x52b5('0x2d')](_0x52b5('0x2e'),_0xedb170);})['then'](function(_0x245a93){if(_0x245a93[_0x52b5('0x2f')]){throw new Error(util[_0x52b5('0x2c')](_0x52b5('0x30'),_0x245a93['error'][_0x52b5('0x31')]||JSON[_0x52b5('0x32')](_0x245a93[_0x52b5('0x2f')])));}return!![];});}function handleError(_0x2c0d35,_0x186154,_0x4bc0dd){return _0x2c0d35['status'](_0x186154||0x1f4)[_0x52b5('0x33')]({'message':_0x4bc0dd?_0x4bc0dd[_0x52b5('0x31')]||_0x4bc0dd:''});}function checkPasswordPattern(_0x39da26,_0x1bcf2a,_0x2865c1){if(_0x2865c1){var _0x172cb2=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x172cb2[_0x52b5('0x34')](_0x1bcf2a)){return _0x39da26;}else{throw new Error(_0x52b5('0x35'));}}else{return _0x39da26;}}exports[_0x52b5('0x36')]=function(_0x64a110,_0x2473b2,_0x2ced2b){passport['authenticate']('local',function(_0x5c7d1b,_0x4e7b2d,_0x1cf3ab){var _0xbc167=_0x5c7d1b||_0x1cf3ab;if(_0xbc167){return handleError(_0x2473b2,0x191,_0xbc167);}if(!_0x4e7b2d){return handleError(_0x2473b2,0x194,{'message':'Something\x20went\x20wrong,\x20please\x20try\x20again.'});}else{var _0x36df80={'payload':{'id':_0x4e7b2d['id'],'role':_0x4e7b2d['role']},'options':{'expiresIn':0x15180}};return authService[_0x52b5('0x37')](_0x36df80)[_0x52b5('0xe')](function(_0x40050a){_0x2473b2['json']({'id':_0x4e7b2d['id'],'token':_0x40050a,'statusCall':'','isAlreadyLogged':_0x4e7b2d[_0x52b5('0x38')]});});}})(_0x64a110,_0x2473b2,_0x2ced2b);};exports[_0x52b5('0x39')]=function(_0x478710,_0x41392f,_0x4d71b7){if(!_0x478710[_0x52b5('0x3a')]['email']){return handleError(_0x41392f,0x1f4,{'message':_0x52b5('0x3b')});}var _0x32e2a6=rs[_0x52b5('0x3c')]();_0x478710['body'][_0x52b5('0x22')]=_0x478710[_0x52b5('0x3a')]['email']['trim']()['toLowerCase']();var _0x2db94e;return db['Setting'][_0x52b5('0xc')]({'where':{'id':0x1},'attributes':[_0x52b5('0xd'),_0x52b5('0x19')],'raw':!![]})[_0x52b5('0xe')](function(_0xab33a1){_0x2db94e=_0xab33a1;return db[_0x52b5('0x3d')][_0x52b5('0x21')]({'where':{'email':_0x478710[_0x52b5('0x3a')][_0x52b5('0x22')]}});})[_0x52b5('0xe')](function(_0x52cc04){if(!_0x52cc04){throw new Error(_0x52b5('0x3e'));}if(_0x52cc04[_0x52b5('0x13')]){throw new Error(_0x52b5('0x3f'));}if(_0x52cc04[_0x52b5('0x1c')]){if(moment(_0x52cc04[_0x52b5('0x1a')])['add'](_0x2db94e['blockDuration'],_0x52b5('0x1e'))>moment()){throw new Error(_0x52b5('0x40'));}else{_0x52cc04['blocked']=![];_0x52cc04[_0x52b5('0x1a')]=null;}}_0x52cc04['resetPasswordToken']=_0x32e2a6;_0x52cc04[_0x52b5('0x41')]=Date['now']()+0x36ee80;return _0x52cc04[_0x52b5('0x42')]();})[_0x52b5('0xe')](function(){return sendServiceMail({'to':_0x478710['body'][_0x52b5('0x22')],'subject':'xCally\x20Motion\x20Password\x20Reset','text':_0x52b5('0x43')+_0x52b5('0x44')+'http://'+_0x478710[_0x52b5('0x45')][_0x52b5('0x26')]+_0x52b5('0x46')+_0x32e2a6+'\x0a\x0a'+_0x52b5('0x47')});})[_0x52b5('0xe')](function(){_0x41392f[_0x52b5('0x48')](0xc8)[_0x52b5('0x33')]({'message':_0x52b5('0x49')});})[_0x52b5('0x20')](function(_0x56c9ff){return handleError(_0x41392f,0x1f4,_0x56c9ff);});};exports[_0x52b5('0x4a')]=function(_0x309199,_0x2d6e67,_0x35f558){var _0x22e928;return db[_0x52b5('0x3d')][_0x52b5('0x21')]({'where':{'resetPasswordToken':_0x309199[_0x52b5('0x4b')][_0x52b5('0x4c')],'resetPasswordExpires':{'$gt':Date['now']()}}})['then'](function(_0x412e58){_0x22e928=_0x412e58;if(!_0x22e928){throw new Error(_0x52b5('0x4d'));}return db[_0x52b5('0xb')][_0x52b5('0xc')]({'attributes':['id','securePassword']});})[_0x52b5('0xe')](function(_0xbcffd6){return checkPasswordPattern(_0xbcffd6,_0x309199[_0x52b5('0x3a')]['password'],_0xbcffd6['securePassword']);})[_0x52b5('0xe')](function(){_0x22e928['password']=_0x309199[_0x52b5('0x3a')][_0x52b5('0x10')];_0x22e928['resetPasswordToken']=null;_0x22e928[_0x52b5('0x41')]=null;return _0x22e928[_0x52b5('0x42')]();})['then'](function(){_0x2d6e67[_0x52b5('0x48')](0xc8)[_0x52b5('0x33')]({'message':_0x52b5('0x4e')});})[_0x52b5('0x20')](function(_0x259401){return handleError(_0x2d6e67,0x1f4,_0x259401);});};passport[_0x52b5('0x4f')](new LocalStrategy({'usernameField':'name','passwordField':'password'},function(_0x1939c5,_0x56b5a5,_0x3fb565){return localAuthenticate(db['User'],_0x1939c5,_0x56b5a5,_0x3fb565);}));
\ No newline at end of file