Built motion from commit f9526609.|2.6.29
[motion2.git] / server / components / auth / service.js
index 03d212c..c833dc3 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x052b=['Unmanaged.','Forbidden.','headers','authorization','startsWith','Basic','find','authenticate','pass','status','Wrong\x20credentials.','catch','Unknown\x20authorization\x20format','query','apikey','getUuid','User','Setting','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','blockDuration','blockedAt','add','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','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','decryptString','split','toLowerCase','format','length','splice','unshift','encryptString','join','promisify','sign','secret','options','toString','hex','now','HS512','../../mysqldb','../../config/environment','../../config/license/util','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','role','fullname','name','internal','email','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer','whatsappAutoanswer','messengerSoundNotification','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','then','forceDownload','disposition','unmanaged','json'];(function(_0x21e9e4,_0x1c67b1){var _0x360674=function(_0x2566fc){while(--_0x2566fc){_0x21e9e4['push'](_0x21e9e4['shift']());}};_0x360674(++_0x1c67b1);}(_0x052b,0xdf));var _0xb052=function(_0x1d7169,_0x57a88c){_0x1d7169=_0x1d7169-0x0;var _0x3f8f5a=_0x052b[_0x1d7169];return _0x3f8f5a;};'use strict';var db=require(_0xb052('0x0'))['db'];var config=require(_0xb052('0x1'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0xb052('0x2'));var encryptor=require('../encryptor');var _=require(_0xb052('0x3'));var jwt=require(_0xb052('0x4'));var expressJwt=require(_0xb052('0x5'));var compose=require(_0xb052('0x6'));var basicAuth=require(_0xb052('0x7'));var crypto=require(_0xb052('0x8'));var BPromise=require(_0xb052('0x9'));var util=require(_0xb052('0xa'));var moment=require(_0xb052('0xb'));var validateJwt=expressJwt({'secret':config[_0xb052('0xc')]['session']});var userAttributes=['id',_0xb052('0xd'),_0xb052('0xe'),_0xb052('0xf'),_0xb052('0x10'),_0xb052('0x11'),'userpic',_0xb052('0x12'),_0xb052('0x13'),_0xb052('0x14'),_0xb052('0x15'),_0xb052('0x16'),_0xb052('0x17'),_0xb052('0x18'),_0xb052('0x19'),_0xb052('0x1a'),_0xb052('0x1b'),_0xb052('0x1c'),_0xb052('0x1d'),_0xb052('0x1e'),_0xb052('0x1f'),_0xb052('0x20'),_0xb052('0x21'),_0xb052('0x22'),_0xb052('0x23'),_0xb052('0x24'),_0xb052('0x25'),_0xb052('0x26'),_0xb052('0x27'),_0xb052('0x28'),_0xb052('0x29'),_0xb052('0x2a'),_0xb052('0x2b'),'hotdesk',_0xb052('0x2c'),_0xb052('0x2d'),_0xb052('0x2e'),_0xb052('0x2f'),_0xb052('0x30'),_0xb052('0x31'),_0xb052('0x32'),_0xb052('0x33'),_0xb052('0x34'),'selectRecallMeCampaign',_0xb052('0x35'),_0xb052('0x36'),_0xb052('0x37'),_0xb052('0x38'),_0xb052('0x39'),_0xb052('0x3a'),_0xb052('0x3b'),_0xb052('0x3c'),_0xb052('0x3d'),'faxAutoanswerDelay',_0xb052('0x3e'),'whatsappAutoanswerDelay',_0xb052('0x3f')];exports[_0xb052('0x40')]=function(){return this[_0xb052('0x41')](!![])[_0xb052('0x42')](function(_0x1f1681,_0x36415a,_0x3ecba6){if(_0x1f1681[_0xb052('0x43')]){_0x3ecba6();}else{return db[_0xb052('0x44')][_0xb052('0x45')]({'where':{'id':_0x1f1681[_0xb052('0x46')]['id']},'attributes':['id',_0xb052('0x47'),'disposition'],'raw':!![]})[_0xb052('0x48')](function(_0x114c4b){if(_0x114c4b&&_0x114c4b[_0xb052('0x47')]&&!_0x1f1681['query'][_0xb052('0x49')]){return _0x36415a['status'](_0x114c4b[_0xb052('0x4a')]===_0xb052('0x4b')?0x195:0x193)[_0xb052('0x4c')]({'message':_0x114c4b['disposition']==='unmanaged'?_0xb052('0x4d'):_0xb052('0x4e')});}else{_0x3ecba6();}})['catch'](function(_0x4ee4d6){_0x3ecba6(_0x4ee4d6);});}});};exports['isAuthenticated']=function isAuthenticated(_0x2942ea){return compose()['use'](function(_0x5bf700,_0x559049,_0x3f6da5){var _0x562557;if(_0x5bf700[_0xb052('0x4f')][_0xb052('0x50')]){if(_[_0xb052('0x51')](_0x5bf700[_0xb052('0x4f')][_0xb052('0x50')],_0xb052('0x52'))){var _0x29f010=basicAuth(_0x5bf700);db['User'][_0xb052('0x53')]({'where':{'name':_0x29f010[_0xb052('0xf')]}})[_0xb052('0x48')](function(_0xc84484){if(!_0xc84484||!_0xc84484[_0xb052('0x54')](_0x29f010[_0xb052('0x55')])){return _0x559049[_0xb052('0x56')](0x191)[_0xb052('0x4c')]({'message':_0xb052('0x57')});}_0x5bf700[_0xb052('0x43')]={'id':_0xc84484['id']};_0x3f6da5();})[_0xb052('0x58')](function(_0x1dade4){_0x3f6da5(_0x1dade4);});}else if(_[_0xb052('0x51')](_0x5bf700[_0xb052('0x4f')][_0xb052('0x50')],'Bearer')){validateJwt(_0x5bf700,_0x559049,_0x3f6da5);}else{if(_0x2942ea){_0x3f6da5();}else{return _0x559049[_0xb052('0x56')](0x193)['json']({'message':_0xb052('0x59')});}}}else if(_0x5bf700[_0xb052('0x5a')][_0xb052('0x5b')]){try{var _0x37fd26={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xb052('0x5c')]()};verifyJwt(_0x5bf700[_0xb052('0x5a')][_0xb052('0x5b')],_0x37fd26)['then'](function(_0x1a2826){return db[_0xb052('0x5d')][_0xb052('0x53')]({'where':{'id':_0x1a2826['sub']}})['then'](function(_0x177d41){_0x562557=_0x177d41;return db[_0xb052('0x5e')][_0xb052('0x45')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]});})[_0xb052('0x48')](function(_0x312203){if(!_0x562557||!_[_0xb052('0x5f')](_0x562557[_0xb052('0x60')],_0x1a2826[_0xb052('0x61')])){return _0x559049['status'](0x191)[_0xb052('0x4c')]({'message':_0xb052('0x62')});}if(_0x562557[_0xb052('0x63')]){return _0x559049[_0xb052('0x56')](0x191)[_0xb052('0x4c')]({'message':_0xb052('0x64')});}if(_0x562557[_0xb052('0x65')]){if(_0x312203[_0xb052('0x66')]>0x0){if(moment(_0x562557[_0xb052('0x67')])[_0xb052('0x68')](_0x312203[_0xb052('0x66')],'minutes')>moment()){return _0x559049[_0xb052('0x56')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}}else{return _0x559049[_0xb052('0x56')](0x191)[_0xb052('0x4c')]({'message':_0xb052('0x64')});}}_0x5bf700['user']={'id':_0x562557['id']};_0x3f6da5();});})['catch'](function(){return _0x559049[_0xb052('0x56')](0x191)[_0xb052('0x4c')]({'message':_0xb052('0x64')});});}catch(_0x238a10){_0x3f6da5(_0x238a10);}}else if(_0x2942ea){_0x3f6da5();}else{return _0x559049[_0xb052('0x56')](0x193)[_0xb052('0x4c')]({'message':'Unknown\x20authorization\x20format'});}})[_0xb052('0x42')](function(_0x3cda07,_0x1dfee8,_0x31cd62){if(_0x3cda07[_0xb052('0x43')]){db[_0xb052('0x5d')]['find']({'where':{'id':_0x3cda07['user']['id']},'attributes':userAttributes})[_0xb052('0x48')](function(_0x4a3cc8){if(!_0x4a3cc8){return _0x1dfee8[_0xb052('0x56')](0x194)['json']({'message':_0xb052('0x69')});}_0x3cda07['user']=_0x4a3cc8;_0x31cd62();})['catch'](function(_0x4c6a1c){_0x31cd62(_0x4c6a1c);});}else if(_0x2942ea){_0x31cd62();}else{return _0x1dfee8[_0xb052('0x56')](0x194)[_0xb052('0x4c')]({'message':_0xb052('0x6a')});}});};exports[_0xb052('0x6b')]=function canUpdate(){return compose()[_0xb052('0x42')](function(_0x209a1b,_0x44aa4f,_0x707db7){return licenseUtil[_0xb052('0x6c')]()['then'](function(_0x1e4c8f){if(_0x1e4c8f[_0xb052('0x6d')]){_0x707db7();}else{return _0x44aa4f[_0xb052('0x56')](0x193)[_0xb052('0x4c')]({'message':_0xb052('0x6e')});}})['catch'](function(_0x293827){_0x707db7(_0x293827);});});};exports[_0xb052('0x6f')]=function isWebrtcLicence(){return compose()[_0xb052('0x42')](function(_0x2f7e67,_0xa36ca5,_0xffc33c){return licenseUtil[_0xb052('0x6c')]()['then'](function(_0x1d7648){if(_0x1d7648[_0xb052('0x70')]){_0xffc33c();}else{return _0xa36ca5[_0xb052('0x56')](0x193)[_0xb052('0x4c')]({'message':'Forbidden'});}})['catch'](function(_0xfef567){_0xffc33c(_0xfef567);});});};exports['isMiddleware']=function(_0x5b06ba,_0x2d95e1,_0x56120f){_0x5b06ba[_0xb052('0x71')]=!![];return _0x56120f();};exports[_0xb052('0x72')]=function signToken(_0x563c41){return signJwt(_0x563c41);};exports[_0xb052('0x73')]=function(_0x15955d,_0x3c122f){if(!_0x15955d[_0xb052('0x43')]){return _0x3c122f['status'](0x194)[_0xb052('0x4c')]({'message':_0xb052('0x74')});}var _0x1bcb6d={'payload':{'id':_0x15955d[_0xb052('0x43')]['id'],'role':_0x15955d[_0xb052('0x43')][_0xb052('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x1bcb6d)[_0xb052('0x48')](function(_0x218c5d){_0x3c122f[_0xb052('0x75')](_0xb052('0x76'),_0x218c5d);_0x3c122f[_0xb052('0x77')]('/dashboards/general');})['catch'](function(_0x212922){return _0x3c122f[_0xb052('0x56')](0x1f4)[_0xb052('0x78')](_0x212922);});};exports[_0xb052('0x79')]=function(_0x5329af){if(_[_0xb052('0x7a')](_0x5329af[_0xb052('0x60')])||_['isNil'](_0x5329af[_0xb052('0x7b')])){return null;}else{return createJwt(_0x5329af);}};exports[_0xb052('0x7c')]=function(_0x656917){_0x656917['apiKeyNonce']=generateNonce();_0x656917[_0xb052('0x7b')]=generateIssuedAt();return createJwt(_0x656917);};exports[_0xb052('0x7d')]=function(_0x4d56fd,_0x1d9c57){var _0x3b506f=_0x4d56fd[_0xb052('0x5a')][_0xb052('0x5b')];if(_0x3b506f){var _0x1d1433={'nonce':_0x1d9c57['apiKeyNonce'],'iat':_0x1d9c57[_0xb052('0x7b')],'audience':hardwareConf[_0xb052('0x5c')](),'issuer':hardwareConf[_0xb052('0x5c')]()};return verifyJwt(_0x3b506f,_0x1d1433)[_0xb052('0x48')](function(){return generateApiKey(_0x1d9c57);});}else{throw{'message':_0xb052('0x7e')};}};exports[_0xb052('0x7f')]=function(_0x9eaff2){var _0x4262fa=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4262fa[_0xb052('0x80')](_0x9eaff2))throw new db[(_0xb052('0x81'))][(_0xb052('0x82'))](_0xb052('0x83'));return;};exports[_0xb052('0x84')]=function(_0x106fc3,_0x76de33,_0x19a23d){var _0x3201ee=encryptor[_0xb052('0x85')](_0x76de33)[_0xb052('0x86')](',');for(var _0x1ceef6=0x0;_0x1ceef6<_0x19a23d;_0x1ceef6++){if(!_0x3201ee[_0x1ceef6])break;if(_0x106fc3[_0xb052('0x87')]()===_0x3201ee[_0x1ceef6][_0xb052('0x87')]()){var _0x2abc86=util[_0xb052('0x88')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x19a23d);if(_0x19a23d===0x1){_0x2abc86='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0xb052('0x81'))]['ValidationError'](_0x2abc86);}}return;};exports['updatePasswordsHistory']=function(_0x8305a9,_0x689964){var _0x159fd2=_0x689964?encryptor[_0xb052('0x85')](_0x689964)[_0xb052('0x86')](','):[];if(_0x159fd2[_0xb052('0x89')]===0x5){_0x159fd2[_0xb052('0x8a')](-0x1,0x1);}_0x159fd2[_0xb052('0x8b')](_0x8305a9);return encryptor[_0xb052('0x8c')](_0x159fd2[_0xb052('0x8d')](','));};function signJwt(_0xf38eac){var _0x3d6fb0=BPromise[_0xb052('0x8e')](jwt[_0xb052('0x8f')],{'context':jwt});var _0x2f16d3=_0xf38eac[_0xb052('0x90')]||config[_0xb052('0xc')]['session'];return new BPromise(function(_0x5f1bdc,_0x7736c4){_0x3d6fb0(_0xf38eac['payload'],_0x2f16d3,_0xf38eac[_0xb052('0x91')])[_0xb052('0x48')](function(_0x955a35){_0x5f1bdc(_0x955a35);})['catch'](function(_0x3aa820){_0x7736c4(_0x3aa820);});});}function verifyJwt(_0x1cc976,_0x539ea9,_0x4f23ba){var _0x113810=BPromise[_0xb052('0x8e')](jwt['verify'],{'context':jwt});var _0x3b78af=_0x4f23ba||config[_0xb052('0xc')]['session'];return new BPromise(function(_0x2ca9d6,_0x2aeabe){_0x113810(_0x1cc976,_0x3b78af,_0x539ea9)[_0xb052('0x48')](function(_0x31b770){_0x2ca9d6(_0x31b770);})[_0xb052('0x58')](function(_0x229628){_0x2aeabe(_0x229628);});});}function generateNonce(){return crypto['randomBytes'](0x10)[_0xb052('0x92')](_0xb052('0x93'));}function generateIssuedAt(){return Math['floor'](Date[_0xb052('0x94')]()/0x3e8)[_0xb052('0x92')]();}function createJwt(_0x223596){var _0x3129d8={'payload':{'iat':_0x223596['apiKeyIat'],'nonce':_0x223596[_0xb052('0x60')]},'options':{'algorithm':_0xb052('0x95'),'subject':_0x223596['id'][_0xb052('0x92')](),'issuer':hardwareConf[_0xb052('0x5c')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x3129d8)[_0xb052('0x48')](function(_0x2b8a52){return{'iat':_0x223596['apiKeyIat'],'nonce':_0x223596[_0xb052('0x60')],'token':_0x2b8a52};});}
\ No newline at end of file
+var _0xe2f5=['emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','then','query','forceDownload','unmanaged','json','Unmanaged.','Forbidden.','headers','authorization','Basic','User','find','status','Wrong\x20credentials.','catch','startsWith','Unknown\x20authorization\x20format','getUuid','sub','Setting','blockDuration','isEqual','apiKeyNonce','nonce','Invalid\x20API\x20access\x20key','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','redirect','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','apikey','validatePasswordPattern','test','Sequelize','ValidationError','validatePasswordHistory','split','toLowerCase','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','splice','unshift','sign','secret','payload','options','randomBytes','toString','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','session','role','fullname','internal','email','userpic','permissions','chatPause','mailPause','faxPause','openchannelPause','showWebBar','lastPauseAt','crudPermissions','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadOmnichannelInteractions','downloadAttachments','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer'];(function(_0x18f4e6,_0x130850){var _0x394ad9=function(_0x4a95c2){while(--_0x4a95c2){_0x18f4e6['push'](_0x18f4e6['shift']());}};_0x394ad9(++_0x130850);}(_0xe2f5,0xd6));var _0x5e2f=function(_0xf54f53,_0x295038){_0xf54f53=_0xf54f53-0x0;var _0x552198=_0xe2f5[_0xf54f53];return _0x552198;};'use strict';var db=require(_0x5e2f('0x0'))['db'];var config=require(_0x5e2f('0x1'));var hardwareConf=require(_0x5e2f('0x2'));var licenseUtil=require(_0x5e2f('0x3'));var encryptor=require(_0x5e2f('0x4'));var _=require(_0x5e2f('0x5'));var jwt=require('jsonwebtoken');var expressJwt=require(_0x5e2f('0x6'));var compose=require(_0x5e2f('0x7'));var basicAuth=require(_0x5e2f('0x8'));var crypto=require(_0x5e2f('0x9'));var BPromise=require(_0x5e2f('0xa'));var util=require(_0x5e2f('0xb'));var moment=require(_0x5e2f('0xc'));var validateJwt=expressJwt({'secret':config[_0x5e2f('0xd')][_0x5e2f('0xe')]});var userAttributes=['id',_0x5e2f('0xf'),_0x5e2f('0x10'),'name',_0x5e2f('0x11'),_0x5e2f('0x12'),_0x5e2f('0x13'),_0x5e2f('0x14'),'md5secret','voicePause',_0x5e2f('0x15'),_0x5e2f('0x16'),_0x5e2f('0x17'),'smsPause',_0x5e2f('0x18'),'pauseType',_0x5e2f('0x19'),'lastLoginAt',_0x5e2f('0x1a'),_0x5e2f('0x1b'),'allowmessenger',_0x5e2f('0x1c'),_0x5e2f('0x1d'),_0x5e2f('0x1e'),_0x5e2f('0x1f'),_0x5e2f('0x20'),'phoneBarEnableRecording','phoneBarEnableDtmfTone',_0x5e2f('0x21'),_0x5e2f('0x22'),'phoneBarPrefixRequired',_0x5e2f('0x23'),_0x5e2f('0x24'),_0x5e2f('0x25'),_0x5e2f('0x26'),_0x5e2f('0x27'),_0x5e2f('0x28'),_0x5e2f('0x29'),_0x5e2f('0x2a'),'downloadVoiceRecordings',_0x5e2f('0x2b'),_0x5e2f('0x2c'),'ignorePauseForPreviewCalls','selectRecallMeCampaign',_0x5e2f('0x2d'),_0x5e2f('0x2e'),_0x5e2f('0x2f'),_0x5e2f('0x30'),_0x5e2f('0x31'),_0x5e2f('0x32'),'openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer',_0x5e2f('0x33'),_0x5e2f('0x34'),_0x5e2f('0x35'),_0x5e2f('0x36')];exports[_0x5e2f('0x37')]=function(){return this[_0x5e2f('0x38')](!![])[_0x5e2f('0x39')](function(_0x3c9789,_0x5da733,_0x5a60e1){if(_0x3c9789[_0x5e2f('0x3a')]){_0x5a60e1();}else{return db[_0x5e2f('0x3b')][_0x5e2f('0x3c')]({'where':{'id':_0x3c9789[_0x5e2f('0x3d')]['id']},'attributes':['id',_0x5e2f('0x3e'),_0x5e2f('0x3f')],'raw':!![]})[_0x5e2f('0x40')](function(_0x5065e7){if(_0x5065e7&&_0x5065e7[_0x5e2f('0x3e')]&&!_0x3c9789[_0x5e2f('0x41')][_0x5e2f('0x42')]){return _0x5da733['status'](_0x5065e7['disposition']===_0x5e2f('0x43')?0x195:0x193)[_0x5e2f('0x44')]({'message':_0x5065e7[_0x5e2f('0x3f')]===_0x5e2f('0x43')?_0x5e2f('0x45'):_0x5e2f('0x46')});}else{_0x5a60e1();}})['catch'](function(_0x4fb9f7){_0x5a60e1(_0x4fb9f7);});}});};exports[_0x5e2f('0x38')]=function isAuthenticated(_0x1c44ec){return compose()[_0x5e2f('0x39')](function(_0x13f227,_0xdfeb3f,_0x20a90b){var _0x131650;if(_0x13f227['headers']['authorization']){if(_['startsWith'](_0x13f227[_0x5e2f('0x47')][_0x5e2f('0x48')],_0x5e2f('0x49'))){var _0x32be3a=basicAuth(_0x13f227);db[_0x5e2f('0x4a')][_0x5e2f('0x4b')]({'where':{'name':_0x32be3a['name']}})[_0x5e2f('0x40')](function(_0x96e7f5){if(!_0x96e7f5||!_0x96e7f5['authenticate'](_0x32be3a['pass'])){return _0xdfeb3f[_0x5e2f('0x4c')](0x191)['json']({'message':_0x5e2f('0x4d')});}_0x13f227[_0x5e2f('0x3a')]={'id':_0x96e7f5['id']};_0x20a90b();})[_0x5e2f('0x4e')](function(_0x3342c4){_0x20a90b(_0x3342c4);});}else if(_[_0x5e2f('0x4f')](_0x13f227['headers']['authorization'],'Bearer')){validateJwt(_0x13f227,_0xdfeb3f,_0x20a90b);}else{if(_0x1c44ec){_0x20a90b();}else{return _0xdfeb3f[_0x5e2f('0x4c')](0x193)[_0x5e2f('0x44')]({'message':_0x5e2f('0x50')});}}}else if(_0x13f227[_0x5e2f('0x41')]['apikey']){try{var _0x3dd56d={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x5e2f('0x51')]()};verifyJwt(_0x13f227[_0x5e2f('0x41')]['apikey'],_0x3dd56d)[_0x5e2f('0x40')](function(_0x199e67){return db['User'][_0x5e2f('0x4b')]({'where':{'id':_0x199e67[_0x5e2f('0x52')]}})[_0x5e2f('0x40')](function(_0x5d9dd7){_0x131650=_0x5d9dd7;return db[_0x5e2f('0x53')][_0x5e2f('0x3c')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x5e2f('0x54')],'raw':!![]});})['then'](function(_0x27d694){if(!_0x131650||!_[_0x5e2f('0x55')](_0x131650[_0x5e2f('0x56')],_0x199e67[_0x5e2f('0x57')])){return _0xdfeb3f['status'](0x191)['json']({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0x131650['disabled']){return _0xdfeb3f[_0x5e2f('0x4c')](0x191)[_0x5e2f('0x44')]({'message':_0x5e2f('0x58')});}if(_0x131650['blocked']){if(_0x27d694[_0x5e2f('0x54')]>0x0){if(moment(_0x131650['blockedAt'])['add'](_0x27d694[_0x5e2f('0x54')],_0x5e2f('0x59'))>moment()){return _0xdfeb3f[_0x5e2f('0x4c')](0x191)[_0x5e2f('0x44')]({'message':_0x5e2f('0x58')});}}else{return _0xdfeb3f[_0x5e2f('0x4c')](0x191)[_0x5e2f('0x44')]({'message':_0x5e2f('0x58')});}}_0x13f227['user']={'id':_0x131650['id']};_0x20a90b();});})[_0x5e2f('0x4e')](function(){return _0xdfeb3f[_0x5e2f('0x4c')](0x191)[_0x5e2f('0x44')]({'message':_0x5e2f('0x58')});});}catch(_0x1cca74){_0x20a90b(_0x1cca74);}}else if(_0x1c44ec){_0x20a90b();}else{return _0xdfeb3f['status'](0x193)[_0x5e2f('0x44')]({'message':'Unknown\x20authorization\x20format'});}})[_0x5e2f('0x39')](function(_0x3685c4,_0x4f8921,_0x712d35){if(_0x3685c4[_0x5e2f('0x3a')]){db[_0x5e2f('0x4a')][_0x5e2f('0x4b')]({'where':{'id':_0x3685c4[_0x5e2f('0x3a')]['id']},'attributes':userAttributes})[_0x5e2f('0x40')](function(_0x2abd0c){if(!_0x2abd0c){return _0x4f8921[_0x5e2f('0x4c')](0x194)[_0x5e2f('0x44')]({'message':_0x5e2f('0x5a')});}_0x3685c4[_0x5e2f('0x3a')]=_0x2abd0c;_0x712d35();})[_0x5e2f('0x4e')](function(_0x12f5fe){_0x712d35(_0x12f5fe);});}else if(_0x1c44ec){_0x712d35();}else{return _0x4f8921[_0x5e2f('0x4c')](0x194)[_0x5e2f('0x44')]({'message':_0x5e2f('0x5b')});}});};exports[_0x5e2f('0x5c')]=function canUpdate(){return compose()[_0x5e2f('0x39')](function(_0x59452f,_0x274840,_0x886639){return licenseUtil[_0x5e2f('0x5d')]()[_0x5e2f('0x40')](function(_0x39f91d){if(_0x39f91d[_0x5e2f('0x5e')]){_0x886639();}else{return _0x274840[_0x5e2f('0x4c')](0x193)[_0x5e2f('0x44')]({'message':'Forbidden'});}})['catch'](function(_0x311e76){_0x886639(_0x311e76);});});};exports[_0x5e2f('0x5f')]=function isWebrtcLicence(){return compose()[_0x5e2f('0x39')](function(_0x298c11,_0xed6990,_0x5941eb){return licenseUtil[_0x5e2f('0x5d')]()[_0x5e2f('0x40')](function(_0x44bc14){if(_0x44bc14[_0x5e2f('0x60')]){_0x5941eb();}else{return _0xed6990[_0x5e2f('0x4c')](0x193)[_0x5e2f('0x44')]({'message':'Forbidden'});}})[_0x5e2f('0x4e')](function(_0x3eed57){_0x5941eb(_0x3eed57);});});};exports[_0x5e2f('0x61')]=function(_0x4f9dca,_0x10b04e,_0x3c438f){_0x4f9dca['isMiddleware']=!![];return _0x3c438f();};exports[_0x5e2f('0x62')]=function signToken(_0xe8372c){return signJwt(_0xe8372c);};exports[_0x5e2f('0x63')]=function(_0x4de5ec,_0x333bd9){if(!_0x4de5ec[_0x5e2f('0x3a')]){return _0x333bd9[_0x5e2f('0x4c')](0x194)[_0x5e2f('0x44')]({'message':_0x5e2f('0x64')});}var _0x5bcab5={'payload':{'id':_0x4de5ec[_0x5e2f('0x3a')]['id'],'role':_0x4de5ec['user']['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x5bcab5)['then'](function(_0x5b908a){_0x333bd9[_0x5e2f('0x65')]('motion.token',_0x5b908a);_0x333bd9[_0x5e2f('0x66')]('/dashboards/general');})['catch'](function(_0x50d149){return _0x333bd9[_0x5e2f('0x4c')](0x1f4)[_0x5e2f('0x67')](_0x50d149);});};exports[_0x5e2f('0x68')]=function(_0x5a3653){if(_[_0x5e2f('0x69')](_0x5a3653[_0x5e2f('0x56')])||_[_0x5e2f('0x69')](_0x5a3653[_0x5e2f('0x6a')])){return null;}else{return createJwt(_0x5a3653);}};exports[_0x5e2f('0x6b')]=function(_0x1db820){_0x1db820['apiKeyNonce']=generateNonce();_0x1db820['apiKeyIat']=generateIssuedAt();return createJwt(_0x1db820);};exports[_0x5e2f('0x6c')]=function(_0x315e43,_0x36eeac){var _0x9b8e10=_0x315e43[_0x5e2f('0x41')][_0x5e2f('0x6d')];if(_0x9b8e10){var _0xd597bb={'nonce':_0x36eeac['apiKeyNonce'],'iat':_0x36eeac[_0x5e2f('0x6a')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x5e2f('0x51')]()};return verifyJwt(_0x9b8e10,_0xd597bb)['then'](function(){return generateApiKey(_0x36eeac);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x5e2f('0x6e')]=function(_0x2138ad){var _0x3d5b1f=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3d5b1f[_0x5e2f('0x6f')](_0x2138ad))throw new db[(_0x5e2f('0x70'))][(_0x5e2f('0x71'))]('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[_0x5e2f('0x72')]=function(_0x18ea50,_0x1d353a,_0x4c6520){var _0x3b8da5=encryptor['decryptString'](_0x1d353a)[_0x5e2f('0x73')](',');for(var _0x3c3ba6=0x0;_0x3c3ba6<_0x4c6520;_0x3c3ba6++){if(!_0x3b8da5[_0x3c3ba6])break;if(_0x18ea50['toLowerCase']()===_0x3b8da5[_0x3c3ba6][_0x5e2f('0x74')]()){var _0x1ace2c=util['format'](_0x5e2f('0x75'),_0x4c6520);if(_0x4c6520===0x1){_0x1ace2c=_0x5e2f('0x76');}throw new db['Sequelize'][(_0x5e2f('0x71'))](_0x1ace2c);}}return;};exports[_0x5e2f('0x77')]=function(_0x8ccca0,_0x1b85d9){var _0x49b654=_0x1b85d9?encryptor[_0x5e2f('0x78')](_0x1b85d9)['split'](','):[];if(_0x49b654['length']===0x5){_0x49b654[_0x5e2f('0x79')](-0x1,0x1);}_0x49b654[_0x5e2f('0x7a')](_0x8ccca0);return encryptor['encryptString'](_0x49b654['join'](','));};function signJwt(_0x545cd0){var _0xe376dd=BPromise['promisify'](jwt[_0x5e2f('0x7b')],{'context':jwt});var _0x329cf5=_0x545cd0[_0x5e2f('0x7c')]||config[_0x5e2f('0xd')][_0x5e2f('0xe')];return new BPromise(function(_0x595b1d,_0x36272c){_0xe376dd(_0x545cd0[_0x5e2f('0x7d')],_0x329cf5,_0x545cd0[_0x5e2f('0x7e')])[_0x5e2f('0x40')](function(_0x3d7a2b){_0x595b1d(_0x3d7a2b);})[_0x5e2f('0x4e')](function(_0x14ea9d){_0x36272c(_0x14ea9d);});});}function verifyJwt(_0x50fd5b,_0x309ccf,_0x405dee){var _0x43631f=BPromise['promisify'](jwt['verify'],{'context':jwt});var _0x34536d=_0x405dee||config['secrets'][_0x5e2f('0xe')];return new BPromise(function(_0x3ff2ed,_0x36492d){_0x43631f(_0x50fd5b,_0x34536d,_0x309ccf)[_0x5e2f('0x40')](function(_0x16141c){_0x3ff2ed(_0x16141c);})[_0x5e2f('0x4e')](function(_0x3a8527){_0x36492d(_0x3a8527);});});}function generateNonce(){return crypto[_0x5e2f('0x7f')](0x10)[_0x5e2f('0x80')]('hex');}function generateIssuedAt(){return Math['floor'](Date[_0x5e2f('0x81')]()/0x3e8)[_0x5e2f('0x80')]();}function createJwt(_0xb3cd45){var _0x3b3876={'payload':{'iat':_0xb3cd45[_0x5e2f('0x6a')],'nonce':_0xb3cd45[_0x5e2f('0x56')]},'options':{'algorithm':_0x5e2f('0x82'),'subject':_0xb3cd45['id'][_0x5e2f('0x80')](),'issuer':hardwareConf[_0x5e2f('0x51')](),'audience':hardwareConf[_0x5e2f('0x51')]()}};return signJwt(_0x3b3876)[_0x5e2f('0x40')](function(_0x257021){return{'iat':_0xb3cd45[_0x5e2f('0x6a')],'nonce':_0xb3cd45[_0x5e2f('0x56')],'token':_0x257021};});}
\ No newline at end of file