Built motion from commit (unavailable).|2.6.0
[motion2.git] / server / components / auth / service.js
index 5dae7b0..56d444e 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x5271=['phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','wssPort','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','disposition','closed','status','unmanaged','json','Forbidden.','catch','headers','startsWith','Basic','User','find','pass','authorization','Unknown\x20authorization\x20format','query','apikey','getUuid','then','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','add','minutes','Invalid\x20API\x20access\x20key','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','role','motion.token','redirect','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','decryptString','split','splice','unshift','encryptString','join','sign','secret','options','promisify','verify','randomBytes','toString','../../mysqldb','../../config/environment','../../config/license/hardware','../encryptor','jsonwebtoken','express-jwt','composable-middleware','bluebird','util','moment','secrets','session','name','internal','email','userpic','permissions','md5secret','mailPause','openchannelPause','pauseType','showWebBar','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd'];(function(_0x377bba,_0x2f6c59){var _0x207a3d=function(_0x3b5f7e){while(--_0x3b5f7e){_0x377bba['push'](_0x377bba['shift']());}};_0x207a3d(++_0x2f6c59);}(_0x5271,0xd5));var _0x1527=function(_0x22b68a,_0x2bffc3){_0x22b68a=_0x22b68a-0x0;var _0x1ac67a=_0x5271[_0x22b68a];return _0x1ac67a;};'use strict';var db=require(_0x1527('0x0'))['db'];var config=require(_0x1527('0x1'));var hardwareConf=require(_0x1527('0x2'));var licenseUtil=require('../../config/license/util');var encryptor=require(_0x1527('0x3'));var _=require('lodash');var jwt=require(_0x1527('0x4'));var expressJwt=require(_0x1527('0x5'));var compose=require(_0x1527('0x6'));var basicAuth=require('basic-auth');var crypto=require('crypto');var BPromise=require(_0x1527('0x7'));var util=require(_0x1527('0x8'));var moment=require(_0x1527('0x9'));var validateJwt=expressJwt({'secret':config[_0x1527('0xa')][_0x1527('0xb')]});var userAttributes=['id','role','fullname',_0x1527('0xc'),_0x1527('0xd'),_0x1527('0xe'),_0x1527('0xf'),_0x1527('0x10'),_0x1527('0x11'),'voicePause','chatPause',_0x1527('0x12'),'faxPause','smsPause',_0x1527('0x13'),_0x1527('0x14'),_0x1527('0x15'),'lastLoginAt','lastPauseAt',_0x1527('0x16'),_0x1527('0x17'),_0x1527('0x18'),_0x1527('0x19'),_0x1527('0x1a'),_0x1527('0x1b'),_0x1527('0x1c'),_0x1527('0x1d'),_0x1527('0x1e'),'phoneBarEnableSettings','phoneBarExpires',_0x1527('0x1f'),_0x1527('0x20'),_0x1527('0x21'),_0x1527('0x22'),_0x1527('0x23'),_0x1527('0x24'),_0x1527('0x25'),'settingsEnabled',_0x1527('0x26'),'downloadVoiceRecordings',_0x1527('0x27'),_0x1527('0x28')];exports[_0x1527('0x29')]=function(){return this['isAuthenticated'](!![])[_0x1527('0x2a')](function(_0x34bce3,_0x2631da,_0x369fce){if(_0x34bce3[_0x1527('0x2b')]){_0x369fce();}else{return db[_0x1527('0x2c')][_0x1527('0x2d')]({'where':{'id':_0x34bce3['params']['id']},'attributes':['id','closed',_0x1527('0x2e')],'raw':!![]})['then'](function(_0x2d3cc0){if(_0x2d3cc0&&_0x2d3cc0[_0x1527('0x2f')]){return _0x2631da[_0x1527('0x30')](_0x2d3cc0[_0x1527('0x2e')]===_0x1527('0x31')?0x195:0x193)[_0x1527('0x32')]({'message':_0x2d3cc0[_0x1527('0x2e')]===_0x1527('0x31')?'Unmanaged.':_0x1527('0x33')});}else{_0x369fce();}})[_0x1527('0x34')](function(_0x560e3f){_0x369fce(_0x560e3f);});}});};exports['isAuthenticated']=function isAuthenticated(_0x1332d9){return compose()[_0x1527('0x2a')](function(_0xb8df3b,_0x2e3346,_0x521af3){var _0x281ff0;if(_0xb8df3b[_0x1527('0x35')]['authorization']){if(_[_0x1527('0x36')](_0xb8df3b[_0x1527('0x35')]['authorization'],_0x1527('0x37'))){var _0x1563c7=basicAuth(_0xb8df3b);db[_0x1527('0x38')][_0x1527('0x39')]({'where':{'name':_0x1563c7[_0x1527('0xc')]}})['then'](function(_0x16c1ab){if(!_0x16c1ab||!_0x16c1ab['authenticate'](_0x1563c7[_0x1527('0x3a')])){return _0x2e3346['status'](0x191)[_0x1527('0x32')]({'message':'Wrong\x20credentials.'});}_0xb8df3b[_0x1527('0x2b')]={'id':_0x16c1ab['id']};_0x521af3();})[_0x1527('0x34')](function(_0x5adea5){_0x521af3(_0x5adea5);});}else if(_[_0x1527('0x36')](_0xb8df3b[_0x1527('0x35')][_0x1527('0x3b')],'Bearer')){validateJwt(_0xb8df3b,_0x2e3346,_0x521af3);}else{if(_0x1332d9){_0x521af3();}else{return _0x2e3346['status'](0x193)[_0x1527('0x32')]({'message':_0x1527('0x3c')});}}}else if(_0xb8df3b[_0x1527('0x3d')][_0x1527('0x3e')]){try{var _0x4b49b6={'audience':hardwareConf[_0x1527('0x3f')](),'issuer':hardwareConf[_0x1527('0x3f')]()};verifyJwt(_0xb8df3b[_0x1527('0x3d')][_0x1527('0x3e')],_0x4b49b6)[_0x1527('0x40')](function(_0x458f79){return db[_0x1527('0x38')]['find']({'where':{'id':_0x458f79[_0x1527('0x41')]}})['then'](function(_0xbc8345){_0x281ff0=_0xbc8345;return db[_0x1527('0x42')][_0x1527('0x2d')]({'where':{'id':0x1},'attributes':[_0x1527('0x43'),_0x1527('0x44')],'raw':!![]});})[_0x1527('0x40')](function(_0x62b028){if(!_0x281ff0||!_[_0x1527('0x45')](_0x281ff0[_0x1527('0x46')],_0x458f79[_0x1527('0x47')])){return _0x2e3346[_0x1527('0x30')](0x191)[_0x1527('0x32')]({'message':_0x1527('0x48')});}if(_0x281ff0[_0x1527('0x49')]){return _0x2e3346[_0x1527('0x30')](0x191)[_0x1527('0x32')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x281ff0[_0x1527('0x4a')]){if(_0x62b028[_0x1527('0x44')]>0x0){if(moment(_0x281ff0['blockedAt'])[_0x1527('0x4b')](_0x62b028[_0x1527('0x44')],_0x1527('0x4c'))>moment()){return _0x2e3346['status'](0x191)[_0x1527('0x32')]({'message':'Invalid\x20API\x20access\x20key'});}}else{return _0x2e3346['status'](0x191)[_0x1527('0x32')]({'message':_0x1527('0x4d')});}}_0xb8df3b[_0x1527('0x2b')]={'id':_0x281ff0['id']};_0x521af3();});})[_0x1527('0x34')](function(){return _0x2e3346[_0x1527('0x30')](0x191)[_0x1527('0x32')]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x135e90){_0x521af3(_0x135e90);}}else if(_0x1332d9){_0x521af3();}else{return _0x2e3346['status'](0x193)[_0x1527('0x32')]({'message':_0x1527('0x3c')});}})[_0x1527('0x2a')](function(_0x2bc9e5,_0x419312,_0x5d8a37){if(_0x2bc9e5[_0x1527('0x2b')]){db[_0x1527('0x38')][_0x1527('0x39')]({'where':{'id':_0x2bc9e5[_0x1527('0x2b')]['id']},'attributes':userAttributes})[_0x1527('0x40')](function(_0x427ce9){if(!_0x427ce9){return _0x419312[_0x1527('0x30')](0x194)[_0x1527('0x32')]({'message':_0x1527('0x4e')});}_0x2bc9e5[_0x1527('0x2b')]=_0x427ce9;_0x5d8a37();})['catch'](function(_0x3dce1a){_0x5d8a37(_0x3dce1a);});}else if(_0x1332d9){_0x5d8a37();}else{return _0x419312[_0x1527('0x30')](0x194)[_0x1527('0x32')]({'message':_0x1527('0x4f')});}});};exports[_0x1527('0x50')]=function canUpdate(){return compose()[_0x1527('0x2a')](function(_0x1cc842,_0x49c9d3,_0x3cde53){return licenseUtil['getLicense']()[_0x1527('0x40')](function(_0x4eff62){if(_0x4eff62[_0x1527('0x51')]){_0x3cde53();}else{return _0x49c9d3[_0x1527('0x30')](0x193)[_0x1527('0x32')]({'message':_0x1527('0x52')});}})[_0x1527('0x34')](function(_0x4d7123){_0x3cde53(_0x4d7123);});});};exports['isMiddleware']=function(_0x38d1f9,_0x5342d0,_0x20618a){_0x38d1f9[_0x1527('0x53')]=!![];return _0x20618a();};exports[_0x1527('0x54')]=function signToken(_0x416166){return signJwt(_0x416166);};exports[_0x1527('0x55')]=function(_0x25e6ba,_0x5d2353){if(!_0x25e6ba[_0x1527('0x2b')]){return _0x5d2353[_0x1527('0x30')](0x194)[_0x1527('0x32')]({'message':_0x1527('0x56')});}var _0xdc9c37={'payload':{'id':_0x25e6ba[_0x1527('0x2b')]['id'],'role':_0x25e6ba[_0x1527('0x2b')][_0x1527('0x57')]},'options':{'expiresIn':0x15180}};return signJwt(_0xdc9c37)[_0x1527('0x40')](function(_0xfd3781){_0x5d2353['cookie'](_0x1527('0x58'),_0xfd3781);_0x5d2353[_0x1527('0x59')](_0x1527('0x5a'));})['catch'](function(_0x33696a){return _0x5d2353[_0x1527('0x30')](0x1f4)[_0x1527('0x5b')](_0x33696a);});};exports[_0x1527('0x5c')]=function(_0x357612){if(_['isNil'](_0x357612[_0x1527('0x46')])||_[_0x1527('0x5d')](_0x357612[_0x1527('0x5e')])){return null;}else{return createJwt(_0x357612);}};exports['generateApiKey']=function(_0x79141d){_0x79141d['apiKeyNonce']=generateNonce();_0x79141d[_0x1527('0x5e')]=generateIssuedAt();return createJwt(_0x79141d);};exports[_0x1527('0x5f')]=function(_0x31b73d,_0x3780a4){var _0x27b5b3=_0x31b73d['query'][_0x1527('0x3e')];if(_0x27b5b3){var _0x1cbfb1={'nonce':_0x3780a4[_0x1527('0x46')],'iat':_0x3780a4[_0x1527('0x5e')],'audience':hardwareConf[_0x1527('0x3f')](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x27b5b3,_0x1cbfb1)[_0x1527('0x40')](function(){return generateApiKey(_0x3780a4);});}else{throw{'message':_0x1527('0x60')};}};exports[_0x1527('0x61')]=function(_0x1076d3){var _0x3bcf0c=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3bcf0c[_0x1527('0x62')](_0x1076d3))throw new db[(_0x1527('0x63'))][(_0x1527('0x64'))](_0x1527('0x65'));return;};exports[_0x1527('0x66')]=function(_0x2f11c8,_0x564ee6,_0x367e6a){var _0x4ad919=encryptor['decryptString'](_0x564ee6)['split'](',');for(var _0x5f4ca3=0x0;_0x5f4ca3<_0x367e6a;_0x5f4ca3++){if(!_0x4ad919[_0x5f4ca3])break;if(_0x2f11c8['toLowerCase']()===_0x4ad919[_0x5f4ca3][_0x1527('0x67')]()){var _0x5c29a2=util[_0x1527('0x68')](_0x1527('0x69'),_0x367e6a);if(_0x367e6a===0x1){_0x5c29a2=_0x1527('0x6a');}throw new db['Sequelize']['ValidationError'](_0x5c29a2);}}return;};exports[_0x1527('0x6b')]=function(_0x5a3262,_0x5cd658){var _0x59bd4d=_0x5cd658?encryptor[_0x1527('0x6c')](_0x5cd658)[_0x1527('0x6d')](','):[];if(_0x59bd4d['length']===0x5){_0x59bd4d[_0x1527('0x6e')](-0x1,0x1);}_0x59bd4d[_0x1527('0x6f')](_0x5a3262);return encryptor[_0x1527('0x70')](_0x59bd4d[_0x1527('0x71')](','));};function signJwt(_0x5c7eb1){var _0x793110=BPromise['promisify'](jwt[_0x1527('0x72')],{'context':jwt});var _0x46bb8d=_0x5c7eb1[_0x1527('0x73')]||config[_0x1527('0xa')][_0x1527('0xb')];return new BPromise(function(_0x4cff4a,_0x57e358){_0x793110(_0x5c7eb1['payload'],_0x46bb8d,_0x5c7eb1[_0x1527('0x74')])[_0x1527('0x40')](function(_0x18b810){_0x4cff4a(_0x18b810);})[_0x1527('0x34')](function(_0x10794e){_0x57e358(_0x10794e);});});}function verifyJwt(_0x5e0be4,_0x55e8fe,_0x241df9){var _0x15619d=BPromise[_0x1527('0x75')](jwt[_0x1527('0x76')],{'context':jwt});var _0x4e92a6=_0x241df9||config['secrets']['session'];return new BPromise(function(_0x2e9785,_0x26a3c0){_0x15619d(_0x5e0be4,_0x4e92a6,_0x55e8fe)[_0x1527('0x40')](function(_0x5bcf73){_0x2e9785(_0x5bcf73);})[_0x1527('0x34')](function(_0x289250){_0x26a3c0(_0x289250);});});}function generateNonce(){return crypto[_0x1527('0x77')](0x10)[_0x1527('0x78')]('hex');}function generateIssuedAt(){return Math['floor'](Date['now']()/0x3e8)[_0x1527('0x78')]();}function createJwt(_0x462c44){var _0xb9799={'payload':{'iat':_0x462c44[_0x1527('0x5e')],'nonce':_0x462c44[_0x1527('0x46')]},'options':{'algorithm':'HS512','subject':_0x462c44['id'][_0x1527('0x78')](),'issuer':hardwareConf[_0x1527('0x3f')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0xb9799)[_0x1527('0x40')](function(_0x1b20d1){return{'iat':_0x462c44[_0x1527('0x5e')],'nonce':_0x462c44['apiKeyNonce'],'token':_0x1b20d1};});}
\ No newline at end of file
+var _0xace6=['privacyEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','isChatInteractionAuthorized','isAuthenticated','use','ChatInteraction','findOne','params','closed','then','unmanaged','json','disposition','Unmanaged.','Forbidden.','authorization','startsWith','headers','Basic','User','find','authenticate','pass','Wrong\x20credentials.','user','catch','status','query','apikey','getUuid','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blockedAt','add','Unknown\x20authorization\x20format','User\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','role','send','retrieveApiKey','apiKeyNonce','isNil','regenerateApiKey','apiKeyIat','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','ValidationError','validatePasswordHistory','decryptString','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','splice','unshift','encryptString','join','promisify','sign','session','payload','options','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','secrets','fullname','name','internal','email','userpic','permissions','chatPause','mailPause','faxPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','allowmessenger','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xace6,0xd5));var _0x6ace=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xace6[_0x20a584];return _0x4b41a8;};'use strict';var db=require(_0x6ace('0x0'))['db'];var config=require(_0x6ace('0x1'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require('../../config/license/util');var encryptor=require(_0x6ace('0x2'));var _=require(_0x6ace('0x3'));var jwt=require(_0x6ace('0x4'));var expressJwt=require(_0x6ace('0x5'));var compose=require(_0x6ace('0x6'));var basicAuth=require(_0x6ace('0x7'));var crypto=require(_0x6ace('0x8'));var BPromise=require(_0x6ace('0x9'));var util=require(_0x6ace('0xa'));var moment=require('moment');var validateJwt=expressJwt({'secret':config[_0x6ace('0xb')]['session']});var userAttributes=['id','role',_0x6ace('0xc'),_0x6ace('0xd'),_0x6ace('0xe'),_0x6ace('0xf'),_0x6ace('0x10'),_0x6ace('0x11'),'md5secret','voicePause',_0x6ace('0x12'),_0x6ace('0x13'),_0x6ace('0x14'),'smsPause','openchannelPause',_0x6ace('0x15'),_0x6ace('0x16'),_0x6ace('0x17'),_0x6ace('0x18'),'crudPermissions',_0x6ace('0x19'),'passwordResetAt',_0x6ace('0x1a'),_0x6ace('0x1b'),_0x6ace('0x1c'),_0x6ace('0x1d'),_0x6ace('0x1e'),_0x6ace('0x1f'),'phoneBarEnableSettings',_0x6ace('0x20'),_0x6ace('0x21'),_0x6ace('0x22'),_0x6ace('0x23'),_0x6ace('0x24'),_0x6ace('0x25'),_0x6ace('0x26'),_0x6ace('0x27'),'settingsEnabled',_0x6ace('0x28'),_0x6ace('0x29'),_0x6ace('0x2a'),'downloadAttachments'];exports[_0x6ace('0x2b')]=function(){return this[_0x6ace('0x2c')](!![])[_0x6ace('0x2d')](function(_0x468257,_0x166268,_0x28dd4b){if(_0x468257['user']){_0x28dd4b();}else{return db[_0x6ace('0x2e')][_0x6ace('0x2f')]({'where':{'id':_0x468257[_0x6ace('0x30')]['id']},'attributes':['id',_0x6ace('0x31'),'disposition'],'raw':!![]})[_0x6ace('0x32')](function(_0x22dd22){if(_0x22dd22&&_0x22dd22['closed']){return _0x166268['status'](_0x22dd22['disposition']===_0x6ace('0x33')?0x195:0x193)[_0x6ace('0x34')]({'message':_0x22dd22[_0x6ace('0x35')]===_0x6ace('0x33')?_0x6ace('0x36'):_0x6ace('0x37')});}else{_0x28dd4b();}})['catch'](function(_0x4cf34a){_0x28dd4b(_0x4cf34a);});}});};exports['isAuthenticated']=function isAuthenticated(_0x3407d4){return compose()[_0x6ace('0x2d')](function(_0x56e5ae,_0x45ca14,_0x329c96){var _0x435cfa;if(_0x56e5ae['headers'][_0x6ace('0x38')]){if(_[_0x6ace('0x39')](_0x56e5ae[_0x6ace('0x3a')][_0x6ace('0x38')],_0x6ace('0x3b'))){var _0x22feab=basicAuth(_0x56e5ae);db[_0x6ace('0x3c')][_0x6ace('0x3d')]({'where':{'name':_0x22feab[_0x6ace('0xd')]}})[_0x6ace('0x32')](function(_0x46e35d){if(!_0x46e35d||!_0x46e35d[_0x6ace('0x3e')](_0x22feab[_0x6ace('0x3f')])){return _0x45ca14['status'](0x191)[_0x6ace('0x34')]({'message':_0x6ace('0x40')});}_0x56e5ae[_0x6ace('0x41')]={'id':_0x46e35d['id']};_0x329c96();})[_0x6ace('0x42')](function(_0x423410){_0x329c96(_0x423410);});}else if(_[_0x6ace('0x39')](_0x56e5ae[_0x6ace('0x3a')][_0x6ace('0x38')],'Bearer')){validateJwt(_0x56e5ae,_0x45ca14,_0x329c96);}else{if(_0x3407d4){_0x329c96();}else{return _0x45ca14[_0x6ace('0x43')](0x193)['json']({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x56e5ae[_0x6ace('0x44')][_0x6ace('0x45')]){try{var _0x7b9f82={'audience':hardwareConf[_0x6ace('0x46')](),'issuer':hardwareConf[_0x6ace('0x46')]()};verifyJwt(_0x56e5ae[_0x6ace('0x44')]['apikey'],_0x7b9f82)[_0x6ace('0x32')](function(_0xc42028){return db[_0x6ace('0x3c')][_0x6ace('0x3d')]({'where':{'id':_0xc42028[_0x6ace('0x47')]}})[_0x6ace('0x32')](function(_0x5979c4){_0x435cfa=_0x5979c4;return db[_0x6ace('0x48')][_0x6ace('0x2f')]({'where':{'id':0x1},'attributes':[_0x6ace('0x49'),_0x6ace('0x4a')],'raw':!![]});})['then'](function(_0x2cadc8){if(!_0x435cfa||!_[_0x6ace('0x4b')](_0x435cfa['apiKeyNonce'],_0xc42028[_0x6ace('0x4c')])){return _0x45ca14['status'](0x191)[_0x6ace('0x34')]({'message':_0x6ace('0x4d')});}if(_0x435cfa[_0x6ace('0x4e')]){return _0x45ca14[_0x6ace('0x43')](0x191)[_0x6ace('0x34')]({'message':_0x6ace('0x4f')});}if(_0x435cfa['blocked']){if(_0x2cadc8[_0x6ace('0x4a')]>0x0){if(moment(_0x435cfa[_0x6ace('0x50')])[_0x6ace('0x51')](_0x2cadc8['blockDuration'],'minutes')>moment()){return _0x45ca14[_0x6ace('0x43')](0x191)[_0x6ace('0x34')]({'message':_0x6ace('0x4f')});}}else{return _0x45ca14['status'](0x191)[_0x6ace('0x34')]({'message':'Invalid\x20API\x20access\x20key'});}}_0x56e5ae[_0x6ace('0x41')]={'id':_0x435cfa['id']};_0x329c96();});})['catch'](function(){return _0x45ca14['status'](0x191)[_0x6ace('0x34')]({'message':_0x6ace('0x4f')});});}catch(_0xd83e85){_0x329c96(_0xd83e85);}}else if(_0x3407d4){_0x329c96();}else{return _0x45ca14[_0x6ace('0x43')](0x193)[_0x6ace('0x34')]({'message':_0x6ace('0x52')});}})[_0x6ace('0x2d')](function(_0x5411de,_0x105aa7,_0x2a7953){if(_0x5411de['user']){db[_0x6ace('0x3c')]['find']({'where':{'id':_0x5411de['user']['id']},'attributes':userAttributes})[_0x6ace('0x32')](function(_0x50896d){if(!_0x50896d){return _0x105aa7['status'](0x194)[_0x6ace('0x34')]({'message':_0x6ace('0x53')});}_0x5411de['user']=_0x50896d;_0x2a7953();})[_0x6ace('0x42')](function(_0x433961){_0x2a7953(_0x433961);});}else if(_0x3407d4){_0x2a7953();}else{return _0x105aa7[_0x6ace('0x43')](0x194)[_0x6ace('0x34')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x6ace('0x54')]=function canUpdate(){return compose()[_0x6ace('0x2d')](function(_0x10f5f9,_0x9adde,_0x3a60fc){return licenseUtil[_0x6ace('0x55')]()['then'](function(_0x357e1d){if(_0x357e1d[_0x6ace('0x56')]){_0x3a60fc();}else{return _0x9adde[_0x6ace('0x43')](0x193)[_0x6ace('0x34')]({'message':_0x6ace('0x57')});}})[_0x6ace('0x42')](function(_0x2dd43c){_0x3a60fc(_0x2dd43c);});});};exports[_0x6ace('0x58')]=function(_0x592994,_0x2fdee8,_0x503667){_0x592994[_0x6ace('0x58')]=!![];return _0x503667();};exports[_0x6ace('0x59')]=function signToken(_0x5637f8){return signJwt(_0x5637f8);};exports[_0x6ace('0x5a')]=function(_0x53240d,_0x17ca5f){if(!_0x53240d['user']){return _0x17ca5f['status'](0x194)[_0x6ace('0x34')]({'message':_0x6ace('0x5b')});}var _0x53e466={'payload':{'id':_0x53240d[_0x6ace('0x41')]['id'],'role':_0x53240d['user'][_0x6ace('0x5c')]},'options':{'expiresIn':0x15180}};return signJwt(_0x53e466)['then'](function(_0x41421d){_0x17ca5f['cookie']('motion.token',_0x41421d);_0x17ca5f['redirect']('/dashboards/general');})[_0x6ace('0x42')](function(_0x37f60b){return _0x17ca5f['status'](0x1f4)[_0x6ace('0x5d')](_0x37f60b);});};exports[_0x6ace('0x5e')]=function(_0x542637){if(_['isNil'](_0x542637[_0x6ace('0x5f')])||_[_0x6ace('0x60')](_0x542637['apiKeyIat'])){return null;}else{return createJwt(_0x542637);}};exports['generateApiKey']=function(_0x4cc3a7){_0x4cc3a7[_0x6ace('0x5f')]=generateNonce();_0x4cc3a7['apiKeyIat']=generateIssuedAt();return createJwt(_0x4cc3a7);};exports[_0x6ace('0x61')]=function(_0xb6f495,_0x42999c){var _0x5e476c=_0xb6f495['query'][_0x6ace('0x45')];if(_0x5e476c){var _0x3376aa={'nonce':_0x42999c[_0x6ace('0x5f')],'iat':_0x42999c[_0x6ace('0x62')],'audience':hardwareConf[_0x6ace('0x46')](),'issuer':hardwareConf[_0x6ace('0x46')]()};return verifyJwt(_0x5e476c,_0x3376aa)[_0x6ace('0x32')](function(){return generateApiKey(_0x42999c);});}else{throw{'message':_0x6ace('0x63')};}};exports[_0x6ace('0x64')]=function(_0x519d53){var _0x1a6d03=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x1a6d03[_0x6ace('0x65')](_0x519d53))throw new db[(_0x6ace('0x66'))][(_0x6ace('0x67'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');return;};exports[_0x6ace('0x68')]=function(_0x3c5f08,_0x27d6b4,_0x18df5b){var _0x4d2ee2=encryptor[_0x6ace('0x69')](_0x27d6b4)['split'](',');for(var _0x25d293=0x0;_0x25d293<_0x18df5b;_0x25d293++){if(!_0x4d2ee2[_0x25d293])break;if(_0x3c5f08[_0x6ace('0x6a')]()===_0x4d2ee2[_0x25d293][_0x6ace('0x6a')]()){var _0x48f929=util[_0x6ace('0x6b')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x18df5b);if(_0x18df5b===0x1){_0x48f929=_0x6ace('0x6c');}throw new db['Sequelize'][(_0x6ace('0x67'))](_0x48f929);}}return;};exports[_0x6ace('0x6d')]=function(_0xe412e3,_0x245e38){var _0x594c43=_0x245e38?encryptor['decryptString'](_0x245e38)['split'](','):[];if(_0x594c43['length']===0x5){_0x594c43[_0x6ace('0x6e')](-0x1,0x1);}_0x594c43[_0x6ace('0x6f')](_0xe412e3);return encryptor[_0x6ace('0x70')](_0x594c43[_0x6ace('0x71')](','));};function signJwt(_0x4fad70){var _0x49a40c=BPromise[_0x6ace('0x72')](jwt[_0x6ace('0x73')],{'context':jwt});var _0x42bb0e=_0x4fad70['secret']||config[_0x6ace('0xb')][_0x6ace('0x74')];return new BPromise(function(_0x320281,_0x4269e6){_0x49a40c(_0x4fad70[_0x6ace('0x75')],_0x42bb0e,_0x4fad70[_0x6ace('0x76')])['then'](function(_0x3d87ef){_0x320281(_0x3d87ef);})[_0x6ace('0x42')](function(_0x2daf5c){_0x4269e6(_0x2daf5c);});});}function verifyJwt(_0x52fd9c,_0x34522e,_0x19243e){var _0x62a330=BPromise[_0x6ace('0x72')](jwt[_0x6ace('0x77')],{'context':jwt});var _0x5471e5=_0x19243e||config[_0x6ace('0xb')][_0x6ace('0x74')];return new BPromise(function(_0x78766d,_0x396e29){_0x62a330(_0x52fd9c,_0x5471e5,_0x34522e)['then'](function(_0x4e3767){_0x78766d(_0x4e3767);})['catch'](function(_0x33b182){_0x396e29(_0x33b182);});});}function generateNonce(){return crypto[_0x6ace('0x78')](0x10)[_0x6ace('0x79')](_0x6ace('0x7a'));}function generateIssuedAt(){return Math[_0x6ace('0x7b')](Date[_0x6ace('0x7c')]()/0x3e8)[_0x6ace('0x79')]();}function createJwt(_0x57462c){var _0x3078d7={'payload':{'iat':_0x57462c[_0x6ace('0x62')],'nonce':_0x57462c['apiKeyNonce']},'options':{'algorithm':_0x6ace('0x7d'),'subject':_0x57462c['id'][_0x6ace('0x79')](),'issuer':hardwareConf[_0x6ace('0x46')](),'audience':hardwareConf[_0x6ace('0x46')]()}};return signJwt(_0x3078d7)['then'](function(_0x549a36){return{'iat':_0x57462c['apiKeyIat'],'nonce':_0x57462c[_0x6ace('0x5f')],'token':_0x549a36};});}
\ No newline at end of file