Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / components / auth / service.js
index fcb400e..b2a3b41 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x9d36=['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.','length','splice','unshift','encryptString','promisify','sign','secret','payload','options','session','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','jsonwebtoken','express-jwt','composable-middleware','crypto','bluebird','util','moment','secrets','role','name','internal','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControlPort','interface','userProfileId','privacyEnabled','wssPort','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','chatAutoanswer','chatAutoanswerDelay','emailAutoanswerDelay','smsAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','use','ChatInteraction','findOne','params','closed','then','query','status','disposition','unmanaged','json','Unmanaged.','Forbidden.','catch','headers','authorization','startsWith','Basic','User','authenticate','pass','Wrong\x20credentials.','user','Unknown\x20authorization\x20format','apikey','getUuid','find','sub','allowedLoginAttempts','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','add','minutes','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','cookie','redirect','/dashboards/general','isNil','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','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~!@#$%^&-_=+[{]}.','validatePasswordHistory','split'];(function(_0x576771,_0x2db682){var _0x3b64af=function(_0x3b997c){while(--_0x3b997c){_0x576771['push'](_0x576771['shift']());}};_0x3b64af(++_0x2db682);}(_0x9d36,0x9b));var _0x69d3=function(_0x61e66c,_0x54a018){_0x61e66c=_0x61e66c-0x0;var _0xa491e7=_0x9d36[_0x61e66c];return _0xa491e7;};'use strict';var db=require(_0x69d3('0x0'))['db'];var config=require(_0x69d3('0x1'));var hardwareConf=require(_0x69d3('0x2'));var licenseUtil=require(_0x69d3('0x3'));var encryptor=require(_0x69d3('0x4'));var _=require('lodash');var jwt=require(_0x69d3('0x5'));var expressJwt=require(_0x69d3('0x6'));var compose=require(_0x69d3('0x7'));var basicAuth=require('basic-auth');var crypto=require(_0x69d3('0x8'));var BPromise=require(_0x69d3('0x9'));var util=require(_0x69d3('0xa'));var moment=require(_0x69d3('0xb'));var validateJwt=expressJwt({'secret':config[_0x69d3('0xc')]['session']});var userAttributes=['id',_0x69d3('0xd'),'fullname',_0x69d3('0xe'),_0x69d3('0xf'),_0x69d3('0x10'),_0x69d3('0x11'),_0x69d3('0x12'),_0x69d3('0x13'),_0x69d3('0x14'),_0x69d3('0x15'),_0x69d3('0x16'),_0x69d3('0x17'),_0x69d3('0x18'),_0x69d3('0x19'),'pauseType',_0x69d3('0x1a'),_0x69d3('0x1b'),_0x69d3('0x1c'),_0x69d3('0x1d'),_0x69d3('0x1e'),_0x69d3('0x1f'),'alias','phoneBarAutoAnswer',_0x69d3('0x20'),_0x69d3('0x21'),_0x69d3('0x22'),_0x69d3('0x23'),_0x69d3('0x24'),_0x69d3('0x25'),'phoneBarPrefixRequired','phoneBarRemoteControl',_0x69d3('0x26'),'hotdesk',_0x69d3('0x27'),_0x69d3('0x28'),_0x69d3('0x29'),'settingsEnabled',_0x69d3('0x2a'),'downloadVoiceRecordings',_0x69d3('0x2b'),'downloadAttachments',_0x69d3('0x2c'),'selectRecallMeCampaign',_0x69d3('0x2d'),_0x69d3('0x2e'),'emailAutoanswer',_0x69d3('0x2f'),'smsAutoanswer',_0x69d3('0x30'),_0x69d3('0x31'),_0x69d3('0x32'),'faxAutoanswer',_0x69d3('0x33'),_0x69d3('0x34'),_0x69d3('0x35'),_0x69d3('0x36')];exports['isChatInteractionAuthorized']=function(){return this['isAuthenticated'](!![])[_0x69d3('0x37')](function(_0x138952,_0x314432,_0x5d84a0){if(_0x138952['user']){_0x5d84a0();}else{return db[_0x69d3('0x38')][_0x69d3('0x39')]({'where':{'id':_0x138952[_0x69d3('0x3a')]['id']},'attributes':['id',_0x69d3('0x3b'),'disposition'],'raw':!![]})[_0x69d3('0x3c')](function(_0x115e16){if(_0x115e16&&_0x115e16[_0x69d3('0x3b')]&&!_0x138952[_0x69d3('0x3d')]['forceDownload']){return _0x314432[_0x69d3('0x3e')](_0x115e16[_0x69d3('0x3f')]===_0x69d3('0x40')?0x195:0x193)[_0x69d3('0x41')]({'message':_0x115e16[_0x69d3('0x3f')]===_0x69d3('0x40')?_0x69d3('0x42'):_0x69d3('0x43')});}else{_0x5d84a0();}})[_0x69d3('0x44')](function(_0x4a7b71){_0x5d84a0(_0x4a7b71);});}});};exports['isAuthenticated']=function isAuthenticated(_0x5e1ffb){return compose()['use'](function(_0x2aa92d,_0x4af6c4,_0x362ef0){var _0x4f1f09;if(_0x2aa92d[_0x69d3('0x45')][_0x69d3('0x46')]){if(_[_0x69d3('0x47')](_0x2aa92d[_0x69d3('0x45')][_0x69d3('0x46')],_0x69d3('0x48'))){var _0x57efbf=basicAuth(_0x2aa92d);db[_0x69d3('0x49')]['find']({'where':{'name':_0x57efbf[_0x69d3('0xe')]}})[_0x69d3('0x3c')](function(_0x57bbbb){if(!_0x57bbbb||!_0x57bbbb[_0x69d3('0x4a')](_0x57efbf[_0x69d3('0x4b')])){return _0x4af6c4['status'](0x191)[_0x69d3('0x41')]({'message':_0x69d3('0x4c')});}_0x2aa92d[_0x69d3('0x4d')]={'id':_0x57bbbb['id']};_0x362ef0();})[_0x69d3('0x44')](function(_0x585650){_0x362ef0(_0x585650);});}else if(_[_0x69d3('0x47')](_0x2aa92d[_0x69d3('0x45')][_0x69d3('0x46')],'Bearer')){validateJwt(_0x2aa92d,_0x4af6c4,_0x362ef0);}else{if(_0x5e1ffb){_0x362ef0();}else{return _0x4af6c4[_0x69d3('0x3e')](0x193)[_0x69d3('0x41')]({'message':_0x69d3('0x4e')});}}}else if(_0x2aa92d[_0x69d3('0x3d')][_0x69d3('0x4f')]){try{var _0x395fd1={'audience':hardwareConf[_0x69d3('0x50')](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x2aa92d['query']['apikey'],_0x395fd1)['then'](function(_0x495d0a){return db['User'][_0x69d3('0x51')]({'where':{'id':_0x495d0a[_0x69d3('0x52')]}})['then'](function(_0x4c9324){_0x4f1f09=_0x4c9324;return db['Setting'][_0x69d3('0x39')]({'where':{'id':0x1},'attributes':[_0x69d3('0x53'),_0x69d3('0x54')],'raw':!![]});})['then'](function(_0x1e0e80){if(!_0x4f1f09||!_['isEqual'](_0x4f1f09[_0x69d3('0x55')],_0x495d0a[_0x69d3('0x56')])){return _0x4af6c4[_0x69d3('0x3e')](0x191)[_0x69d3('0x41')]({'message':_0x69d3('0x57')});}if(_0x4f1f09[_0x69d3('0x58')]){return _0x4af6c4[_0x69d3('0x3e')](0x191)[_0x69d3('0x41')]({'message':_0x69d3('0x59')});}if(_0x4f1f09[_0x69d3('0x5a')]){if(_0x1e0e80[_0x69d3('0x54')]>0x0){if(moment(_0x4f1f09['blockedAt'])[_0x69d3('0x5b')](_0x1e0e80[_0x69d3('0x54')],_0x69d3('0x5c'))>moment()){return _0x4af6c4['status'](0x191)[_0x69d3('0x41')]({'message':'Invalid\x20API\x20access\x20key'});}}else{return _0x4af6c4[_0x69d3('0x3e')](0x191)[_0x69d3('0x41')]({'message':_0x69d3('0x59')});}}_0x2aa92d[_0x69d3('0x4d')]={'id':_0x4f1f09['id']};_0x362ef0();});})[_0x69d3('0x44')](function(){return _0x4af6c4[_0x69d3('0x3e')](0x191)[_0x69d3('0x41')]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x801daa){_0x362ef0(_0x801daa);}}else if(_0x5e1ffb){_0x362ef0();}else{return _0x4af6c4[_0x69d3('0x3e')](0x193)[_0x69d3('0x41')]({'message':_0x69d3('0x4e')});}})['use'](function(_0x1efdd5,_0x51c8e7,_0x443b4d){if(_0x1efdd5[_0x69d3('0x4d')]){db[_0x69d3('0x49')]['find']({'where':{'id':_0x1efdd5[_0x69d3('0x4d')]['id']},'attributes':userAttributes})[_0x69d3('0x3c')](function(_0x53e759){if(!_0x53e759){return _0x51c8e7['status'](0x194)[_0x69d3('0x41')]({'message':'User\x20not\x20found.'});}_0x1efdd5[_0x69d3('0x4d')]=_0x53e759;_0x443b4d();})[_0x69d3('0x44')](function(_0x5dd6aa){_0x443b4d(_0x5dd6aa);});}else if(_0x5e1ffb){_0x443b4d();}else{return _0x51c8e7[_0x69d3('0x3e')](0x194)[_0x69d3('0x41')]({'message':_0x69d3('0x5d')});}});};exports[_0x69d3('0x5e')]=function canUpdate(){return compose()['use'](function(_0x1984e2,_0x210634,_0x53a32d){return licenseUtil[_0x69d3('0x5f')]()['then'](function(_0x171655){if(_0x171655[_0x69d3('0x60')]){_0x53a32d();}else{return _0x210634[_0x69d3('0x3e')](0x193)[_0x69d3('0x41')]({'message':_0x69d3('0x61')});}})[_0x69d3('0x44')](function(_0x406b6b){_0x53a32d(_0x406b6b);});});};exports[_0x69d3('0x62')]=function isWebrtcLicence(){return compose()[_0x69d3('0x37')](function(_0x186427,_0x223f27,_0x4d26c1){return licenseUtil['getLicense']()[_0x69d3('0x3c')](function(_0x1ead26){if(_0x1ead26[_0x69d3('0x63')]){_0x4d26c1();}else{return _0x223f27[_0x69d3('0x3e')](0x193)['json']({'message':_0x69d3('0x61')});}})[_0x69d3('0x44')](function(_0x41de0a){_0x4d26c1(_0x41de0a);});});};exports[_0x69d3('0x64')]=function(_0x149d44,_0x4c141e,_0x113df3){_0x149d44['isMiddleware']=!![];return _0x113df3();};exports[_0x69d3('0x65')]=function signToken(_0x2e10ad){return signJwt(_0x2e10ad);};exports[_0x69d3('0x66')]=function(_0x777188,_0x3ec0d9){if(!_0x777188['user']){return _0x3ec0d9[_0x69d3('0x3e')](0x194)['json']({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x3dc51d={'payload':{'id':_0x777188['user']['id'],'role':_0x777188['user'][_0x69d3('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x3dc51d)[_0x69d3('0x3c')](function(_0xbd560e){_0x3ec0d9[_0x69d3('0x67')]('motion.token',_0xbd560e);_0x3ec0d9[_0x69d3('0x68')](_0x69d3('0x69'));})[_0x69d3('0x44')](function(_0x358961){return _0x3ec0d9[_0x69d3('0x3e')](0x1f4)['send'](_0x358961);});};exports['retrieveApiKey']=function(_0x5b9b97){if(_['isNil'](_0x5b9b97[_0x69d3('0x55')])||_[_0x69d3('0x6a')](_0x5b9b97[_0x69d3('0x6b')])){return null;}else{return createJwt(_0x5b9b97);}};exports['generateApiKey']=function(_0x261a91){_0x261a91[_0x69d3('0x55')]=generateNonce();_0x261a91[_0x69d3('0x6b')]=generateIssuedAt();return createJwt(_0x261a91);};exports[_0x69d3('0x6c')]=function(_0x2c259a,_0x49f057){var _0x220c05=_0x2c259a['query'][_0x69d3('0x4f')];if(_0x220c05){var _0x1dd23b={'nonce':_0x49f057['apiKeyNonce'],'iat':_0x49f057['apiKeyIat'],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x69d3('0x50')]()};return verifyJwt(_0x220c05,_0x1dd23b)[_0x69d3('0x3c')](function(){return generateApiKey(_0x49f057);});}else{throw{'message':_0x69d3('0x6d')};}};exports[_0x69d3('0x6e')]=function(_0x4ebdf1){var _0x73e5d8=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x73e5d8[_0x69d3('0x6f')](_0x4ebdf1))throw new db['Sequelize']['ValidationError'](_0x69d3('0x70'));return;};exports[_0x69d3('0x71')]=function(_0x1c719e,_0x43ad41,_0x364405){var _0x419334=encryptor['decryptString'](_0x43ad41)[_0x69d3('0x72')](',');for(var _0x12adbc=0x0;_0x12adbc<_0x364405;_0x12adbc++){if(!_0x419334[_0x12adbc])break;if(_0x1c719e[_0x69d3('0x73')]()===_0x419334[_0x12adbc][_0x69d3('0x73')]()){var _0x1f6652=util[_0x69d3('0x74')](_0x69d3('0x75'),_0x364405);if(_0x364405===0x1){_0x1f6652=_0x69d3('0x76');}throw new db['Sequelize']['ValidationError'](_0x1f6652);}}return;};exports['updatePasswordsHistory']=function(_0x5b50b8,_0x410db5){var _0x302054=_0x410db5?encryptor['decryptString'](_0x410db5)['split'](','):[];if(_0x302054[_0x69d3('0x77')]===0x5){_0x302054[_0x69d3('0x78')](-0x1,0x1);}_0x302054[_0x69d3('0x79')](_0x5b50b8);return encryptor[_0x69d3('0x7a')](_0x302054['join'](','));};function signJwt(_0xbf0b94){var _0x3dcfff=BPromise[_0x69d3('0x7b')](jwt[_0x69d3('0x7c')],{'context':jwt});var _0x142393=_0xbf0b94[_0x69d3('0x7d')]||config['secrets']['session'];return new BPromise(function(_0x39b480,_0x3b56de){_0x3dcfff(_0xbf0b94[_0x69d3('0x7e')],_0x142393,_0xbf0b94[_0x69d3('0x7f')])[_0x69d3('0x3c')](function(_0x595b51){_0x39b480(_0x595b51);})[_0x69d3('0x44')](function(_0x282740){_0x3b56de(_0x282740);});});}function verifyJwt(_0x530b82,_0x3dacd6,_0x2c61f4){var _0x421990=BPromise[_0x69d3('0x7b')](jwt['verify'],{'context':jwt});var _0x284bdd=_0x2c61f4||config[_0x69d3('0xc')][_0x69d3('0x80')];return new BPromise(function(_0x487a96,_0x471845){_0x421990(_0x530b82,_0x284bdd,_0x3dacd6)[_0x69d3('0x3c')](function(_0x3531bb){_0x487a96(_0x3531bb);})[_0x69d3('0x44')](function(_0x27d586){_0x471845(_0x27d586);});});}function generateNonce(){return crypto[_0x69d3('0x81')](0x10)[_0x69d3('0x82')](_0x69d3('0x83'));}function generateIssuedAt(){return Math[_0x69d3('0x84')](Date[_0x69d3('0x85')]()/0x3e8)[_0x69d3('0x82')]();}function createJwt(_0x5a8e00){var _0x1ae4af={'payload':{'iat':_0x5a8e00[_0x69d3('0x6b')],'nonce':_0x5a8e00[_0x69d3('0x55')]},'options':{'algorithm':_0x69d3('0x86'),'subject':_0x5a8e00['id'][_0x69d3('0x82')](),'issuer':hardwareConf[_0x69d3('0x50')](),'audience':hardwareConf[_0x69d3('0x50')]()}};return signJwt(_0x1ae4af)[_0x69d3('0x3c')](function(_0x25e817){return{'iat':_0x5a8e00[_0x69d3('0x6b')],'nonce':_0x5a8e00[_0x69d3('0x55')],'token':_0x25e817};});}
\ No newline at end of file
+var _0x94d3=['mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastPauseAt','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControl','hotdesk','interface','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','selectRecallMeCampaign','chatAutoanswer','chatAutoanswerDelay','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','isChatInteractionAuthorized','user','ChatInteraction','findOne','params','closed','disposition','query','status','unmanaged','json','Unmanaged.','Forbidden.','catch','isAuthenticated','use','authorization','startsWith','headers','Basic','User','find','pass','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','then','sub','Setting','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','getLicense','update','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','role','motion.token','/dashboards/general','send','isNil','apiKeyIat','generateApiKey','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','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','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.','unshift','join','promisify','sign','payload','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','session','fullname','name','internal','email','userpic','permissions','md5secret','voicePause'];(function(_0x3a1acb,_0x141a13){var _0x1ec58d=function(_0x3ad750){while(--_0x3ad750){_0x3a1acb['push'](_0x3a1acb['shift']());}};_0x1ec58d(++_0x141a13);}(_0x94d3,0x195));var _0x394d=function(_0xd11f85,_0x45bed1){_0xd11f85=_0xd11f85-0x0;var _0x1f1f7d=_0x94d3[_0xd11f85];return _0x1f1f7d;};'use strict';var db=require(_0x394d('0x0'))['db'];var config=require(_0x394d('0x1'));var hardwareConf=require(_0x394d('0x2'));var licenseUtil=require(_0x394d('0x3'));var encryptor=require(_0x394d('0x4'));var _=require(_0x394d('0x5'));var jwt=require(_0x394d('0x6'));var expressJwt=require(_0x394d('0x7'));var compose=require(_0x394d('0x8'));var basicAuth=require(_0x394d('0x9'));var crypto=require(_0x394d('0xa'));var BPromise=require(_0x394d('0xb'));var util=require(_0x394d('0xc'));var moment=require(_0x394d('0xd'));var validateJwt=expressJwt({'secret':config[_0x394d('0xe')][_0x394d('0xf')]});var userAttributes=['id','role',_0x394d('0x10'),_0x394d('0x11'),_0x394d('0x12'),_0x394d('0x13'),_0x394d('0x14'),_0x394d('0x15'),_0x394d('0x16'),_0x394d('0x17'),'chatPause',_0x394d('0x18'),_0x394d('0x19'),_0x394d('0x1a'),_0x394d('0x1b'),_0x394d('0x1c'),_0x394d('0x1d'),'lastLoginAt',_0x394d('0x1e'),'crudPermissions','allowmessenger',_0x394d('0x1f'),_0x394d('0x20'),_0x394d('0x21'),_0x394d('0x22'),_0x394d('0x23'),_0x394d('0x24'),'phoneBarEnableDtmfTone',_0x394d('0x25'),_0x394d('0x26'),'phoneBarPrefixRequired',_0x394d('0x27'),'phoneBarRemoteControlPort',_0x394d('0x28'),_0x394d('0x29'),'userProfileId',_0x394d('0x2a'),_0x394d('0x2b'),_0x394d('0x2c'),_0x394d('0x2d'),_0x394d('0x2e'),_0x394d('0x2f'),_0x394d('0x30'),_0x394d('0x31'),_0x394d('0x32'),_0x394d('0x33'),'emailAutoanswer',_0x394d('0x34'),_0x394d('0x35'),_0x394d('0x36'),'openchannelAutoanswer',_0x394d('0x37'),_0x394d('0x38'),_0x394d('0x39'),_0x394d('0x3a'),_0x394d('0x3b'),'messengerSoundNotification'];exports[_0x394d('0x3c')]=function(){return this['isAuthenticated'](!![])['use'](function(_0x363227,_0x491dab,_0x172f5d){if(_0x363227[_0x394d('0x3d')]){_0x172f5d();}else{return db[_0x394d('0x3e')][_0x394d('0x3f')]({'where':{'id':_0x363227[_0x394d('0x40')]['id']},'attributes':['id',_0x394d('0x41'),_0x394d('0x42')],'raw':!![]})['then'](function(_0x46f3a5){if(_0x46f3a5&&_0x46f3a5['closed']&&!_0x363227[_0x394d('0x43')]['forceDownload']){return _0x491dab[_0x394d('0x44')](_0x46f3a5[_0x394d('0x42')]===_0x394d('0x45')?0x195:0x193)[_0x394d('0x46')]({'message':_0x46f3a5['disposition']===_0x394d('0x45')?_0x394d('0x47'):_0x394d('0x48')});}else{_0x172f5d();}})[_0x394d('0x49')](function(_0x2c639f){_0x172f5d(_0x2c639f);});}});};exports[_0x394d('0x4a')]=function isAuthenticated(_0x1dfbab){return compose()[_0x394d('0x4b')](function(_0x2dd488,_0x3c2833,_0x396e64){var _0x2b46cb;if(_0x2dd488['headers'][_0x394d('0x4c')]){if(_[_0x394d('0x4d')](_0x2dd488[_0x394d('0x4e')][_0x394d('0x4c')],_0x394d('0x4f'))){var _0x2782d1=basicAuth(_0x2dd488);db[_0x394d('0x50')][_0x394d('0x51')]({'where':{'name':_0x2782d1[_0x394d('0x11')]}})['then'](function(_0x1602d8){if(!_0x1602d8||!_0x1602d8['authenticate'](_0x2782d1[_0x394d('0x52')])){return _0x3c2833[_0x394d('0x44')](0x191)[_0x394d('0x46')]({'message':_0x394d('0x53')});}_0x2dd488[_0x394d('0x3d')]={'id':_0x1602d8['id']};_0x396e64();})[_0x394d('0x49')](function(_0x4e6c99){_0x396e64(_0x4e6c99);});}else if(_[_0x394d('0x4d')](_0x2dd488[_0x394d('0x4e')][_0x394d('0x4c')],_0x394d('0x54'))){validateJwt(_0x2dd488,_0x3c2833,_0x396e64);}else{if(_0x1dfbab){_0x396e64();}else{return _0x3c2833['status'](0x193)[_0x394d('0x46')]({'message':_0x394d('0x55')});}}}else if(_0x2dd488['query'][_0x394d('0x56')]){try{var _0x1940df={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x394d('0x57')]()};verifyJwt(_0x2dd488['query'][_0x394d('0x56')],_0x1940df)[_0x394d('0x58')](function(_0x221420){return db['User'][_0x394d('0x51')]({'where':{'id':_0x221420[_0x394d('0x59')]}})[_0x394d('0x58')](function(_0xe4d540){_0x2b46cb=_0xe4d540;return db[_0x394d('0x5a')]['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x394d('0x5b')],'raw':!![]});})['then'](function(_0x48e2de){if(!_0x2b46cb||!_[_0x394d('0x5c')](_0x2b46cb[_0x394d('0x5d')],_0x221420[_0x394d('0x5e')])){return _0x3c2833[_0x394d('0x44')](0x191)['json']({'message':_0x394d('0x5f')});}if(_0x2b46cb[_0x394d('0x60')]){return _0x3c2833[_0x394d('0x44')](0x191)[_0x394d('0x46')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x2b46cb[_0x394d('0x61')]){if(_0x48e2de[_0x394d('0x5b')]>0x0){if(moment(_0x2b46cb['blockedAt'])[_0x394d('0x62')](_0x48e2de[_0x394d('0x5b')],_0x394d('0x63'))>moment()){return _0x3c2833[_0x394d('0x44')](0x191)[_0x394d('0x46')]({'message':_0x394d('0x64')});}}else{return _0x3c2833['status'](0x191)['json']({'message':_0x394d('0x64')});}}_0x2dd488[_0x394d('0x3d')]={'id':_0x2b46cb['id']};_0x396e64();});})[_0x394d('0x49')](function(){return _0x3c2833[_0x394d('0x44')](0x191)[_0x394d('0x46')]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x594d8f){_0x396e64(_0x594d8f);}}else if(_0x1dfbab){_0x396e64();}else{return _0x3c2833[_0x394d('0x44')](0x193)[_0x394d('0x46')]({'message':_0x394d('0x55')});}})['use'](function(_0x5bf683,_0x4dec37,_0x495a84){if(_0x5bf683[_0x394d('0x3d')]){db[_0x394d('0x50')][_0x394d('0x51')]({'where':{'id':_0x5bf683['user']['id']},'attributes':userAttributes})['then'](function(_0x42ed84){if(!_0x42ed84){return _0x4dec37[_0x394d('0x44')](0x194)[_0x394d('0x46')]({'message':_0x394d('0x65')});}_0x5bf683['user']=_0x42ed84;_0x495a84();})[_0x394d('0x49')](function(_0xeba89f){_0x495a84(_0xeba89f);});}else if(_0x1dfbab){_0x495a84();}else{return _0x4dec37[_0x394d('0x44')](0x194)['json']({'message':_0x394d('0x66')});}});};exports[_0x394d('0x67')]=function canUpdate(){return compose()[_0x394d('0x4b')](function(_0x5c518b,_0x13819f,_0x4a1057){return licenseUtil[_0x394d('0x68')]()[_0x394d('0x58')](function(_0xc003dd){if(_0xc003dd[_0x394d('0x69')]){_0x4a1057();}else{return _0x13819f[_0x394d('0x44')](0x193)[_0x394d('0x46')]({'message':'Forbidden'});}})['catch'](function(_0x324079){_0x4a1057(_0x324079);});});};exports[_0x394d('0x6a')]=function isWebrtcLicence(){return compose()[_0x394d('0x4b')](function(_0x518aee,_0x232334,_0x2e3171){return licenseUtil[_0x394d('0x68')]()['then'](function(_0xceeefe){if(_0xceeefe[_0x394d('0x6b')]){_0x2e3171();}else{return _0x232334[_0x394d('0x44')](0x193)[_0x394d('0x46')]({'message':'Forbidden'});}})[_0x394d('0x49')](function(_0x43936f){_0x2e3171(_0x43936f);});});};exports[_0x394d('0x6c')]=function(_0x5bbe15,_0x1692c2,_0xccf629){_0x5bbe15[_0x394d('0x6c')]=!![];return _0xccf629();};exports[_0x394d('0x6d')]=function signToken(_0x146226){return signJwt(_0x146226);};exports[_0x394d('0x6e')]=function(_0x1f44f4,_0x51be19){if(!_0x1f44f4[_0x394d('0x3d')]){return _0x51be19[_0x394d('0x44')](0x194)[_0x394d('0x46')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x18645={'payload':{'id':_0x1f44f4[_0x394d('0x3d')]['id'],'role':_0x1f44f4[_0x394d('0x3d')][_0x394d('0x6f')]},'options':{'expiresIn':0x15180}};return signJwt(_0x18645)[_0x394d('0x58')](function(_0x5d8b63){_0x51be19['cookie'](_0x394d('0x70'),_0x5d8b63);_0x51be19['redirect'](_0x394d('0x71'));})[_0x394d('0x49')](function(_0x16f9c6){return _0x51be19[_0x394d('0x44')](0x1f4)[_0x394d('0x72')](_0x16f9c6);});};exports['retrieveApiKey']=function(_0x1f792d){if(_[_0x394d('0x73')](_0x1f792d[_0x394d('0x5d')])||_[_0x394d('0x73')](_0x1f792d[_0x394d('0x74')])){return null;}else{return createJwt(_0x1f792d);}};exports[_0x394d('0x75')]=function(_0x3d4cd1){_0x3d4cd1[_0x394d('0x5d')]=generateNonce();_0x3d4cd1[_0x394d('0x74')]=generateIssuedAt();return createJwt(_0x3d4cd1);};exports[_0x394d('0x76')]=function(_0xd3221b,_0x3523cd){var _0x27b453=_0xd3221b['query'][_0x394d('0x56')];if(_0x27b453){var _0x1e0582={'nonce':_0x3523cd[_0x394d('0x5d')],'iat':_0x3523cd[_0x394d('0x74')],'audience':hardwareConf[_0x394d('0x57')](),'issuer':hardwareConf[_0x394d('0x57')]()};return verifyJwt(_0x27b453,_0x1e0582)[_0x394d('0x58')](function(){return generateApiKey(_0x3523cd);});}else{throw{'message':_0x394d('0x77')};}};exports[_0x394d('0x78')]=function(_0x6e202e){var _0x2d4c6d=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x2d4c6d[_0x394d('0x79')](_0x6e202e))throw new db['Sequelize'][(_0x394d('0x7a'))](_0x394d('0x7b'));return;};exports[_0x394d('0x7c')]=function(_0x17beb0,_0xde030e,_0x4518c0){var _0xcaad78=encryptor[_0x394d('0x7d')](_0xde030e)[_0x394d('0x7e')](',');for(var _0x3b22d5=0x0;_0x3b22d5<_0x4518c0;_0x3b22d5++){if(!_0xcaad78[_0x3b22d5])break;if(_0x17beb0[_0x394d('0x7f')]()===_0xcaad78[_0x3b22d5][_0x394d('0x7f')]()){var _0x34c409=util[_0x394d('0x80')](_0x394d('0x81'),_0x4518c0);if(_0x4518c0===0x1){_0x34c409=_0x394d('0x82');}throw new db['Sequelize'][(_0x394d('0x7a'))](_0x34c409);}}return;};exports['updatePasswordsHistory']=function(_0x88987a,_0x101342){var _0x5da450=_0x101342?encryptor[_0x394d('0x7d')](_0x101342)[_0x394d('0x7e')](','):[];if(_0x5da450['length']===0x5){_0x5da450['splice'](-0x1,0x1);}_0x5da450[_0x394d('0x83')](_0x88987a);return encryptor['encryptString'](_0x5da450[_0x394d('0x84')](','));};function signJwt(_0x9f56c8){var _0x53b6cd=BPromise[_0x394d('0x85')](jwt[_0x394d('0x86')],{'context':jwt});var _0x3d0703=_0x9f56c8['secret']||config[_0x394d('0xe')][_0x394d('0xf')];return new BPromise(function(_0x1c2de9,_0x4abeca){_0x53b6cd(_0x9f56c8[_0x394d('0x87')],_0x3d0703,_0x9f56c8['options'])['then'](function(_0x57508a){_0x1c2de9(_0x57508a);})[_0x394d('0x49')](function(_0x359fef){_0x4abeca(_0x359fef);});});}function verifyJwt(_0x56028f,_0x7fcec3,_0x5ebac1){var _0xfdd0cf=BPromise[_0x394d('0x85')](jwt[_0x394d('0x88')],{'context':jwt});var _0x4f7a63=_0x5ebac1||config[_0x394d('0xe')]['session'];return new BPromise(function(_0x1581b3,_0x54ad03){_0xfdd0cf(_0x56028f,_0x4f7a63,_0x7fcec3)[_0x394d('0x58')](function(_0x1989c7){_0x1581b3(_0x1989c7);})['catch'](function(_0x3a1386){_0x54ad03(_0x3a1386);});});}function generateNonce(){return crypto[_0x394d('0x89')](0x10)[_0x394d('0x8a')](_0x394d('0x8b'));}function generateIssuedAt(){return Math[_0x394d('0x8c')](Date[_0x394d('0x8d')]()/0x3e8)[_0x394d('0x8a')]();}function createJwt(_0x17a4cf){var _0x54c091={'payload':{'iat':_0x17a4cf[_0x394d('0x74')],'nonce':_0x17a4cf[_0x394d('0x5d')]},'options':{'algorithm':_0x394d('0x8e'),'subject':_0x17a4cf['id'][_0x394d('0x8a')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x54c091)['then'](function(_0x208fd9){return{'iat':_0x17a4cf[_0x394d('0x74')],'nonce':_0x17a4cf['apiKeyNonce'],'token':_0x208fd9};});}
\ No newline at end of file