Built motion from commit f67b3b02.|2.6.31
[motion2.git] / server / components / auth / service.js
index f90a378..b01478b 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xb8f1=['role','cookie','motion.token','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','test','Sequelize','ValidationError','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','length','splice','unshift','encryptString','join','promisify','secret','session','payload','options','randomBytes','toString','floor','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','express-jwt','composable-middleware','crypto','bluebird','util','moment','secrets','fullname','name','internal','email','userpic','permissions','voicePause','chatPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','isChatInteractionAuthorized','isAuthenticated','user','ChatInteraction','findOne','params','closed','disposition','query','forceDownload','status','unmanaged','Unmanaged.','Forbidden.','catch','authorization','startsWith','headers','find','then','pass','json','Wrong\x20credentials.','Unknown\x20authorization\x20format','apikey','getUuid','User','sub','Setting','allowedLoginAttempts','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','blockedAt','add','minutes','Invalid\x20API\x20access\x20key','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','use','getLicense','Forbidden','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'];(function(_0x3b4371,_0x28b175){var _0x154666=function(_0x4ff3de){while(--_0x4ff3de){_0x3b4371['push'](_0x3b4371['shift']());}};_0x154666(++_0x28b175);}(_0xb8f1,0xb1));var _0x1b8f=function(_0x50a7a1,_0x5ca34e){_0x50a7a1=_0x50a7a1-0x0;var _0x546558=_0xb8f1[_0x50a7a1];return _0x546558;};'use strict';var db=require(_0x1b8f('0x0'))['db'];var config=require(_0x1b8f('0x1'));var hardwareConf=require(_0x1b8f('0x2'));var licenseUtil=require(_0x1b8f('0x3'));var encryptor=require('../encryptor');var _=require(_0x1b8f('0x4'));var jwt=require(_0x1b8f('0x5'));var expressJwt=require(_0x1b8f('0x6'));var compose=require(_0x1b8f('0x7'));var basicAuth=require('basic-auth');var crypto=require(_0x1b8f('0x8'));var BPromise=require(_0x1b8f('0x9'));var util=require(_0x1b8f('0xa'));var moment=require(_0x1b8f('0xb'));var validateJwt=expressJwt({'secret':config[_0x1b8f('0xc')]['session']});var userAttributes=['id','role',_0x1b8f('0xd'),_0x1b8f('0xe'),_0x1b8f('0xf'),_0x1b8f('0x10'),_0x1b8f('0x11'),_0x1b8f('0x12'),'md5secret',_0x1b8f('0x13'),_0x1b8f('0x14'),'mailPause',_0x1b8f('0x15'),_0x1b8f('0x16'),_0x1b8f('0x17'),_0x1b8f('0x18'),_0x1b8f('0x19'),'lastLoginAt',_0x1b8f('0x1a'),_0x1b8f('0x1b'),_0x1b8f('0x1c'),_0x1b8f('0x1d'),_0x1b8f('0x1e'),_0x1b8f('0x1f'),_0x1b8f('0x20'),'phoneBarDnd',_0x1b8f('0x21'),_0x1b8f('0x22'),_0x1b8f('0x23'),_0x1b8f('0x24'),'phoneBarPrefixRequired','phoneBarRemoteControl',_0x1b8f('0x25'),_0x1b8f('0x26'),_0x1b8f('0x27'),_0x1b8f('0x28'),_0x1b8f('0x29'),_0x1b8f('0x2a'),_0x1b8f('0x2b'),'downloadVoiceRecordings',_0x1b8f('0x2c'),'downloadAttachments',_0x1b8f('0x2d'),'selectRecallMeCampaign',_0x1b8f('0x2e'),_0x1b8f('0x2f'),_0x1b8f('0x30'),_0x1b8f('0x31'),'smsAutoanswer','smsAutoanswerDelay',_0x1b8f('0x32'),_0x1b8f('0x33'),_0x1b8f('0x34'),_0x1b8f('0x35'),_0x1b8f('0x36'),_0x1b8f('0x37'),_0x1b8f('0x38')];exports[_0x1b8f('0x39')]=function(){return this[_0x1b8f('0x3a')](!![])['use'](function(_0x512002,_0x34b4a3,_0x48684c){if(_0x512002[_0x1b8f('0x3b')]){_0x48684c();}else{return db[_0x1b8f('0x3c')][_0x1b8f('0x3d')]({'where':{'id':_0x512002[_0x1b8f('0x3e')]['id']},'attributes':['id',_0x1b8f('0x3f'),_0x1b8f('0x40')],'raw':!![]})['then'](function(_0xc9cce8){if(_0xc9cce8&&_0xc9cce8[_0x1b8f('0x3f')]&&!_0x512002[_0x1b8f('0x41')][_0x1b8f('0x42')]){return _0x34b4a3[_0x1b8f('0x43')](_0xc9cce8[_0x1b8f('0x40')]==='unmanaged'?0x195:0x193)['json']({'message':_0xc9cce8[_0x1b8f('0x40')]===_0x1b8f('0x44')?_0x1b8f('0x45'):_0x1b8f('0x46')});}else{_0x48684c();}})[_0x1b8f('0x47')](function(_0x3d672e){_0x48684c(_0x3d672e);});}});};exports['isAuthenticated']=function isAuthenticated(_0x678638){return compose()['use'](function(_0x348307,_0x5add56,_0x452f05){var _0x3a83d8;if(_0x348307['headers'][_0x1b8f('0x48')]){if(_[_0x1b8f('0x49')](_0x348307[_0x1b8f('0x4a')][_0x1b8f('0x48')],'Basic')){var _0x33aa26=basicAuth(_0x348307);db['User'][_0x1b8f('0x4b')]({'where':{'name':_0x33aa26[_0x1b8f('0xe')]}})[_0x1b8f('0x4c')](function(_0x40af71){if(!_0x40af71||!_0x40af71['authenticate'](_0x33aa26[_0x1b8f('0x4d')])){return _0x5add56[_0x1b8f('0x43')](0x191)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x4f')});}_0x348307[_0x1b8f('0x3b')]={'id':_0x40af71['id']};_0x452f05();})[_0x1b8f('0x47')](function(_0x21836d){_0x452f05(_0x21836d);});}else if(_[_0x1b8f('0x49')](_0x348307[_0x1b8f('0x4a')]['authorization'],'Bearer')){validateJwt(_0x348307,_0x5add56,_0x452f05);}else{if(_0x678638){_0x452f05();}else{return _0x5add56['status'](0x193)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x50')});}}}else if(_0x348307[_0x1b8f('0x41')][_0x1b8f('0x51')]){try{var _0x28c1a8={'audience':hardwareConf[_0x1b8f('0x52')](),'issuer':hardwareConf[_0x1b8f('0x52')]()};verifyJwt(_0x348307[_0x1b8f('0x41')][_0x1b8f('0x51')],_0x28c1a8)[_0x1b8f('0x4c')](function(_0x48c09e){return db[_0x1b8f('0x53')][_0x1b8f('0x4b')]({'where':{'id':_0x48c09e[_0x1b8f('0x54')]}})[_0x1b8f('0x4c')](function(_0x57e6c0){_0x3a83d8=_0x57e6c0;return db[_0x1b8f('0x55')][_0x1b8f('0x3d')]({'where':{'id':0x1},'attributes':[_0x1b8f('0x56'),_0x1b8f('0x57')],'raw':!![]});})[_0x1b8f('0x4c')](function(_0x1375ec){if(!_0x3a83d8||!_['isEqual'](_0x3a83d8[_0x1b8f('0x58')],_0x48c09e[_0x1b8f('0x59')])){return _0x5add56[_0x1b8f('0x43')](0x191)['json']({'message':_0x1b8f('0x5a')});}if(_0x3a83d8[_0x1b8f('0x5b')]){return _0x5add56[_0x1b8f('0x43')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}if(_0x3a83d8[_0x1b8f('0x5c')]){if(_0x1375ec[_0x1b8f('0x57')]>0x0){if(moment(_0x3a83d8[_0x1b8f('0x5d')])[_0x1b8f('0x5e')](_0x1375ec[_0x1b8f('0x57')],_0x1b8f('0x5f'))>moment()){return _0x5add56[_0x1b8f('0x43')](0x191)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x60')});}}else{return _0x5add56['status'](0x191)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x60')});}}_0x348307[_0x1b8f('0x3b')]={'id':_0x3a83d8['id']};_0x452f05();});})['catch'](function(){return _0x5add56['status'](0x191)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x60')});});}catch(_0x2a5e00){_0x452f05(_0x2a5e00);}}else if(_0x678638){_0x452f05();}else{return _0x5add56['status'](0x193)[_0x1b8f('0x4e')]({'message':'Unknown\x20authorization\x20format'});}})['use'](function(_0x2c5c02,_0x25c85c,_0x43f9c4){if(_0x2c5c02['user']){db['User']['find']({'where':{'id':_0x2c5c02['user']['id']},'attributes':userAttributes})[_0x1b8f('0x4c')](function(_0x5c334c){if(!_0x5c334c){return _0x25c85c['status'](0x194)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x61')});}_0x2c5c02[_0x1b8f('0x3b')]=_0x5c334c;_0x43f9c4();})[_0x1b8f('0x47')](function(_0x3fbfd4){_0x43f9c4(_0x3fbfd4);});}else if(_0x678638){_0x43f9c4();}else{return _0x25c85c[_0x1b8f('0x43')](0x194)[_0x1b8f('0x4e')]({'message':_0x1b8f('0x62')});}});};exports[_0x1b8f('0x63')]=function canUpdate(){return compose()[_0x1b8f('0x64')](function(_0x383868,_0x2d45a2,_0x111ded){return licenseUtil[_0x1b8f('0x65')]()[_0x1b8f('0x4c')](function(_0x28bba8){if(_0x28bba8['update']){_0x111ded();}else{return _0x2d45a2[_0x1b8f('0x43')](0x193)['json']({'message':_0x1b8f('0x66')});}})['catch'](function(_0x21431b){_0x111ded(_0x21431b);});});};exports[_0x1b8f('0x67')]=function isWebrtcLicence(){return compose()[_0x1b8f('0x64')](function(_0x46b545,_0x55bd29,_0x5b81da){return licenseUtil[_0x1b8f('0x65')]()[_0x1b8f('0x4c')](function(_0x404411){if(_0x404411[_0x1b8f('0x68')]){_0x5b81da();}else{return _0x55bd29[_0x1b8f('0x43')](0x193)['json']({'message':_0x1b8f('0x66')});}})[_0x1b8f('0x47')](function(_0x568522){_0x5b81da(_0x568522);});});};exports['isMiddleware']=function(_0x20def8,_0x9cb8bb,_0x3b23dd){_0x20def8[_0x1b8f('0x69')]=!![];return _0x3b23dd();};exports[_0x1b8f('0x6a')]=function signToken(_0x3b49a4){return signJwt(_0x3b49a4);};exports[_0x1b8f('0x6b')]=function(_0x5e23fb,_0x348c58){if(!_0x5e23fb[_0x1b8f('0x3b')]){return _0x348c58[_0x1b8f('0x43')](0x194)['json']({'message':_0x1b8f('0x6c')});}var _0x30cc00={'payload':{'id':_0x5e23fb[_0x1b8f('0x3b')]['id'],'role':_0x5e23fb[_0x1b8f('0x3b')][_0x1b8f('0x6d')]},'options':{'expiresIn':0x15180}};return signJwt(_0x30cc00)[_0x1b8f('0x4c')](function(_0x55a85f){_0x348c58[_0x1b8f('0x6e')](_0x1b8f('0x6f'),_0x55a85f);_0x348c58[_0x1b8f('0x70')](_0x1b8f('0x71'));})[_0x1b8f('0x47')](function(_0x16b52a){return _0x348c58[_0x1b8f('0x43')](0x1f4)['send'](_0x16b52a);});};exports[_0x1b8f('0x72')]=function(_0x437c9b){if(_[_0x1b8f('0x73')](_0x437c9b[_0x1b8f('0x58')])||_[_0x1b8f('0x73')](_0x437c9b[_0x1b8f('0x74')])){return null;}else{return createJwt(_0x437c9b);}};exports[_0x1b8f('0x75')]=function(_0x576479){_0x576479[_0x1b8f('0x58')]=generateNonce();_0x576479['apiKeyIat']=generateIssuedAt();return createJwt(_0x576479);};exports[_0x1b8f('0x76')]=function(_0x514336,_0x3676dd){var _0x388747=_0x514336[_0x1b8f('0x41')][_0x1b8f('0x51')];if(_0x388747){var _0x2c4e49={'nonce':_0x3676dd[_0x1b8f('0x58')],'iat':_0x3676dd[_0x1b8f('0x74')],'audience':hardwareConf[_0x1b8f('0x52')](),'issuer':hardwareConf[_0x1b8f('0x52')]()};return verifyJwt(_0x388747,_0x2c4e49)['then'](function(){return generateApiKey(_0x3676dd);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports['validatePasswordPattern']=function(_0x234306){var _0x2b3e65=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x2b3e65[_0x1b8f('0x77')](_0x234306))throw new db[(_0x1b8f('0x78'))][(_0x1b8f('0x79'))]('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[_0x1b8f('0x7a')]=function(_0x3cd5bf,_0x9261a,_0x75c52c){var _0x138168=encryptor['decryptString'](_0x9261a)['split'](',');for(var _0x1dda62=0x0;_0x1dda62<_0x75c52c;_0x1dda62++){if(!_0x138168[_0x1dda62])break;if(_0x3cd5bf[_0x1b8f('0x7b')]()===_0x138168[_0x1dda62]['toLowerCase']()){var _0x136992=util[_0x1b8f('0x7c')](_0x1b8f('0x7d'),_0x75c52c);if(_0x75c52c===0x1){_0x136992=_0x1b8f('0x7e');}throw new db[(_0x1b8f('0x78'))][(_0x1b8f('0x79'))](_0x136992);}}return;};exports[_0x1b8f('0x7f')]=function(_0x4d4d84,_0x467570){var _0x23d6d4=_0x467570?encryptor[_0x1b8f('0x80')](_0x467570)[_0x1b8f('0x81')](','):[];if(_0x23d6d4[_0x1b8f('0x82')]===0x5){_0x23d6d4[_0x1b8f('0x83')](-0x1,0x1);}_0x23d6d4[_0x1b8f('0x84')](_0x4d4d84);return encryptor[_0x1b8f('0x85')](_0x23d6d4[_0x1b8f('0x86')](','));};function signJwt(_0x472c08){var _0x2d2d39=BPromise[_0x1b8f('0x87')](jwt['sign'],{'context':jwt});var _0xb62af9=_0x472c08[_0x1b8f('0x88')]||config['secrets'][_0x1b8f('0x89')];return new BPromise(function(_0x14b195,_0x232493){_0x2d2d39(_0x472c08[_0x1b8f('0x8a')],_0xb62af9,_0x472c08[_0x1b8f('0x8b')])[_0x1b8f('0x4c')](function(_0x8fbdcb){_0x14b195(_0x8fbdcb);})[_0x1b8f('0x47')](function(_0x3cf6a9){_0x232493(_0x3cf6a9);});});}function verifyJwt(_0x21e863,_0x1f5bd7,_0xea6b27){var _0x50a1c1=BPromise['promisify'](jwt['verify'],{'context':jwt});var _0x484d2d=_0xea6b27||config[_0x1b8f('0xc')][_0x1b8f('0x89')];return new BPromise(function(_0xb04f70,_0x19ceed){_0x50a1c1(_0x21e863,_0x484d2d,_0x1f5bd7)['then'](function(_0x506aa7){_0xb04f70(_0x506aa7);})[_0x1b8f('0x47')](function(_0x4cb077){_0x19ceed(_0x4cb077);});});}function generateNonce(){return crypto[_0x1b8f('0x8c')](0x10)[_0x1b8f('0x8d')]('hex');}function generateIssuedAt(){return Math[_0x1b8f('0x8e')](Date['now']()/0x3e8)[_0x1b8f('0x8d')]();}function createJwt(_0x459f0d){var _0x2ecd5f={'payload':{'iat':_0x459f0d[_0x1b8f('0x74')],'nonce':_0x459f0d['apiKeyNonce']},'options':{'algorithm':'HS512','subject':_0x459f0d['id'][_0x1b8f('0x8d')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0x1b8f('0x52')]()}};return signJwt(_0x2ecd5f)[_0x1b8f('0x4c')](function(_0xd8ceba){return{'iat':_0x459f0d['apiKeyIat'],'nonce':_0x459f0d[_0x1b8f('0x58')],'token':_0xd8ceba};});}
\ No newline at end of file
+var _0x794a=['downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','messengerSoundNotification','isChatInteractionAuthorized','use','findOne','params','closed','disposition','then','query','forceDownload','status','json','unmanaged','Unmanaged.','catch','isAuthenticated','headers','authorization','startsWith','User','find','authenticate','Wrong\x20credentials.','user','apikey','getUuid','sub','allowedLoginAttempts','isEqual','nonce','disabled','Invalid\x20API\x20access\x20key','blocked','blockDuration','blockedAt','add','minutes','Unknown\x20authorization\x20format','User\x20not\x20found.','update','Forbidden','isWebrtcLicence','getLicense','webrtc','isMiddleware','setTokenCookie','cookie','redirect','/dashboards/general','send','retrieveApiKey','isNil','apiKeyNonce','apiKeyIat','generateApiKey','regenerateApiKey','validatePasswordPattern','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','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','split','encryptString','promisify','secret','secrets','session','options','verify','randomBytes','hex','floor','now','toString','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','fullname','internal','email','userpic','permissions','md5secret','voicePause','mailPause','faxPause','smsPause','openchannelPause','pauseType','lastLoginAt','lastPauseAt','allowmessenger','passwordResetAt','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','wssPort','downloadVoiceRecordings'];(function(_0x568f96,_0x32d489){var _0x5a053a=function(_0x5570ce){while(--_0x5570ce){_0x568f96['push'](_0x568f96['shift']());}};_0x5a053a(++_0x32d489);}(_0x794a,0x16c));var _0xa794=function(_0x254fc1,_0x44441c){_0x254fc1=_0x254fc1-0x0;var _0x2bda1f=_0x794a[_0x254fc1];return _0x2bda1f;};'use strict';var db=require(_0xa794('0x0'))['db'];var config=require(_0xa794('0x1'));var hardwareConf=require(_0xa794('0x2'));var licenseUtil=require(_0xa794('0x3'));var encryptor=require(_0xa794('0x4'));var _=require(_0xa794('0x5'));var jwt=require(_0xa794('0x6'));var expressJwt=require(_0xa794('0x7'));var compose=require(_0xa794('0x8'));var basicAuth=require(_0xa794('0x9'));var crypto=require(_0xa794('0xa'));var BPromise=require(_0xa794('0xb'));var util=require(_0xa794('0xc'));var moment=require(_0xa794('0xd'));var validateJwt=expressJwt({'secret':config['secrets']['session']});var userAttributes=['id','role',_0xa794('0xe'),'name',_0xa794('0xf'),_0xa794('0x10'),_0xa794('0x11'),_0xa794('0x12'),_0xa794('0x13'),_0xa794('0x14'),'chatPause',_0xa794('0x15'),_0xa794('0x16'),_0xa794('0x17'),_0xa794('0x18'),_0xa794('0x19'),'showWebBar',_0xa794('0x1a'),_0xa794('0x1b'),'crudPermissions',_0xa794('0x1c'),_0xa794('0x1d'),'alias',_0xa794('0x1e'),_0xa794('0x1f'),_0xa794('0x20'),_0xa794('0x21'),_0xa794('0x22'),_0xa794('0x23'),_0xa794('0x24'),'phoneBarPrefixRequired',_0xa794('0x25'),_0xa794('0x26'),_0xa794('0x27'),_0xa794('0x28'),_0xa794('0x29'),'privacyEnabled','settingsEnabled',_0xa794('0x2a'),_0xa794('0x2b'),_0xa794('0x2c'),_0xa794('0x2d'),_0xa794('0x2e'),'selectRecallMeCampaign',_0xa794('0x2f'),_0xa794('0x30'),_0xa794('0x31'),_0xa794('0x32'),_0xa794('0x33'),_0xa794('0x34'),'openchannelAutoanswer',_0xa794('0x35'),_0xa794('0x36'),_0xa794('0x37'),_0xa794('0x38'),'whatsappAutoanswerDelay',_0xa794('0x39')];exports[_0xa794('0x3a')]=function(){return this['isAuthenticated'](!![])[_0xa794('0x3b')](function(_0x4066fe,_0x318a78,_0x488905){if(_0x4066fe['user']){_0x488905();}else{return db['ChatInteraction'][_0xa794('0x3c')]({'where':{'id':_0x4066fe[_0xa794('0x3d')]['id']},'attributes':['id',_0xa794('0x3e'),_0xa794('0x3f')],'raw':!![]})[_0xa794('0x40')](function(_0x34c39c){if(_0x34c39c&&_0x34c39c['closed']&&!_0x4066fe[_0xa794('0x41')][_0xa794('0x42')]){return _0x318a78[_0xa794('0x43')](_0x34c39c[_0xa794('0x3f')]==='unmanaged'?0x195:0x193)[_0xa794('0x44')]({'message':_0x34c39c[_0xa794('0x3f')]===_0xa794('0x45')?_0xa794('0x46'):'Forbidden.'});}else{_0x488905();}})[_0xa794('0x47')](function(_0x1644b5){_0x488905(_0x1644b5);});}});};exports[_0xa794('0x48')]=function isAuthenticated(_0x5f5062){return compose()[_0xa794('0x3b')](function(_0x5f1e4d,_0x453d9c,_0x5e29dd){var _0x19e10f;if(_0x5f1e4d[_0xa794('0x49')][_0xa794('0x4a')]){if(_[_0xa794('0x4b')](_0x5f1e4d[_0xa794('0x49')][_0xa794('0x4a')],'Basic')){var _0x48951e=basicAuth(_0x5f1e4d);db[_0xa794('0x4c')][_0xa794('0x4d')]({'where':{'name':_0x48951e['name']}})[_0xa794('0x40')](function(_0x281924){if(!_0x281924||!_0x281924[_0xa794('0x4e')](_0x48951e['pass'])){return _0x453d9c[_0xa794('0x43')](0x191)['json']({'message':_0xa794('0x4f')});}_0x5f1e4d[_0xa794('0x50')]={'id':_0x281924['id']};_0x5e29dd();})[_0xa794('0x47')](function(_0xdc0247){_0x5e29dd(_0xdc0247);});}else if(_['startsWith'](_0x5f1e4d[_0xa794('0x49')]['authorization'],'Bearer')){validateJwt(_0x5f1e4d,_0x453d9c,_0x5e29dd);}else{if(_0x5f5062){_0x5e29dd();}else{return _0x453d9c['status'](0x193)[_0xa794('0x44')]({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x5f1e4d[_0xa794('0x41')][_0xa794('0x51')]){try{var _0x1fdd62={'audience':hardwareConf[_0xa794('0x52')](),'issuer':hardwareConf[_0xa794('0x52')]()};verifyJwt(_0x5f1e4d[_0xa794('0x41')][_0xa794('0x51')],_0x1fdd62)[_0xa794('0x40')](function(_0x61f361){return db['User'][_0xa794('0x4d')]({'where':{'id':_0x61f361[_0xa794('0x53')]}})[_0xa794('0x40')](function(_0x4124e3){_0x19e10f=_0x4124e3;return db['Setting']['findOne']({'where':{'id':0x1},'attributes':[_0xa794('0x54'),'blockDuration'],'raw':!![]});})[_0xa794('0x40')](function(_0x41fc93){if(!_0x19e10f||!_[_0xa794('0x55')](_0x19e10f['apiKeyNonce'],_0x61f361[_0xa794('0x56')])){return _0x453d9c[_0xa794('0x43')](0x191)[_0xa794('0x44')]({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0x19e10f[_0xa794('0x57')]){return _0x453d9c[_0xa794('0x43')](0x191)[_0xa794('0x44')]({'message':_0xa794('0x58')});}if(_0x19e10f[_0xa794('0x59')]){if(_0x41fc93[_0xa794('0x5a')]>0x0){if(moment(_0x19e10f[_0xa794('0x5b')])[_0xa794('0x5c')](_0x41fc93[_0xa794('0x5a')],_0xa794('0x5d'))>moment()){return _0x453d9c[_0xa794('0x43')](0x191)['json']({'message':_0xa794('0x58')});}}else{return _0x453d9c[_0xa794('0x43')](0x191)[_0xa794('0x44')]({'message':'Invalid\x20API\x20access\x20key'});}}_0x5f1e4d[_0xa794('0x50')]={'id':_0x19e10f['id']};_0x5e29dd();});})[_0xa794('0x47')](function(){return _0x453d9c[_0xa794('0x43')](0x191)[_0xa794('0x44')]({'message':_0xa794('0x58')});});}catch(_0x116f3d){_0x5e29dd(_0x116f3d);}}else if(_0x5f5062){_0x5e29dd();}else{return _0x453d9c['status'](0x193)[_0xa794('0x44')]({'message':_0xa794('0x5e')});}})[_0xa794('0x3b')](function(_0x1ec150,_0x519315,_0x13a172){if(_0x1ec150['user']){db[_0xa794('0x4c')][_0xa794('0x4d')]({'where':{'id':_0x1ec150[_0xa794('0x50')]['id']},'attributes':userAttributes})[_0xa794('0x40')](function(_0x38dc18){if(!_0x38dc18){return _0x519315[_0xa794('0x43')](0x194)['json']({'message':_0xa794('0x5f')});}_0x1ec150[_0xa794('0x50')]=_0x38dc18;_0x13a172();})[_0xa794('0x47')](function(_0x4ab739){_0x13a172(_0x4ab739);});}else if(_0x5f5062){_0x13a172();}else{return _0x519315['status'](0x194)['json']({'message':'User\x20object\x20not\x20found.'});}});};exports['canUpdate']=function canUpdate(){return compose()[_0xa794('0x3b')](function(_0x24072b,_0x5414fc,_0x44c5d7){return licenseUtil['getLicense']()['then'](function(_0x535b64){if(_0x535b64[_0xa794('0x60')]){_0x44c5d7();}else{return _0x5414fc[_0xa794('0x43')](0x193)[_0xa794('0x44')]({'message':_0xa794('0x61')});}})['catch'](function(_0xa7f897){_0x44c5d7(_0xa7f897);});});};exports[_0xa794('0x62')]=function isWebrtcLicence(){return compose()[_0xa794('0x3b')](function(_0x21108c,_0x37518e,_0x39cb56){return licenseUtil[_0xa794('0x63')]()['then'](function(_0x11e998){if(_0x11e998[_0xa794('0x64')]){_0x39cb56();}else{return _0x37518e['status'](0x193)[_0xa794('0x44')]({'message':_0xa794('0x61')});}})[_0xa794('0x47')](function(_0x4e65af){_0x39cb56(_0x4e65af);});});};exports[_0xa794('0x65')]=function(_0x1dbbb1,_0x4a2837,_0x442e1c){_0x1dbbb1[_0xa794('0x65')]=!![];return _0x442e1c();};exports['signToken']=function signToken(_0xf52347){return signJwt(_0xf52347);};exports[_0xa794('0x66')]=function(_0x2d1684,_0x6b3453){if(!_0x2d1684[_0xa794('0x50')]){return _0x6b3453['status'](0x194)[_0xa794('0x44')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x5deb19={'payload':{'id':_0x2d1684[_0xa794('0x50')]['id'],'role':_0x2d1684[_0xa794('0x50')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x5deb19)[_0xa794('0x40')](function(_0x3473f3){_0x6b3453[_0xa794('0x67')]('motion.token',_0x3473f3);_0x6b3453[_0xa794('0x68')](_0xa794('0x69'));})[_0xa794('0x47')](function(_0x20a6f5){return _0x6b3453[_0xa794('0x43')](0x1f4)[_0xa794('0x6a')](_0x20a6f5);});};exports[_0xa794('0x6b')]=function(_0x4e0a0f){if(_[_0xa794('0x6c')](_0x4e0a0f[_0xa794('0x6d')])||_[_0xa794('0x6c')](_0x4e0a0f[_0xa794('0x6e')])){return null;}else{return createJwt(_0x4e0a0f);}};exports[_0xa794('0x6f')]=function(_0x48da9e){_0x48da9e[_0xa794('0x6d')]=generateNonce();_0x48da9e['apiKeyIat']=generateIssuedAt();return createJwt(_0x48da9e);};exports[_0xa794('0x70')]=function(_0x1f0c80,_0x1b9f78){var _0x40fb2f=_0x1f0c80[_0xa794('0x41')]['apikey'];if(_0x40fb2f){var _0x309b2a={'nonce':_0x1b9f78[_0xa794('0x6d')],'iat':_0x1b9f78[_0xa794('0x6e')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xa794('0x52')]()};return verifyJwt(_0x40fb2f,_0x309b2a)[_0xa794('0x40')](function(){return generateApiKey(_0x1b9f78);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0xa794('0x71')]=function(_0x3175da){var _0x4071e6=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4071e6['test'](_0x3175da))throw new db['Sequelize'][(_0xa794('0x72'))](_0xa794('0x73'));return;};exports[_0xa794('0x74')]=function(_0x1ff7c2,_0x2cbcc4,_0xa9cb54){var _0xc462a8=encryptor[_0xa794('0x75')](_0x2cbcc4)['split'](',');for(var _0x2912e4=0x0;_0x2912e4<_0xa9cb54;_0x2912e4++){if(!_0xc462a8[_0x2912e4])break;if(_0x1ff7c2[_0xa794('0x76')]()===_0xc462a8[_0x2912e4]['toLowerCase']()){var _0x5a6e28=util[_0xa794('0x77')](_0xa794('0x78'),_0xa9cb54);if(_0xa9cb54===0x1){_0x5a6e28=_0xa794('0x79');}throw new db['Sequelize'][(_0xa794('0x72'))](_0x5a6e28);}}return;};exports[_0xa794('0x7a')]=function(_0x82cb54,_0xb806e5){var _0x19e354=_0xb806e5?encryptor[_0xa794('0x75')](_0xb806e5)[_0xa794('0x7b')](','):[];if(_0x19e354['length']===0x5){_0x19e354['splice'](-0x1,0x1);}_0x19e354['unshift'](_0x82cb54);return encryptor[_0xa794('0x7c')](_0x19e354['join'](','));};function signJwt(_0x4d70fa){var _0x3a12f5=BPromise[_0xa794('0x7d')](jwt['sign'],{'context':jwt});var _0x7e61d9=_0x4d70fa[_0xa794('0x7e')]||config[_0xa794('0x7f')][_0xa794('0x80')];return new BPromise(function(_0x28e5ec,_0x27c70f){_0x3a12f5(_0x4d70fa['payload'],_0x7e61d9,_0x4d70fa[_0xa794('0x81')])[_0xa794('0x40')](function(_0x171e49){_0x28e5ec(_0x171e49);})[_0xa794('0x47')](function(_0x214b45){_0x27c70f(_0x214b45);});});}function verifyJwt(_0x1b37fd,_0x4e7221,_0x33e633){var _0x42d883=BPromise[_0xa794('0x7d')](jwt[_0xa794('0x82')],{'context':jwt});var _0x148bcf=_0x33e633||config[_0xa794('0x7f')][_0xa794('0x80')];return new BPromise(function(_0x42719b,_0x41f3f5){_0x42d883(_0x1b37fd,_0x148bcf,_0x4e7221)[_0xa794('0x40')](function(_0x296da5){_0x42719b(_0x296da5);})[_0xa794('0x47')](function(_0x273cd3){_0x41f3f5(_0x273cd3);});});}function generateNonce(){return crypto[_0xa794('0x83')](0x10)['toString'](_0xa794('0x84'));}function generateIssuedAt(){return Math[_0xa794('0x85')](Date[_0xa794('0x86')]()/0x3e8)[_0xa794('0x87')]();}function createJwt(_0xa9c8d2){var _0x4aaf19={'payload':{'iat':_0xa9c8d2['apiKeyIat'],'nonce':_0xa9c8d2[_0xa794('0x6d')]},'options':{'algorithm':'HS512','subject':_0xa9c8d2['id'][_0xa794('0x87')](),'issuer':hardwareConf[_0xa794('0x52')](),'audience':hardwareConf[_0xa794('0x52')]()}};return signJwt(_0x4aaf19)['then'](function(_0x2a086f){return{'iat':_0xa9c8d2[_0xa794('0x6e')],'nonce':_0xa9c8d2[_0xa794('0x6d')],'token':_0x2a086f};});}
\ No newline at end of file