Built motion from commit (unavailable).|2.5.4
[motion2.git] / server / api / authLocal / authLocal.controller.js
index 3fd8d0c..4267ab9 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xe9a6=['randomstring','../../mysqldb','../../config/utils','http','Setting','findOne','blockDuration','name','password','salt','role','disabled','blockedAt','loginAttempts','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','then','allowedLoginAttempts','blocked','add','minutes','clearBlockUser','getLicense','catch','MailAccount','find','MailServerOut','Smtp','service','host','port','secure','authentication','auth','pass','merge','format','\x22%s\x22\x20<%s>','request','SendMail','error','stringify','status','test','login','authenticate','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','json','online','body','email','Email\x20parameter\x20is\x20missing','generate','trim','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','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','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','send','reset','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','Password\x20reset!','use','util','passport','passport-local','Strategy','jayson/promise','lodash'];(function(_0x39fc4f,_0x1280f4){var _0x4759cc=function(_0x252d65){while(--_0x252d65){_0x39fc4f['push'](_0x39fc4f['shift']());}};_0x4759cc(++_0x1280f4);}(_0xe9a6,0xe1));var _0x6e9a=function(_0x42614c,_0x5b4cb9){_0x42614c=_0x42614c-0x0;var _0x25c2c3=_0xe9a6[_0x42614c];return _0x25c2c3;};'use strict';var util=require(_0x6e9a('0x0'));var passport=require(_0x6e9a('0x1'));var LocalStrategy=require(_0x6e9a('0x2'))[_0x6e9a('0x3')];var jayson=require(_0x6e9a('0x4'));var _=require(_0x6e9a('0x5'));var rs=require(_0x6e9a('0x6'));var moment=require('moment');var db=require(_0x6e9a('0x7'))['db'];var authService=require('../../components/auth/service');var utils=require(_0x6e9a('0x8'));var client=jayson['client'][_0x6e9a('0x9')]({'port':0x232b});function localAuthenticate(_0x46e007,_0x63796a,_0x19f34c,_0x46c39c){var _0x463228,_0x10c573;return db[_0x6e9a('0xa')][_0x6e9a('0xb')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x6e9a('0xc')],'raw':!![]})['then'](function(_0x3d841e){_0x463228=_0x3d841e;return _0x46e007[_0x6e9a('0xb')]({'attributes':['id',_0x6e9a('0xd'),_0x6e9a('0xe'),_0x6e9a('0xf'),_0x6e9a('0x10'),_0x6e9a('0x11'),'blocked',_0x6e9a('0x12'),_0x6e9a('0x13')],'where':{'name':_0x63796a,'role':{'$or':['admin',_0x6e9a('0x14'),_0x6e9a('0x15')]}}});})['then'](function(_0x40859c){if(!_0x40859c||_0x40859c&&_0x40859c[_0x6e9a('0xd')]!==_0x63796a){throw new Error(_0x6e9a('0x16'));}else{_0x10c573=_0x40859c;return _0x10c573;}})[_0x6e9a('0x17')](function(){_0x10c573['authenticate'](_0x19f34c,function(_0x13f084,_0x26e04c){var _0x4e0dcd=_0x10c573[_0x6e9a('0x13')]+0x1;if(_0x13f084){return _0x46c39c(_0x13f084);}else if(!_0x26e04c){if(_0x10c573[_0x6e9a('0x11')]){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});}else if(_0x463228[_0x6e9a('0x18')]>0x0){if(_0x10c573[_0x6e9a('0x19')]){if(_0x463228['blockDuration']>0x0){if(moment(_0x10c573[_0x6e9a('0x12')])[_0x6e9a('0x1a')](_0x463228[_0x6e9a('0xc')],_0x6e9a('0x1b'))>moment()){return _0x46c39c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x6e9a('0x1c')](_0x10c573,_0x4e0dcd,![],null)['then'](function(){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});});}}else{return _0x46c39c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x4e0dcd>=_0x463228[_0x6e9a('0x18')]){return utils['clearBlockUser'](_0x10c573,0x0,!![],moment())[_0x6e9a('0x17')](function(){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});});}else{return utils[_0x6e9a('0x1c')](_0x10c573,_0x4e0dcd,![],null)[_0x6e9a('0x17')](function(){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});});}}}else{return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});}}else{if(_0x10c573['disabled']){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});}else if(_0x463228[_0x6e9a('0x18')]>0x0){if(_0x10c573['blocked']){if(_0x463228['blockDuration']>0x0){if(moment(_0x10c573['blockedAt'])[_0x6e9a('0x1a')](_0x463228[_0x6e9a('0xc')],_0x6e9a('0x1b'))>moment()){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});}else{return utils[_0x6e9a('0x1c')](_0x10c573,0x0,![],null)[_0x6e9a('0x17')](function(){return utils[_0x6e9a('0x1d')](_0x10c573);})[_0x6e9a('0x17')](function(){return _0x46c39c(null,_0x10c573);});}}else{return _0x46c39c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0x6e9a('0x1c')](_0x10c573,0x0,![],null)[_0x6e9a('0x17')](function(){return utils[_0x6e9a('0x1d')](_0x10c573);})['then'](function(){return _0x46c39c(null,_0x10c573);})[_0x6e9a('0x1e')](function(_0x38abdc){return _0x46c39c(null,![],_0x38abdc);});}}else{if(_0x10c573[_0x6e9a('0x19')]){return _0x46c39c(null,![],{'message':_0x6e9a('0x16')});}else{return utils[_0x6e9a('0x1d')](_0x10c573)[_0x6e9a('0x17')](function(){return _0x46c39c(null,_0x10c573);});}}}});})[_0x6e9a('0x1e')](function(_0x42a592){return _0x46c39c(null,![],_0x42a592);});}function sendServiceMail(_0x5b5db2){return db[_0x6e9a('0x1f')][_0x6e9a('0x20')]({'where':{'service':!![]},'attributes':['id',_0x6e9a('0xd'),'email'],'include':[{'model':db[_0x6e9a('0x21')],'as':'Smtp'}]})[_0x6e9a('0x17')](function(_0x124fa5){if(!_0x124fa5){throw new Error('Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!');}var _0x49002e={'tls':{'rejectUnauthorized':![]}};if(_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x23')]){_0x49002e[_0x6e9a('0x23')]=_0x124fa5['Smtp'][_0x6e9a('0x23')];}else{_0x49002e[_0x6e9a('0x24')]=_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x24')];_0x49002e[_0x6e9a('0x25')]=_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x25')];_0x49002e[_0x6e9a('0x26')]=_0x124fa5['Smtp'][_0x6e9a('0x26')];}if(_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x27')]){_0x49002e[_0x6e9a('0x28')]={'user':_0x124fa5[_0x6e9a('0x22')]['user'],'pass':_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x29')]};}var _0x4d7760={'account':_0x49002e,'message':_[_0x6e9a('0x2a')]({'from':util[_0x6e9a('0x2b')](_0x6e9a('0x2c'),_0x124fa5[_0x6e9a('0xd')],_0x124fa5['email']||_0x124fa5[_0x6e9a('0x22')][_0x6e9a('0x14')])},_0x5b5db2)};return client[_0x6e9a('0x2d')](_0x6e9a('0x2e'),_0x4d7760);})[_0x6e9a('0x17')](function(_0x9e9bf){if(_0x9e9bf[_0x6e9a('0x2f')]){throw new Error(util['format']('SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!',_0x9e9bf[_0x6e9a('0x2f')]['message']||JSON[_0x6e9a('0x30')](_0x9e9bf['error'])));}return!![];});}function handleError(_0x59611a,_0x32f516,_0x5180c7){return _0x59611a[_0x6e9a('0x31')](_0x32f516||0x1f4)['send']({'message':_0x5180c7?_0x5180c7['message']||_0x5180c7:''});}function checkPasswordPattern(_0x5bcffe,_0x385684,_0x31a0cc){if(_0x31a0cc){var _0x1a48f6=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x1a48f6[_0x6e9a('0x32')](_0x385684)){return _0x5bcffe;}else{throw new Error('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');}}else{return _0x5bcffe;}}exports[_0x6e9a('0x33')]=function(_0x3120a0,_0x578a9c,_0xceb8e6){passport[_0x6e9a('0x34')](_0x6e9a('0x35'),function(_0x1d2138,_0x3d2954,_0xe6af73){var _0x203694=_0x1d2138||_0xe6af73;if(_0x203694){return handleError(_0x578a9c,0x191,_0x203694);}if(!_0x3d2954){return handleError(_0x578a9c,0x194,{'message':_0x6e9a('0x36')});}else{var _0x5aa85b={'payload':{'id':_0x3d2954['id'],'role':_0x3d2954['role']},'options':{'expiresIn':0x15180}};return authService['signToken'](_0x5aa85b)[_0x6e9a('0x17')](function(_0x2f0548){_0x578a9c[_0x6e9a('0x37')]({'id':_0x3d2954['id'],'token':_0x2f0548,'statusCall':'','isAlreadyLogged':_0x3d2954[_0x6e9a('0x38')]});});}})(_0x3120a0,_0x578a9c,_0xceb8e6);};exports['forgot']=function(_0x8588a1,_0x4497bd,_0x2c7274){if(!_0x8588a1[_0x6e9a('0x39')][_0x6e9a('0x3a')]){return handleError(_0x4497bd,0x1f4,{'message':_0x6e9a('0x3b')});}var _0x2c41cd=rs[_0x6e9a('0x3c')]();_0x8588a1[_0x6e9a('0x39')][_0x6e9a('0x3a')]=_0x8588a1['body'][_0x6e9a('0x3a')][_0x6e9a('0x3d')]()['toLowerCase']();var _0x3f9f92;return db['Setting'][_0x6e9a('0xb')]({'where':{'id':0x1},'attributes':[_0x6e9a('0x18'),_0x6e9a('0xc')],'raw':!![]})['then'](function(_0x2e09a9){_0x3f9f92=_0x2e09a9;return db['User']['find']({'where':{'email':_0x8588a1[_0x6e9a('0x39')][_0x6e9a('0x3a')]}});})[_0x6e9a('0x17')](function(_0x982a7a){if(!_0x982a7a){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x982a7a[_0x6e9a('0x11')]){throw new Error(_0x6e9a('0x3e'));}if(_0x982a7a['blocked']){if(moment(_0x982a7a['blockedAt'])['add'](_0x3f9f92[_0x6e9a('0xc')],_0x6e9a('0x1b'))>moment()){throw new Error(_0x6e9a('0x3f'));}else{_0x982a7a[_0x6e9a('0x19')]=![];_0x982a7a['blockedAt']=null;}}_0x982a7a[_0x6e9a('0x40')]=_0x2c41cd;_0x982a7a['resetPasswordExpires']=Date[_0x6e9a('0x41')]()+0x36ee80;return _0x982a7a[_0x6e9a('0x42')]();})[_0x6e9a('0x17')](function(){return sendServiceMail({'to':_0x8588a1['body']['email'],'subject':_0x6e9a('0x43'),'text':_0x6e9a('0x44')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+'http://'+_0x8588a1['headers'][_0x6e9a('0x24')]+'/reset/'+_0x2c41cd+'\x0a\x0a'+_0x6e9a('0x45')});})[_0x6e9a('0x17')](function(){_0x4497bd[_0x6e9a('0x31')](0xc8)[_0x6e9a('0x46')]({'message':'Reset\x20Email\x20sent!'});})[_0x6e9a('0x1e')](function(_0x5e4823){return handleError(_0x4497bd,0x1f4,_0x5e4823);});};exports[_0x6e9a('0x47')]=function(_0x20ec57,_0x3f9f07,_0x598400){var _0x2c80ae;return db['User']['find']({'where':{'resetPasswordToken':_0x20ec57['params'][_0x6e9a('0x48')],'resetPasswordExpires':{'$gt':Date[_0x6e9a('0x41')]()}}})[_0x6e9a('0x17')](function(_0x36746c){_0x2c80ae=_0x36746c;if(!_0x2c80ae){throw new Error(_0x6e9a('0x49'));}return db[_0x6e9a('0xa')][_0x6e9a('0xb')]({'attributes':['id',_0x6e9a('0x4a')]});})[_0x6e9a('0x17')](function(_0x17a9a6){return checkPasswordPattern(_0x17a9a6,_0x20ec57[_0x6e9a('0x39')][_0x6e9a('0xe')],_0x17a9a6[_0x6e9a('0x4a')]);})[_0x6e9a('0x17')](function(){_0x2c80ae[_0x6e9a('0xe')]=_0x20ec57['body'][_0x6e9a('0xe')];_0x2c80ae[_0x6e9a('0x40')]=null;_0x2c80ae['resetPasswordExpires']=null;return _0x2c80ae[_0x6e9a('0x42')]();})[_0x6e9a('0x17')](function(){_0x3f9f07[_0x6e9a('0x31')](0xc8)[_0x6e9a('0x46')]({'message':_0x6e9a('0x4b')});})[_0x6e9a('0x1e')](function(_0x415e4d){return handleError(_0x3f9f07,0x1f4,_0x415e4d);});};passport[_0x6e9a('0x4c')](new LocalStrategy({'usernameField':_0x6e9a('0xd'),'passwordField':_0x6e9a('0xe')},function(_0x49bccb,_0x1a2de6,_0x34f69f){return localAuthenticate(db['User'],_0x49bccb,_0x1a2de6,_0x34f69f);}));
\ No newline at end of file
+var _0x5e91=['email','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','Smtp','service','host','port','secure','authentication','auth','pass','merge','format','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','stringify','status','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~!@#$%^&-_=+[{]}.','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','toLowerCase','Setting','find','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','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','http://','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','reset','User','params','token','now','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','password','Password\x20reset!','use','util','passport','passport-local','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','findOne','allowedLoginAttempts','blockDuration','then','name','salt','role','disabled','blocked','blockedAt','loginAttempts','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','add','clearBlockUser','minutes','getLicense','catch','MailAccount'];(function(_0x4e287d,_0x5cf55d){var _0x258870=function(_0x53b6b2){while(--_0x53b6b2){_0x4e287d['push'](_0x4e287d['shift']());}};_0x258870(++_0x5cf55d);}(_0x5e91,0x1d4));var _0x15e9=function(_0x10ec0f,_0x5ece09){_0x10ec0f=_0x10ec0f-0x0;var _0x1587ee=_0x5e91[_0x10ec0f];return _0x1587ee;};'use strict';var util=require(_0x15e9('0x0'));var passport=require(_0x15e9('0x1'));var LocalStrategy=require(_0x15e9('0x2'))['Strategy'];var jayson=require('jayson/promise');var _=require(_0x15e9('0x3'));var rs=require(_0x15e9('0x4'));var moment=require(_0x15e9('0x5'));var db=require(_0x15e9('0x6'))['db'];var authService=require(_0x15e9('0x7'));var utils=require('../../config/utils');var client=jayson['client']['http']({'port':0x232b});function localAuthenticate(_0x1e4695,_0x2eed98,_0x221cd2,_0x4c8d3a){var _0x2e1280,_0xdb571d;return db['Setting'][_0x15e9('0x8')]({'where':{'id':0x1},'attributes':[_0x15e9('0x9'),_0x15e9('0xa')],'raw':!![]})[_0x15e9('0xb')](function(_0xba9822){_0x2e1280=_0xba9822;return _0x1e4695[_0x15e9('0x8')]({'attributes':['id',_0x15e9('0xc'),'password',_0x15e9('0xd'),_0x15e9('0xe'),_0x15e9('0xf'),_0x15e9('0x10'),_0x15e9('0x11'),_0x15e9('0x12')],'where':{'name':_0x2eed98,'role':{'$or':[_0x15e9('0x13'),_0x15e9('0x14'),_0x15e9('0x15')]}}});})['then'](function(_0xb80070){if(!_0xb80070||_0xb80070&&_0xb80070[_0x15e9('0xc')]!==_0x2eed98){throw new Error(_0x15e9('0x16'));}else{_0xdb571d=_0xb80070;return _0xdb571d;}})[_0x15e9('0xb')](function(){_0xdb571d[_0x15e9('0x17')](_0x221cd2,function(_0x49c50c,_0x3c2174){var _0x51c09e=_0xdb571d[_0x15e9('0x12')]+0x1;if(_0x49c50c){return _0x4c8d3a(_0x49c50c);}else if(!_0x3c2174){if(_0xdb571d[_0x15e9('0xf')]){return _0x4c8d3a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x2e1280['allowedLoginAttempts']>0x0){if(_0xdb571d[_0x15e9('0x10')]){if(_0x2e1280[_0x15e9('0xa')]>0x0){if(moment(_0xdb571d[_0x15e9('0x11')])[_0x15e9('0x18')](_0x2e1280[_0x15e9('0xa')],'minutes')>moment()){return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});}else{return utils[_0x15e9('0x19')](_0xdb571d,_0x51c09e,![],null)['then'](function(){return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});});}}else{return _0x4c8d3a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x51c09e>=_0x2e1280['allowedLoginAttempts']){return utils[_0x15e9('0x19')](_0xdb571d,0x0,!![],moment())[_0x15e9('0xb')](function(){return _0x4c8d3a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0x15e9('0x19')](_0xdb571d,_0x51c09e,![],null)['then'](function(){return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});});}}}else{return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});}}else{if(_0xdb571d[_0x15e9('0xf')]){return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});}else if(_0x2e1280[_0x15e9('0x9')]>0x0){if(_0xdb571d[_0x15e9('0x10')]){if(_0x2e1280[_0x15e9('0xa')]>0x0){if(moment(_0xdb571d[_0x15e9('0x11')])[_0x15e9('0x18')](_0x2e1280[_0x15e9('0xa')],_0x15e9('0x1a'))>moment()){return _0x4c8d3a(null,![],{'message':_0x15e9('0x16')});}else{return utils[_0x15e9('0x19')](_0xdb571d,0x0,![],null)[_0x15e9('0xb')](function(){return utils[_0x15e9('0x1b')](_0xdb571d);})[_0x15e9('0xb')](function(){return _0x4c8d3a(null,_0xdb571d);});}}else{return _0x4c8d3a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{return utils[_0x15e9('0x19')](_0xdb571d,0x0,![],null)[_0x15e9('0xb')](function(){return utils[_0x15e9('0x1b')](_0xdb571d);})[_0x15e9('0xb')](function(){return _0x4c8d3a(null,_0xdb571d);})[_0x15e9('0x1c')](function(_0x1a8d5b){return _0x4c8d3a(null,![],_0x1a8d5b);});}}else{if(_0xdb571d[_0x15e9('0x10')]){return _0x4c8d3a(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x15e9('0x1b')](_0xdb571d)[_0x15e9('0xb')](function(){return _0x4c8d3a(null,_0xdb571d);});}}}});})[_0x15e9('0x1c')](function(_0x3c920d){return _0x4c8d3a(null,![],_0x3c920d);});}function sendServiceMail(_0x533807){return db[_0x15e9('0x1d')]['find']({'where':{'service':!![]},'attributes':['id','name',_0x15e9('0x1e')],'include':[{'model':db['MailServerOut'],'as':'Smtp'}]})[_0x15e9('0xb')](function(_0x1e9e57){if(!_0x1e9e57){throw new Error(_0x15e9('0x1f'));}var _0x3c4844={'tls':{'rejectUnauthorized':![]}};if(_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x21')]){_0x3c4844[_0x15e9('0x21')]=_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x21')];}else{_0x3c4844[_0x15e9('0x22')]=_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x22')];_0x3c4844[_0x15e9('0x23')]=_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x23')];_0x3c4844[_0x15e9('0x24')]=_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x24')];}if(_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x25')]){_0x3c4844[_0x15e9('0x26')]={'user':_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x14')],'pass':_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x27')]};}var _0x1a5c29={'account':_0x3c4844,'message':_[_0x15e9('0x28')]({'from':util[_0x15e9('0x29')]('\x22%s\x22\x20<%s>',_0x1e9e57['name'],_0x1e9e57['email']||_0x1e9e57[_0x15e9('0x20')][_0x15e9('0x14')])},_0x533807)};return client['request'](_0x15e9('0x2a'),_0x1a5c29);})['then'](function(_0x1bed4c){if(_0x1bed4c[_0x15e9('0x2b')]){throw new Error(util['format'](_0x15e9('0x2c'),_0x1bed4c[_0x15e9('0x2b')]['message']||JSON[_0x15e9('0x2d')](_0x1bed4c['error'])));}return!![];});}function handleError(_0x114248,_0x110b07,_0x2d3d73){return _0x114248[_0x15e9('0x2e')](_0x110b07||0x1f4)[_0x15e9('0x2f')]({'message':_0x2d3d73?_0x2d3d73[_0x15e9('0x30')]||_0x2d3d73:''});}function checkPasswordPattern(_0x2d6587,_0x42575a,_0x3d1389){if(_0x3d1389){var _0x5d7471=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5d7471[_0x15e9('0x31')](_0x42575a)){return _0x2d6587;}else{throw new Error(_0x15e9('0x32'));}}else{return _0x2d6587;}}exports['login']=function(_0x58bd97,_0x15bc8a,_0x41c751){passport[_0x15e9('0x17')](_0x15e9('0x33'),function(_0x52e6ac,_0x155fd7,_0x1ebd2e){var _0x20fc03=_0x52e6ac||_0x1ebd2e;if(_0x20fc03){return handleError(_0x15bc8a,0x191,_0x20fc03);}if(!_0x155fd7){return handleError(_0x15bc8a,0x194,{'message':_0x15e9('0x34')});}else{var _0x17d2f0={'payload':{'id':_0x155fd7['id'],'role':_0x155fd7[_0x15e9('0xe')]},'options':{'expiresIn':0x15180}};return authService[_0x15e9('0x35')](_0x17d2f0)[_0x15e9('0xb')](function(_0x86f7da){_0x15bc8a[_0x15e9('0x36')]({'id':_0x155fd7['id'],'token':_0x86f7da,'statusCall':'','isAlreadyLogged':_0x155fd7[_0x15e9('0x37')]});});}})(_0x58bd97,_0x15bc8a,_0x41c751);};exports[_0x15e9('0x38')]=function(_0x22c8bd,_0x12320a,_0x4a277e){if(!_0x22c8bd[_0x15e9('0x39')][_0x15e9('0x1e')]){return handleError(_0x12320a,0x1f4,{'message':_0x15e9('0x3a')});}var _0x3cc919=rs[_0x15e9('0x3b')]();_0x22c8bd[_0x15e9('0x39')][_0x15e9('0x1e')]=_0x22c8bd['body']['email'][_0x15e9('0x3c')]()[_0x15e9('0x3d')]();var _0x569e25;return db[_0x15e9('0x3e')][_0x15e9('0x8')]({'where':{'id':0x1},'attributes':[_0x15e9('0x9'),_0x15e9('0xa')],'raw':!![]})[_0x15e9('0xb')](function(_0xc30c5){_0x569e25=_0xc30c5;return db['User'][_0x15e9('0x3f')]({'where':{'email':_0x22c8bd[_0x15e9('0x39')][_0x15e9('0x1e')]}});})[_0x15e9('0xb')](function(_0x19a741){if(!_0x19a741){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x19a741['disabled']){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x19a741[_0x15e9('0x10')]){if(moment(_0x19a741['blockedAt'])['add'](_0x569e25[_0x15e9('0xa')],_0x15e9('0x1a'))>moment()){throw new Error(_0x15e9('0x40'));}else{_0x19a741[_0x15e9('0x10')]=![];_0x19a741['blockedAt']=null;}}_0x19a741[_0x15e9('0x41')]=_0x3cc919;_0x19a741[_0x15e9('0x42')]=Date['now']()+0x36ee80;return _0x19a741[_0x15e9('0x43')]();})[_0x15e9('0xb')](function(){return sendServiceMail({'to':_0x22c8bd[_0x15e9('0x39')][_0x15e9('0x1e')],'subject':'xCally\x20Motion\x20Password\x20Reset','text':_0x15e9('0x44')+_0x15e9('0x45')+_0x15e9('0x46')+_0x22c8bd['headers'][_0x15e9('0x22')]+'/reset/'+_0x3cc919+'\x0a\x0a'+_0x15e9('0x47')});})[_0x15e9('0xb')](function(){_0x12320a[_0x15e9('0x2e')](0xc8)[_0x15e9('0x2f')]({'message':_0x15e9('0x48')});})[_0x15e9('0x1c')](function(_0x68e394){return handleError(_0x12320a,0x1f4,_0x68e394);});};exports[_0x15e9('0x49')]=function(_0x1f5c0f,_0x32cb55,_0x34b9b9){var _0x5b2a4f;return db[_0x15e9('0x4a')]['find']({'where':{'resetPasswordToken':_0x1f5c0f[_0x15e9('0x4b')][_0x15e9('0x4c')],'resetPasswordExpires':{'$gt':Date[_0x15e9('0x4d')]()}}})['then'](function(_0x8840a7){_0x5b2a4f=_0x8840a7;if(!_0x5b2a4f){throw new Error(_0x15e9('0x4e'));}return db['Setting'][_0x15e9('0x8')]({'attributes':['id',_0x15e9('0x4f')]});})[_0x15e9('0xb')](function(_0x1ed78e){return checkPasswordPattern(_0x1ed78e,_0x1f5c0f[_0x15e9('0x39')][_0x15e9('0x50')],_0x1ed78e[_0x15e9('0x4f')]);})[_0x15e9('0xb')](function(){_0x5b2a4f[_0x15e9('0x50')]=_0x1f5c0f['body'][_0x15e9('0x50')];_0x5b2a4f['resetPasswordToken']=null;_0x5b2a4f[_0x15e9('0x42')]=null;return _0x5b2a4f[_0x15e9('0x43')]();})[_0x15e9('0xb')](function(){_0x32cb55[_0x15e9('0x2e')](0xc8)[_0x15e9('0x2f')]({'message':_0x15e9('0x51')});})[_0x15e9('0x1c')](function(_0x1056cd){return handleError(_0x32cb55,0x1f4,_0x1056cd);});};passport[_0x15e9('0x52')](new LocalStrategy({'usernameField':_0x15e9('0xc'),'passwordField':'password'},function(_0x401300,_0x2fc7d2,_0x306c91){return localAuthenticate(db[_0x15e9('0x4a')],_0x401300,_0x2fc7d2,_0x306c91);}));
\ No newline at end of file