Built motion from commit f67b3b02.|2.6.31
[motion2.git] / server / api / authLocal / authLocal.controller.js
index 3922bad..a523108 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x6ee9=['blockDuration','then','name','password','salt','role','disabled','blockedAt','admin','user','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','loginAttempts','blocked','add','minutes','clearBlockUser','getLicense','catch','MailAccount','find','email','MailServerOut','Smtp','CloudProvider','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','getSmtpOptions','merge','format','\x22%s\x22\x20<%s>','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','send','login','local-login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','generate','body','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','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','https://','/reset/','status','Reset\x20Email\x20sent!','reset','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','passwordHistoryLimit','validatePasswordPattern','enforcePasswordHistory','previousPasswords','resetPasswordExpires','use','passport','passport-local','jayson/promise','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts'];(function(_0x836465,_0x5442ae){var _0x2150ea=function(_0x4f4bc2){while(--_0x4f4bc2){_0x836465['push'](_0x836465['shift']());}};_0x2150ea(++_0x5442ae);}(_0x6ee9,0x9c));var _0x96ee=function(_0x113037,_0x39e670){_0x113037=_0x113037-0x0;var _0x42c84c=_0x6ee9[_0x113037];return _0x42c84c;};'use strict';var util=require('util');var passport=require(_0x96ee('0x0'));var LocalStrategy=require(_0x96ee('0x1'))['Strategy'];var jayson=require(_0x96ee('0x2'));var _=require(_0x96ee('0x3'));var rs=require(_0x96ee('0x4'));var moment=require(_0x96ee('0x5'));var db=require(_0x96ee('0x6'))['db'];var authService=require(_0x96ee('0x7'));var utils=require(_0x96ee('0x8'));var client=jayson[_0x96ee('0x9')][_0x96ee('0xa')]({'port':0x232b});function localAuthenticate(_0x42c188,_0x141f00,_0x3ca6f5,_0x37087c){var _0x44633a,_0xc2812e;return db[_0x96ee('0xb')][_0x96ee('0xc')]({'where':{'id':0x1},'attributes':[_0x96ee('0xd'),_0x96ee('0xe')],'raw':!![]})[_0x96ee('0xf')](function(_0x4ad65b){_0x44633a=_0x4ad65b;return _0x42c188['findOne']({'attributes':['id',_0x96ee('0x10'),_0x96ee('0x11'),_0x96ee('0x12'),_0x96ee('0x13'),_0x96ee('0x14'),'blocked',_0x96ee('0x15'),'loginAttempts'],'where':{'name':_0x141f00,'role':{'$or':[_0x96ee('0x16'),_0x96ee('0x17'),_0x96ee('0x18')]}}});})[_0x96ee('0xf')](function(_0x425602){if(!_0x425602||_0x425602&&_0x425602[_0x96ee('0x10')]!==_0x141f00){throw new Error(_0x96ee('0x19'));}else{_0xc2812e=_0x425602;return _0xc2812e;}})[_0x96ee('0xf')](function(){_0xc2812e[_0x96ee('0x1a')](_0x3ca6f5,function(_0x3c8b74,_0x3c44ab){var _0x5bbebe=_0xc2812e[_0x96ee('0x1b')]+0x1;if(_0x3c8b74){return _0x37087c(_0x3c8b74);}else if(!_0x3c44ab){if(_0xc2812e[_0x96ee('0x14')]){return _0x37087c(null,![],{'message':_0x96ee('0x19')});}else if(_0x44633a['allowedLoginAttempts']>0x0){if(_0xc2812e[_0x96ee('0x1c')]){if(_0x44633a['blockDuration']>0x0){if(moment(_0xc2812e[_0x96ee('0x15')])[_0x96ee('0x1d')](_0x44633a[_0x96ee('0xe')],_0x96ee('0x1e'))>moment()){return _0x37087c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x96ee('0x1f')](_0xc2812e,_0x5bbebe,![],null)[_0x96ee('0xf')](function(){return _0x37087c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x37087c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x5bbebe>=_0x44633a[_0x96ee('0xd')]){return utils[_0x96ee('0x1f')](_0xc2812e,0x0,!![],moment())[_0x96ee('0xf')](function(){return _0x37087c(null,![],{'message':_0x96ee('0x19')});});}else{return utils[_0x96ee('0x1f')](_0xc2812e,_0x5bbebe,![],null)['then'](function(){return _0x37087c(null,![],{'message':_0x96ee('0x19')});});}}}else{return _0x37087c(null,![],{'message':_0x96ee('0x19')});}}else{if(_0xc2812e[_0x96ee('0x14')]){return _0x37087c(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x44633a[_0x96ee('0xd')]>0x0){if(_0xc2812e[_0x96ee('0x1c')]){if(_0x44633a[_0x96ee('0xe')]>0x0){if(moment(_0xc2812e[_0x96ee('0x15')])['add'](_0x44633a[_0x96ee('0xe')],'minutes')>moment()){return _0x37087c(null,![],{'message':_0x96ee('0x19')});}else{return utils[_0x96ee('0x1f')](_0xc2812e,0x0,![],null)[_0x96ee('0xf')](function(){return utils[_0x96ee('0x20')](_0xc2812e);})['then'](function(){return _0x37087c(null,_0xc2812e);});}}else{return _0x37087c(null,![],{'message':_0x96ee('0x19')});}}else{return utils[_0x96ee('0x1f')](_0xc2812e,0x0,![],null)['then'](function(){return utils[_0x96ee('0x20')](_0xc2812e);})[_0x96ee('0xf')](function(){return _0x37087c(null,_0xc2812e);})[_0x96ee('0x21')](function(_0x30fe41){return _0x37087c(null,![],_0x30fe41);});}}else{if(_0xc2812e[_0x96ee('0x1c')]){return _0x37087c(null,![],{'message':_0x96ee('0x19')});}else{return utils[_0x96ee('0x20')](_0xc2812e)[_0x96ee('0xf')](function(){return _0x37087c(null,_0xc2812e);});}}}});})[_0x96ee('0x21')](function(_0x21743a){return _0x37087c(null,![],_0x21743a);});}function sendServiceMail(_0x3e0ed6){return db[_0x96ee('0x22')][_0x96ee('0x23')]({'where':{'service':!![]},'attributes':['id',_0x96ee('0x10'),_0x96ee('0x24')],'include':[{'model':db[_0x96ee('0x25')],'as':_0x96ee('0x26'),'include':[{'model':db['CloudProvider'],'as':_0x96ee('0x27')}]}]})[_0x96ee('0xf')](function(_0x4d9fbe){if(!_0x4d9fbe){throw new Error(_0x96ee('0x28'));}var _0x229612=_0x4d9fbe[_0x96ee('0x29')]();var _0x57db8f={'account':_0x229612,'message':_[_0x96ee('0x2a')]({'from':util[_0x96ee('0x2b')](_0x96ee('0x2c'),_0x4d9fbe[_0x96ee('0x10')],_0x4d9fbe[_0x96ee('0x24')]||_0x4d9fbe['Smtp'][_0x96ee('0x17')])},_0x3e0ed6)};return client[_0x96ee('0x2d')](_0x96ee('0x2e'),_0x57db8f);})['then'](function(_0x343483){if(_0x343483[_0x96ee('0x2f')]){throw new Error(util[_0x96ee('0x2b')](_0x96ee('0x30'),_0x343483[_0x96ee('0x2f')][_0x96ee('0x31')]||JSON[_0x96ee('0x32')](_0x343483[_0x96ee('0x2f')])));}return!![];});}function handleError(_0x3aab2a,_0x5e6dbb,_0x5a4e7e){return _0x3aab2a['status'](_0x5e6dbb||0x1f4)[_0x96ee('0x33')]({'message':_0x5a4e7e?_0x5a4e7e[_0x96ee('0x31')]||_0x5a4e7e:''});}exports[_0x96ee('0x34')]=function(_0x90a33,_0x4f56de,_0x247eaa){passport['authenticate'](_0x96ee('0x35'),function(_0x5845be,_0x5b2297,_0x4b7cd9){var _0x2be3d9=_0x5845be||_0x4b7cd9;if(_0x2be3d9){return handleError(_0x4f56de,0x191,_0x2be3d9);}if(!_0x5b2297){return handleError(_0x4f56de,0x194,{'message':_0x96ee('0x36')});}else{var _0x3cf247={'payload':{'id':_0x5b2297['id'],'role':_0x5b2297[_0x96ee('0x13')]},'options':{'expiresIn':0x15180}};return authService[_0x96ee('0x37')](_0x3cf247)[_0x96ee('0xf')](function(_0x15663d){_0x4f56de[_0x96ee('0x38')]({'id':_0x5b2297['id'],'token':_0x15663d,'statusCall':'','isAlreadyLogged':_0x5b2297['online']});});}})(_0x90a33,_0x4f56de,_0x247eaa);};exports['forgot']=function(_0x1fc6c4,_0x424009){if(!_0x1fc6c4['body'][_0x96ee('0x24')]){return handleError(_0x424009,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x59b12b=rs[_0x96ee('0x39')]();_0x1fc6c4[_0x96ee('0x3a')][_0x96ee('0x24')]=_0x1fc6c4[_0x96ee('0x3a')]['email'][_0x96ee('0x3b')]()[_0x96ee('0x3c')]();var _0x16f7b8;return db[_0x96ee('0xb')][_0x96ee('0xc')]({'where':{'id':0x1},'attributes':[_0x96ee('0xd'),_0x96ee('0xe')],'raw':!![]})['then'](function(_0x1c2ecb){_0x16f7b8=_0x1c2ecb;return db[_0x96ee('0x3d')]['find']({'where':{'email':_0x1fc6c4[_0x96ee('0x3a')][_0x96ee('0x24')]}});})[_0x96ee('0xf')](function(_0x20716a){if(!_0x20716a){throw new Error(_0x96ee('0x3e'));}if(_0x20716a[_0x96ee('0x14')]){throw new Error(_0x96ee('0x3f'));}if(_0x20716a['blocked']){if(moment(_0x20716a['blockedAt'])['add'](_0x16f7b8[_0x96ee('0xe')],_0x96ee('0x1e'))>moment()){throw new Error(_0x96ee('0x40'));}else{_0x20716a[_0x96ee('0x1c')]=![];_0x20716a[_0x96ee('0x15')]=null;}}_0x20716a[_0x96ee('0x41')]=_0x59b12b;_0x20716a['resetPasswordExpires']=Date[_0x96ee('0x42')]()+0x36ee80;return _0x20716a[_0x96ee('0x43')]();})['then'](function(){return sendServiceMail({'to':_0x1fc6c4['body'][_0x96ee('0x24')],'subject':_0x96ee('0x44'),'text':_0x96ee('0x45')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0x96ee('0x46')+_0x1fc6c4['headers']['host']+_0x96ee('0x47')+_0x59b12b+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0x96ee('0xf')](function(){_0x424009[_0x96ee('0x48')](0xc8)[_0x96ee('0x33')]({'message':_0x96ee('0x49')});})[_0x96ee('0x21')](function(_0x29ab62){return handleError(_0x424009,0x1f4,_0x29ab62);});};exports[_0x96ee('0x4a')]=function(_0x573cc9,_0xf39894){return db[_0x96ee('0x3d')]['find']({'where':{'resetPasswordToken':_0x573cc9[_0x96ee('0x4b')][_0x96ee('0x4c')],'resetPasswordExpires':{'$gt':Date[_0x96ee('0x42')]()}}})[_0x96ee('0xf')](function(_0x537fc5){if(!_0x537fc5){throw new Error(_0x96ee('0x4d'));}return db[_0x96ee('0xb')][_0x96ee('0xc')]({'attributes':['id',_0x96ee('0x4e'),'enforcePasswordHistory',_0x96ee('0x4f')]})[_0x96ee('0xf')](function(_0x5376d1){if(_0x5376d1['securePassword'])authService[_0x96ee('0x50')](_0x573cc9['body'][_0x96ee('0x11')]);if(!_0x5376d1[_0x96ee('0x51')]||!_0x537fc5[_0x96ee('0x52')])return _0x537fc5;authService['validatePasswordHistory'](_0x573cc9[_0x96ee('0x3a')][_0x96ee('0x11')],_0x537fc5[_0x96ee('0x52')],_0x5376d1[_0x96ee('0x4f')]);return _0x537fc5;})[_0x96ee('0xf')](function(){_0x537fc5['password']=_0x573cc9[_0x96ee('0x3a')][_0x96ee('0x11')];_0x537fc5['resetPasswordToken']=null;_0x537fc5[_0x96ee('0x53')]=null;return _0x537fc5[_0x96ee('0x43')]();});})[_0x96ee('0xf')](function(){_0xf39894[_0x96ee('0x48')](0xc8)[_0x96ee('0x33')]({'message':'Password\x20reset!'});})[_0x96ee('0x21')](function(_0x3d1748){return handleError(_0xf39894,0x1f4,_0x3d1748);});};passport[_0x96ee('0x54')](_0x96ee('0x35'),new LocalStrategy({'usernameField':_0x96ee('0x10'),'passwordField':_0x96ee('0x11')},function(_0x4b5027,_0x547df9,_0x4f3a4f){return localAuthenticate(db[_0x96ee('0x3d')],_0x4b5027,_0x547df9,_0x4f3a4f);}));
\ No newline at end of file
+var _0xb000=['Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','toLowerCase','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','save','https://','headers','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','send','params','token','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','previousPasswords','validatePasswordHistory','use','User','passport-local','Strategy','jayson/promise','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts','blockDuration','then','name','password','salt','role','disabled','blockedAt','loginAttempts','admin','authenticate','blocked','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!','merge','format','\x22%s\x22\x20<%s>','SendMail','error','message','stringify','status','login','local-login'];(function(_0x38e024,_0x3615aa){var _0x1e0118=function(_0x172e68){while(--_0x172e68){_0x38e024['push'](_0x38e024['shift']());}};_0x1e0118(++_0x3615aa);}(_0xb000,0xbd));var _0x0b00=function(_0x5ac84c,_0x287781){_0x5ac84c=_0x5ac84c-0x0;var _0x3c53d2=_0xb000[_0x5ac84c];return _0x3c53d2;};'use strict';var util=require('util');var passport=require('passport');var LocalStrategy=require(_0x0b00('0x0'))[_0x0b00('0x1')];var jayson=require(_0x0b00('0x2'));var _=require('lodash');var rs=require(_0x0b00('0x3'));var moment=require(_0x0b00('0x4'));var db=require(_0x0b00('0x5'))['db'];var authService=require(_0x0b00('0x6'));var utils=require(_0x0b00('0x7'));var client=jayson[_0x0b00('0x8')][_0x0b00('0x9')]({'port':0x232b});function localAuthenticate(_0x3d6de7,_0x3a9380,_0x33254b,_0x58472e){var _0x111e42,_0x4a4d4c;return db[_0x0b00('0xa')][_0x0b00('0xb')]({'where':{'id':0x1},'attributes':[_0x0b00('0xc'),_0x0b00('0xd')],'raw':!![]})[_0x0b00('0xe')](function(_0x5e1b6b){_0x111e42=_0x5e1b6b;return _0x3d6de7[_0x0b00('0xb')]({'attributes':['id',_0x0b00('0xf'),_0x0b00('0x10'),_0x0b00('0x11'),_0x0b00('0x12'),_0x0b00('0x13'),'blocked',_0x0b00('0x14'),_0x0b00('0x15')],'where':{'name':_0x3a9380,'role':{'$or':[_0x0b00('0x16'),'user','agent']}}});})[_0x0b00('0xe')](function(_0x2e56b8){if(!_0x2e56b8||_0x2e56b8&&_0x2e56b8['name']!==_0x3a9380){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x4a4d4c=_0x2e56b8;return _0x4a4d4c;}})[_0x0b00('0xe')](function(){_0x4a4d4c[_0x0b00('0x17')](_0x33254b,function(_0x397bd2,_0x54aaa1){var _0x16da93=_0x4a4d4c[_0x0b00('0x15')]+0x1;if(_0x397bd2){return _0x58472e(_0x397bd2);}else if(!_0x54aaa1){if(_0x4a4d4c['disabled']){return _0x58472e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x111e42['allowedLoginAttempts']>0x0){if(_0x4a4d4c[_0x0b00('0x18')]){if(_0x111e42[_0x0b00('0xd')]>0x0){if(moment(_0x4a4d4c[_0x0b00('0x14')])[_0x0b00('0x19')](_0x111e42[_0x0b00('0xd')],_0x0b00('0x1a'))>moment()){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}else{return utils[_0x0b00('0x1c')](_0x4a4d4c,_0x16da93,![],null)[_0x0b00('0xe')](function(){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});});}}else{return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}}else{if(_0x16da93>=_0x111e42[_0x0b00('0xc')]){return utils['clearBlockUser'](_0x4a4d4c,0x0,!![],moment())[_0x0b00('0xe')](function(){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});});}else{return utils[_0x0b00('0x1c')](_0x4a4d4c,_0x16da93,![],null)[_0x0b00('0xe')](function(){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});});}}}else{return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}}else{if(_0x4a4d4c[_0x0b00('0x13')]){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}else if(_0x111e42[_0x0b00('0xc')]>0x0){if(_0x4a4d4c[_0x0b00('0x18')]){if(_0x111e42[_0x0b00('0xd')]>0x0){if(moment(_0x4a4d4c[_0x0b00('0x14')])['add'](_0x111e42[_0x0b00('0xd')],'minutes')>moment()){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}else{return utils['clearBlockUser'](_0x4a4d4c,0x0,![],null)[_0x0b00('0xe')](function(){return utils[_0x0b00('0x1d')](_0x4a4d4c);})[_0x0b00('0xe')](function(){return _0x58472e(null,_0x4a4d4c);});}}else{return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}}else{return utils['clearBlockUser'](_0x4a4d4c,0x0,![],null)[_0x0b00('0xe')](function(){return utils[_0x0b00('0x1d')](_0x4a4d4c);})[_0x0b00('0xe')](function(){return _0x58472e(null,_0x4a4d4c);})[_0x0b00('0x1e')](function(_0x37e626){return _0x58472e(null,![],_0x37e626);});}}else{if(_0x4a4d4c['blocked']){return _0x58472e(null,![],{'message':_0x0b00('0x1b')});}else{return utils['getLicense'](_0x4a4d4c)['then'](function(){return _0x58472e(null,_0x4a4d4c);});}}}});})[_0x0b00('0x1e')](function(_0x3e9166){return _0x58472e(null,![],_0x3e9166);});}function sendServiceMail(_0x335bf2){return db[_0x0b00('0x1f')][_0x0b00('0x20')]({'where':{'service':!![]},'attributes':['id',_0x0b00('0xf'),_0x0b00('0x21')],'include':[{'model':db[_0x0b00('0x22')],'as':_0x0b00('0x23'),'include':[{'model':db[_0x0b00('0x24')],'as':_0x0b00('0x24')}]}]})[_0x0b00('0xe')](function(_0x59f702){if(!_0x59f702){throw new Error(_0x0b00('0x25'));}var _0xcd148b=_0x59f702['getSmtpOptions']();var _0x1beca7={'account':_0xcd148b,'message':_[_0x0b00('0x26')]({'from':util[_0x0b00('0x27')](_0x0b00('0x28'),_0x59f702[_0x0b00('0xf')],_0x59f702[_0x0b00('0x21')]||_0x59f702[_0x0b00('0x23')]['user'])},_0x335bf2)};return client['request'](_0x0b00('0x29'),_0x1beca7);})[_0x0b00('0xe')](function(_0x15cf61){if(_0x15cf61[_0x0b00('0x2a')]){throw new Error(util[_0x0b00('0x27')]('SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!',_0x15cf61[_0x0b00('0x2a')][_0x0b00('0x2b')]||JSON[_0x0b00('0x2c')](_0x15cf61[_0x0b00('0x2a')])));}return!![];});}function handleError(_0x1b0863,_0x56351d,_0x1acdd1){return _0x1b0863[_0x0b00('0x2d')](_0x56351d||0x1f4)['send']({'message':_0x1acdd1?_0x1acdd1[_0x0b00('0x2b')]||_0x1acdd1:''});}exports[_0x0b00('0x2e')]=function(_0x57eca7,_0x4d4fe5,_0x564991){passport['authenticate'](_0x0b00('0x2f'),function(_0x136a57,_0x486552,_0x265e7a){var _0x27c997=_0x136a57||_0x265e7a;if(_0x27c997){return handleError(_0x4d4fe5,0x191,_0x27c997);}if(!_0x486552){return handleError(_0x4d4fe5,0x194,{'message':_0x0b00('0x30')});}else{var _0x451b03={'payload':{'id':_0x486552['id'],'role':_0x486552[_0x0b00('0x12')]},'options':{'expiresIn':0x15180}};return authService[_0x0b00('0x31')](_0x451b03)[_0x0b00('0xe')](function(_0x23334d){_0x4d4fe5[_0x0b00('0x32')]({'id':_0x486552['id'],'token':_0x23334d,'statusCall':'','isAlreadyLogged':_0x486552[_0x0b00('0x33')]});});}})(_0x57eca7,_0x4d4fe5,_0x564991);};exports[_0x0b00('0x34')]=function(_0x32a107,_0x5966d6){if(!_0x32a107[_0x0b00('0x35')][_0x0b00('0x21')]){return handleError(_0x5966d6,0x1f4,{'message':_0x0b00('0x36')});}var _0xccf004=rs[_0x0b00('0x37')]();_0x32a107['body']['email']=_0x32a107[_0x0b00('0x35')][_0x0b00('0x21')][_0x0b00('0x38')]()[_0x0b00('0x39')]();var _0x4d4e7d;return db[_0x0b00('0xa')][_0x0b00('0xb')]({'where':{'id':0x1},'attributes':[_0x0b00('0xc'),_0x0b00('0xd')],'raw':!![]})[_0x0b00('0xe')](function(_0x396845){_0x4d4e7d=_0x396845;return db['User'][_0x0b00('0x20')]({'where':{'email':_0x32a107['body'][_0x0b00('0x21')]}});})['then'](function(_0x2aede6){if(!_0x2aede6){throw new Error(_0x0b00('0x3a'));}if(_0x2aede6[_0x0b00('0x13')]){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x2aede6[_0x0b00('0x18')]){if(moment(_0x2aede6['blockedAt'])[_0x0b00('0x19')](_0x4d4e7d['blockDuration'],_0x0b00('0x1a'))>moment()){throw new Error(_0x0b00('0x3b'));}else{_0x2aede6[_0x0b00('0x18')]=![];_0x2aede6['blockedAt']=null;}}_0x2aede6[_0x0b00('0x3c')]=_0xccf004;_0x2aede6[_0x0b00('0x3d')]=Date[_0x0b00('0x3e')]()+0x36ee80;return _0x2aede6[_0x0b00('0x3f')]();})[_0x0b00('0xe')](function(){return sendServiceMail({'to':_0x32a107[_0x0b00('0x35')][_0x0b00('0x21')],'subject':'xCally\x20Motion\x20Password\x20Reset','text':'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'+_0x0b00('0x40')+_0x32a107[_0x0b00('0x41')]['host']+_0x0b00('0x42')+_0xccf004+'\x0a\x0a'+_0x0b00('0x43')});})[_0x0b00('0xe')](function(){_0x5966d6[_0x0b00('0x2d')](0xc8)[_0x0b00('0x44')]({'message':'Reset\x20Email\x20sent!'});})[_0x0b00('0x1e')](function(_0x326f5f){return handleError(_0x5966d6,0x1f4,_0x326f5f);});};exports['reset']=function(_0x2251c6,_0x549ed6){return db['User']['find']({'where':{'resetPasswordToken':_0x2251c6[_0x0b00('0x45')][_0x0b00('0x46')],'resetPasswordExpires':{'$gt':Date[_0x0b00('0x3e')]()}}})[_0x0b00('0xe')](function(_0x2b3a94){if(!_0x2b3a94){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db[_0x0b00('0xa')][_0x0b00('0xb')]({'attributes':['id',_0x0b00('0x47'),_0x0b00('0x48'),_0x0b00('0x49')]})[_0x0b00('0xe')](function(_0x19e0a4){if(_0x19e0a4[_0x0b00('0x47')])authService[_0x0b00('0x4a')](_0x2251c6[_0x0b00('0x35')][_0x0b00('0x10')]);if(!_0x19e0a4[_0x0b00('0x48')]||!_0x2b3a94[_0x0b00('0x4b')])return _0x2b3a94;authService[_0x0b00('0x4c')](_0x2251c6[_0x0b00('0x35')][_0x0b00('0x10')],_0x2b3a94['previousPasswords'],_0x19e0a4['passwordHistoryLimit']);return _0x2b3a94;})[_0x0b00('0xe')](function(){_0x2b3a94[_0x0b00('0x10')]=_0x2251c6[_0x0b00('0x35')]['password'];_0x2b3a94[_0x0b00('0x3c')]=null;_0x2b3a94['resetPasswordExpires']=null;return _0x2b3a94['save']();});})[_0x0b00('0xe')](function(){_0x549ed6[_0x0b00('0x2d')](0xc8)['send']({'message':'Password\x20reset!'});})[_0x0b00('0x1e')](function(_0x15ea94){return handleError(_0x549ed6,0x1f4,_0x15ea94);});};passport[_0x0b00('0x4d')](_0x0b00('0x2f'),new LocalStrategy({'usernameField':_0x0b00('0xf'),'passwordField':_0x0b00('0x10')},function(_0x279bc7,_0x157bc2,_0x331b53){return localAuthenticate(db[_0x0b00('0x4e')],_0x279bc7,_0x157bc2,_0x331b53);}));
\ No newline at end of file