Built motion from commit d301b742.|2.6.29
[motion2.git] / server / components / auth / service.js
index 559643e..ac71f64 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x3c7f=['sign','payload','toString','hex','now','HS512','../../mysqldb','../../config/license/hardware','../encryptor','lodash','jsonwebtoken','composable-middleware','basic-auth','bluebird','util','moment','secrets','session','role','name','internal','userpic','permissions','voicePause','chatPause','mailPause','faxPause','openchannelPause','pauseType','lastLoginAt','lastPauseAt','crudPermissions','passwordResetAt','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','userProfileId','privacyEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','selectRecallMeCampaign','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswerDelay','messengerSoundNotification','use','findOne','params','then','closed','query','forceDownload','status','unmanaged','json','disposition','Unmanaged.','Forbidden.','isAuthenticated','startsWith','headers','Basic','User','find','authenticate','pass','Wrong\x20credentials.','user','catch','Bearer','Unknown\x20authorization\x20format','getUuid','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','blocked','add','minutes','Invalid\x20API\x20access\x20key','User\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','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','regenerateApiKey','apikey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','Sequelize','ValidationError','validatePasswordHistory','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','decryptString','splice','encryptString','promisify'];(function(_0x5d89d7,_0x3ab204){var _0x8e4ee0=function(_0x4884f0){while(--_0x4884f0){_0x5d89d7['push'](_0x5d89d7['shift']());}};_0x8e4ee0(++_0x3ab204);}(_0x3c7f,0x10a));var _0xf3c7=function(_0x33c797,_0x430c30){_0x33c797=_0x33c797-0x0;var _0x514ff7=_0x3c7f[_0x33c797];return _0x514ff7;};'use strict';var db=require(_0xf3c7('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0xf3c7('0x1'));var licenseUtil=require('../../config/license/util');var encryptor=require(_0xf3c7('0x2'));var _=require(_0xf3c7('0x3'));var jwt=require(_0xf3c7('0x4'));var expressJwt=require('express-jwt');var compose=require(_0xf3c7('0x5'));var basicAuth=require(_0xf3c7('0x6'));var crypto=require('crypto');var BPromise=require(_0xf3c7('0x7'));var util=require(_0xf3c7('0x8'));var moment=require(_0xf3c7('0x9'));var validateJwt=expressJwt({'secret':config[_0xf3c7('0xa')][_0xf3c7('0xb')]});var userAttributes=['id',_0xf3c7('0xc'),'fullname',_0xf3c7('0xd'),_0xf3c7('0xe'),'email',_0xf3c7('0xf'),_0xf3c7('0x10'),'md5secret',_0xf3c7('0x11'),_0xf3c7('0x12'),_0xf3c7('0x13'),_0xf3c7('0x14'),'smsPause',_0xf3c7('0x15'),_0xf3c7('0x16'),'showWebBar',_0xf3c7('0x17'),_0xf3c7('0x18'),_0xf3c7('0x19'),'allowmessenger',_0xf3c7('0x1a'),'alias',_0xf3c7('0x1b'),_0xf3c7('0x1c'),'phoneBarDnd','phoneBarEnableRecording',_0xf3c7('0x1d'),_0xf3c7('0x1e'),_0xf3c7('0x1f'),_0xf3c7('0x20'),_0xf3c7('0x21'),_0xf3c7('0x22'),_0xf3c7('0x23'),'interface',_0xf3c7('0x24'),_0xf3c7('0x25'),'settingsEnabled',_0xf3c7('0x26'),_0xf3c7('0x27'),_0xf3c7('0x28'),_0xf3c7('0x29'),'ignorePauseForPreviewCalls',_0xf3c7('0x2a'),'chatAutoanswer',_0xf3c7('0x2b'),_0xf3c7('0x2c'),_0xf3c7('0x2d'),_0xf3c7('0x2e'),_0xf3c7('0x2f'),_0xf3c7('0x30'),_0xf3c7('0x31'),'faxAutoanswer',_0xf3c7('0x32'),'whatsappAutoanswer','whatsappAutoanswerDelay',_0xf3c7('0x33')];exports['isChatInteractionAuthorized']=function(){return this['isAuthenticated'](!![])[_0xf3c7('0x34')](function(_0x2a479c,_0x483c1e,_0x161c2f){if(_0x2a479c['user']){_0x161c2f();}else{return db['ChatInteraction'][_0xf3c7('0x35')]({'where':{'id':_0x2a479c[_0xf3c7('0x36')]['id']},'attributes':['id','closed','disposition'],'raw':!![]})[_0xf3c7('0x37')](function(_0x475050){if(_0x475050&&_0x475050[_0xf3c7('0x38')]&&!_0x2a479c[_0xf3c7('0x39')][_0xf3c7('0x3a')]){return _0x483c1e[_0xf3c7('0x3b')](_0x475050['disposition']===_0xf3c7('0x3c')?0x195:0x193)[_0xf3c7('0x3d')]({'message':_0x475050[_0xf3c7('0x3e')]===_0xf3c7('0x3c')?_0xf3c7('0x3f'):_0xf3c7('0x40')});}else{_0x161c2f();}})['catch'](function(_0x2bddd0){_0x161c2f(_0x2bddd0);});}});};exports[_0xf3c7('0x41')]=function isAuthenticated(_0x49a5c7){return compose()['use'](function(_0x2a82c6,_0x21334e,_0x41c940){var _0x2f238f;if(_0x2a82c6['headers']['authorization']){if(_[_0xf3c7('0x42')](_0x2a82c6[_0xf3c7('0x43')]['authorization'],_0xf3c7('0x44'))){var _0x1270ca=basicAuth(_0x2a82c6);db[_0xf3c7('0x45')][_0xf3c7('0x46')]({'where':{'name':_0x1270ca[_0xf3c7('0xd')]}})[_0xf3c7('0x37')](function(_0x5291bf){if(!_0x5291bf||!_0x5291bf[_0xf3c7('0x47')](_0x1270ca[_0xf3c7('0x48')])){return _0x21334e[_0xf3c7('0x3b')](0x191)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x49')});}_0x2a82c6[_0xf3c7('0x4a')]={'id':_0x5291bf['id']};_0x41c940();})[_0xf3c7('0x4b')](function(_0x29ba4e){_0x41c940(_0x29ba4e);});}else if(_[_0xf3c7('0x42')](_0x2a82c6[_0xf3c7('0x43')]['authorization'],_0xf3c7('0x4c'))){validateJwt(_0x2a82c6,_0x21334e,_0x41c940);}else{if(_0x49a5c7){_0x41c940();}else{return _0x21334e['status'](0x193)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x4d')});}}}else if(_0x2a82c6['query']['apikey']){try{var _0x3b51a3={'audience':hardwareConf[_0xf3c7('0x4e')](),'issuer':hardwareConf[_0xf3c7('0x4e')]()};verifyJwt(_0x2a82c6[_0xf3c7('0x39')]['apikey'],_0x3b51a3)[_0xf3c7('0x37')](function(_0x2c4e30){return db['User'][_0xf3c7('0x46')]({'where':{'id':_0x2c4e30['sub']}})['then'](function(_0x23fe6a){_0x2f238f=_0x23fe6a;return db[_0xf3c7('0x4f')][_0xf3c7('0x35')]({'where':{'id':0x1},'attributes':[_0xf3c7('0x50'),_0xf3c7('0x51')],'raw':!![]});})[_0xf3c7('0x37')](function(_0x4acd0a){if(!_0x2f238f||!_[_0xf3c7('0x52')](_0x2f238f[_0xf3c7('0x53')],_0x2c4e30[_0xf3c7('0x54')])){return _0x21334e[_0xf3c7('0x3b')](0x191)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x55')});}if(_0x2f238f['disabled']){return _0x21334e[_0xf3c7('0x3b')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}if(_0x2f238f[_0xf3c7('0x56')]){if(_0x4acd0a[_0xf3c7('0x51')]>0x0){if(moment(_0x2f238f['blockedAt'])[_0xf3c7('0x57')](_0x4acd0a[_0xf3c7('0x51')],_0xf3c7('0x58'))>moment()){return _0x21334e[_0xf3c7('0x3b')](0x191)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x59')});}}else{return _0x21334e['status'](0x191)['json']({'message':_0xf3c7('0x59')});}}_0x2a82c6[_0xf3c7('0x4a')]={'id':_0x2f238f['id']};_0x41c940();});})[_0xf3c7('0x4b')](function(){return _0x21334e[_0xf3c7('0x3b')](0x191)['json']({'message':_0xf3c7('0x59')});});}catch(_0x465170){_0x41c940(_0x465170);}}else if(_0x49a5c7){_0x41c940();}else{return _0x21334e['status'](0x193)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x4d')});}})['use'](function(_0x1a5476,_0x25f3fb,_0x184fa0){if(_0x1a5476[_0xf3c7('0x4a')]){db[_0xf3c7('0x45')]['find']({'where':{'id':_0x1a5476['user']['id']},'attributes':userAttributes})['then'](function(_0x14dd8d){if(!_0x14dd8d){return _0x25f3fb[_0xf3c7('0x3b')](0x194)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x5a')});}_0x1a5476['user']=_0x14dd8d;_0x184fa0();})[_0xf3c7('0x4b')](function(_0x5c8761){_0x184fa0(_0x5c8761);});}else if(_0x49a5c7){_0x184fa0();}else{return _0x25f3fb[_0xf3c7('0x3b')](0x194)[_0xf3c7('0x3d')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0xf3c7('0x5b')]=function canUpdate(){return compose()[_0xf3c7('0x34')](function(_0x3a1d5c,_0x261ed4,_0xd17ca5){return licenseUtil[_0xf3c7('0x5c')]()[_0xf3c7('0x37')](function(_0xf16f50){if(_0xf16f50[_0xf3c7('0x5d')]){_0xd17ca5();}else{return _0x261ed4[_0xf3c7('0x3b')](0x193)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x5e')});}})[_0xf3c7('0x4b')](function(_0x4e3719){_0xd17ca5(_0x4e3719);});});};exports[_0xf3c7('0x5f')]=function isWebrtcLicence(){return compose()['use'](function(_0x32f12e,_0x39c8f,_0x2561c9){return licenseUtil[_0xf3c7('0x5c')]()['then'](function(_0x52a4a1){if(_0x52a4a1[_0xf3c7('0x60')]){_0x2561c9();}else{return _0x39c8f[_0xf3c7('0x3b')](0x193)['json']({'message':_0xf3c7('0x5e')});}})[_0xf3c7('0x4b')](function(_0x4056e5){_0x2561c9(_0x4056e5);});});};exports[_0xf3c7('0x61')]=function(_0x31ba9c,_0x484dd9,_0x29bde9){_0x31ba9c[_0xf3c7('0x61')]=!![];return _0x29bde9();};exports[_0xf3c7('0x62')]=function signToken(_0xf3030c){return signJwt(_0xf3030c);};exports[_0xf3c7('0x63')]=function(_0xf4ae7d,_0x20b068){if(!_0xf4ae7d['user']){return _0x20b068['status'](0x194)[_0xf3c7('0x3d')]({'message':_0xf3c7('0x64')});}var _0x3a444d={'payload':{'id':_0xf4ae7d['user']['id'],'role':_0xf4ae7d[_0xf3c7('0x4a')][_0xf3c7('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0x3a444d)[_0xf3c7('0x37')](function(_0xd1a1cf){_0x20b068[_0xf3c7('0x65')](_0xf3c7('0x66'),_0xd1a1cf);_0x20b068['redirect'](_0xf3c7('0x67'));})[_0xf3c7('0x4b')](function(_0x46d78a){return _0x20b068[_0xf3c7('0x3b')](0x1f4)[_0xf3c7('0x68')](_0x46d78a);});};exports[_0xf3c7('0x69')]=function(_0x47b72c){if(_[_0xf3c7('0x6a')](_0x47b72c[_0xf3c7('0x53')])||_[_0xf3c7('0x6a')](_0x47b72c[_0xf3c7('0x6b')])){return null;}else{return createJwt(_0x47b72c);}};exports['generateApiKey']=function(_0x2bdb69){_0x2bdb69['apiKeyNonce']=generateNonce();_0x2bdb69[_0xf3c7('0x6b')]=generateIssuedAt();return createJwt(_0x2bdb69);};exports[_0xf3c7('0x6c')]=function(_0x11a364,_0x3c5054){var _0x352a1c=_0x11a364[_0xf3c7('0x39')][_0xf3c7('0x6d')];if(_0x352a1c){var _0xd1d9f3={'nonce':_0x3c5054['apiKeyNonce'],'iat':_0x3c5054[_0xf3c7('0x6b')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x352a1c,_0xd1d9f3)[_0xf3c7('0x37')](function(){return generateApiKey(_0x3c5054);});}else{throw{'message':_0xf3c7('0x6e')};}};exports[_0xf3c7('0x6f')]=function(_0x40b9d5){var _0x40b162=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x40b162['test'](_0x40b9d5))throw new db[(_0xf3c7('0x70'))][(_0xf3c7('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[_0xf3c7('0x72')]=function(_0x3eb2da,_0x16bc52,_0xfc93fc){var _0x48d12e=encryptor['decryptString'](_0x16bc52)[_0xf3c7('0x73')](',');for(var _0x5ebfcb=0x0;_0x5ebfcb<_0xfc93fc;_0x5ebfcb++){if(!_0x48d12e[_0x5ebfcb])break;if(_0x3eb2da[_0xf3c7('0x74')]()===_0x48d12e[_0x5ebfcb][_0xf3c7('0x74')]()){var _0x1af88f=util[_0xf3c7('0x75')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0xfc93fc);if(_0xfc93fc===0x1){_0x1af88f=_0xf3c7('0x76');}throw new db[(_0xf3c7('0x70'))][(_0xf3c7('0x71'))](_0x1af88f);}}return;};exports[_0xf3c7('0x77')]=function(_0x42d778,_0xd05d19){var _0x279e53=_0xd05d19?encryptor[_0xf3c7('0x78')](_0xd05d19)['split'](','):[];if(_0x279e53['length']===0x5){_0x279e53[_0xf3c7('0x79')](-0x1,0x1);}_0x279e53['unshift'](_0x42d778);return encryptor[_0xf3c7('0x7a')](_0x279e53['join'](','));};function signJwt(_0x211193){var _0x2c28e8=BPromise[_0xf3c7('0x7b')](jwt[_0xf3c7('0x7c')],{'context':jwt});var _0x59735b=_0x211193['secret']||config[_0xf3c7('0xa')][_0xf3c7('0xb')];return new BPromise(function(_0x17744c,_0x4820c8){_0x2c28e8(_0x211193[_0xf3c7('0x7d')],_0x59735b,_0x211193['options'])[_0xf3c7('0x37')](function(_0x422598){_0x17744c(_0x422598);})[_0xf3c7('0x4b')](function(_0x2ed98c){_0x4820c8(_0x2ed98c);});});}function verifyJwt(_0x5d7b2f,_0x1c5061,_0x523607){var _0x6f9340=BPromise[_0xf3c7('0x7b')](jwt['verify'],{'context':jwt});var _0x401a9f=_0x523607||config[_0xf3c7('0xa')][_0xf3c7('0xb')];return new BPromise(function(_0x496d68,_0x1ac746){_0x6f9340(_0x5d7b2f,_0x401a9f,_0x1c5061)['then'](function(_0x55a7ae){_0x496d68(_0x55a7ae);})[_0xf3c7('0x4b')](function(_0x1fb613){_0x1ac746(_0x1fb613);});});}function generateNonce(){return crypto['randomBytes'](0x10)[_0xf3c7('0x7e')](_0xf3c7('0x7f'));}function generateIssuedAt(){return Math['floor'](Date[_0xf3c7('0x80')]()/0x3e8)[_0xf3c7('0x7e')]();}function createJwt(_0x114306){var _0x1abf01={'payload':{'iat':_0x114306[_0xf3c7('0x6b')],'nonce':_0x114306[_0xf3c7('0x53')]},'options':{'algorithm':_0xf3c7('0x81'),'subject':_0x114306['id']['toString'](),'issuer':hardwareConf[_0xf3c7('0x4e')](),'audience':hardwareConf[_0xf3c7('0x4e')]()}};return signJwt(_0x1abf01)[_0xf3c7('0x37')](function(_0x38bef7){return{'iat':_0x114306[_0xf3c7('0x6b')],'nonce':_0x114306[_0xf3c7('0x53')],'token':_0x38bef7};});}
\ No newline at end of file
+var _0xcdde=['smsPause','openchannelPause','showWebBar','lastPauseAt','crudPermissions','allowmessenger','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControlPort','hotdesk','interface','privacyEnabled','settingsEnabled','downloadVoiceRecordings','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','selectRecallMeCampaign','smsAutoanswer','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','isChatInteractionAuthorized','isAuthenticated','use','ChatInteraction','params','closed','disposition','then','query','forceDownload','status','unmanaged','json','Unmanaged.','catch','headers','authorization','startsWith','Basic','User','authenticate','pass','Wrong\x20credentials.','user','Unknown\x20authorization\x20format','getUuid','apikey','find','findOne','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','add','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','isWebrtcLicence','getLicense','webrtc','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','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~!@#$%^&-_=+[{]}.','decryptString','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','Sequelize','updatePasswordsHistory','split','length','unshift','encryptString','join','promisify','sign','payload','options','verify','hex','floor','now','HS512','toString','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','express-jwt','basic-auth','crypto','bluebird','util','moment','secrets','session','role','fullname','name','email','permissions','md5secret','voicePause','chatPause','faxPause'];(function(_0xd14ee9,_0x395763){var _0x50ebcc=function(_0x4c5d5c){while(--_0x4c5d5c){_0xd14ee9['push'](_0xd14ee9['shift']());}};_0x50ebcc(++_0x395763);}(_0xcdde,0x17e));var _0xecdd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcdde[_0x3dd15e];return _0x231fd0;};'use strict';var db=require(_0xecdd('0x0'))['db'];var config=require(_0xecdd('0x1'));var hardwareConf=require(_0xecdd('0x2'));var licenseUtil=require(_0xecdd('0x3'));var encryptor=require('../encryptor');var _=require(_0xecdd('0x4'));var jwt=require(_0xecdd('0x5'));var expressJwt=require(_0xecdd('0x6'));var compose=require('composable-middleware');var basicAuth=require(_0xecdd('0x7'));var crypto=require(_0xecdd('0x8'));var BPromise=require(_0xecdd('0x9'));var util=require(_0xecdd('0xa'));var moment=require(_0xecdd('0xb'));var validateJwt=expressJwt({'secret':config[_0xecdd('0xc')][_0xecdd('0xd')]});var userAttributes=['id',_0xecdd('0xe'),_0xecdd('0xf'),_0xecdd('0x10'),'internal',_0xecdd('0x11'),'userpic',_0xecdd('0x12'),_0xecdd('0x13'),_0xecdd('0x14'),_0xecdd('0x15'),'mailPause',_0xecdd('0x16'),_0xecdd('0x17'),_0xecdd('0x18'),'pauseType',_0xecdd('0x19'),'lastLoginAt',_0xecdd('0x1a'),_0xecdd('0x1b'),_0xecdd('0x1c'),'passwordResetAt','alias',_0xecdd('0x1d'),_0xecdd('0x1e'),_0xecdd('0x1f'),'phoneBarEnableRecording',_0xecdd('0x20'),_0xecdd('0x21'),_0xecdd('0x22'),_0xecdd('0x23'),'phoneBarRemoteControl',_0xecdd('0x24'),_0xecdd('0x25'),_0xecdd('0x26'),'userProfileId',_0xecdd('0x27'),_0xecdd('0x28'),'wssPort',_0xecdd('0x29'),_0xecdd('0x2a'),'downloadAttachments',_0xecdd('0x2b'),_0xecdd('0x2c'),'chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay',_0xecdd('0x2d'),'smsAutoanswerDelay',_0xecdd('0x2e'),_0xecdd('0x2f'),_0xecdd('0x30'),_0xecdd('0x31'),_0xecdd('0x32'),_0xecdd('0x33'),_0xecdd('0x34')];exports[_0xecdd('0x35')]=function(){return this[_0xecdd('0x36')](!![])[_0xecdd('0x37')](function(_0x357519,_0x113c3f,_0x5f5248){if(_0x357519['user']){_0x5f5248();}else{return db[_0xecdd('0x38')]['findOne']({'where':{'id':_0x357519[_0xecdd('0x39')]['id']},'attributes':['id',_0xecdd('0x3a'),_0xecdd('0x3b')],'raw':!![]})[_0xecdd('0x3c')](function(_0x595f61){if(_0x595f61&&_0x595f61['closed']&&!_0x357519[_0xecdd('0x3d')][_0xecdd('0x3e')]){return _0x113c3f[_0xecdd('0x3f')](_0x595f61[_0xecdd('0x3b')]===_0xecdd('0x40')?0x195:0x193)[_0xecdd('0x41')]({'message':_0x595f61['disposition']==='unmanaged'?_0xecdd('0x42'):'Forbidden.'});}else{_0x5f5248();}})[_0xecdd('0x43')](function(_0x3c1884){_0x5f5248(_0x3c1884);});}});};exports[_0xecdd('0x36')]=function isAuthenticated(_0x2b8119){return compose()[_0xecdd('0x37')](function(_0x2c1419,_0x10f4dc,_0xf4fcdb){var _0xf9c4fd;if(_0x2c1419[_0xecdd('0x44')][_0xecdd('0x45')]){if(_[_0xecdd('0x46')](_0x2c1419['headers'][_0xecdd('0x45')],_0xecdd('0x47'))){var _0x9d21fc=basicAuth(_0x2c1419);db[_0xecdd('0x48')]['find']({'where':{'name':_0x9d21fc['name']}})[_0xecdd('0x3c')](function(_0x1f10d4){if(!_0x1f10d4||!_0x1f10d4[_0xecdd('0x49')](_0x9d21fc[_0xecdd('0x4a')])){return _0x10f4dc[_0xecdd('0x3f')](0x191)['json']({'message':_0xecdd('0x4b')});}_0x2c1419[_0xecdd('0x4c')]={'id':_0x1f10d4['id']};_0xf4fcdb();})[_0xecdd('0x43')](function(_0x1074bc){_0xf4fcdb(_0x1074bc);});}else if(_[_0xecdd('0x46')](_0x2c1419[_0xecdd('0x44')][_0xecdd('0x45')],'Bearer')){validateJwt(_0x2c1419,_0x10f4dc,_0xf4fcdb);}else{if(_0x2b8119){_0xf4fcdb();}else{return _0x10f4dc[_0xecdd('0x3f')](0x193)[_0xecdd('0x41')]({'message':_0xecdd('0x4d')});}}}else if(_0x2c1419[_0xecdd('0x3d')]['apikey']){try{var _0x3c0096={'audience':hardwareConf[_0xecdd('0x4e')](),'issuer':hardwareConf[_0xecdd('0x4e')]()};verifyJwt(_0x2c1419[_0xecdd('0x3d')][_0xecdd('0x4f')],_0x3c0096)['then'](function(_0x3d1242){return db[_0xecdd('0x48')][_0xecdd('0x50')]({'where':{'id':_0x3d1242['sub']}})['then'](function(_0x11234b){_0xf9c4fd=_0x11234b;return db['Setting'][_0xecdd('0x51')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xecdd('0x52')],'raw':!![]});})['then'](function(_0x47b53b){if(!_0xf9c4fd||!_['isEqual'](_0xf9c4fd[_0xecdd('0x53')],_0x3d1242[_0xecdd('0x54')])){return _0x10f4dc[_0xecdd('0x3f')](0x191)[_0xecdd('0x41')]({'message':_0xecdd('0x55')});}if(_0xf9c4fd[_0xecdd('0x56')]){return _0x10f4dc[_0xecdd('0x3f')](0x191)[_0xecdd('0x41')]({'message':_0xecdd('0x57')});}if(_0xf9c4fd[_0xecdd('0x58')]){if(_0x47b53b['blockDuration']>0x0){if(moment(_0xf9c4fd['blockedAt'])[_0xecdd('0x59')](_0x47b53b[_0xecdd('0x52')],_0xecdd('0x5a'))>moment()){return _0x10f4dc['status'](0x191)[_0xecdd('0x41')]({'message':_0xecdd('0x57')});}}else{return _0x10f4dc[_0xecdd('0x3f')](0x191)[_0xecdd('0x41')]({'message':'Invalid\x20API\x20access\x20key'});}}_0x2c1419[_0xecdd('0x4c')]={'id':_0xf9c4fd['id']};_0xf4fcdb();});})[_0xecdd('0x43')](function(){return _0x10f4dc[_0xecdd('0x3f')](0x191)['json']({'message':_0xecdd('0x57')});});}catch(_0x212820){_0xf4fcdb(_0x212820);}}else if(_0x2b8119){_0xf4fcdb();}else{return _0x10f4dc[_0xecdd('0x3f')](0x193)[_0xecdd('0x41')]({'message':'Unknown\x20authorization\x20format'});}})[_0xecdd('0x37')](function(_0x751ac,_0x88db41,_0x147dc6){if(_0x751ac['user']){db[_0xecdd('0x48')]['find']({'where':{'id':_0x751ac['user']['id']},'attributes':userAttributes})[_0xecdd('0x3c')](function(_0x3c547e){if(!_0x3c547e){return _0x88db41[_0xecdd('0x3f')](0x194)[_0xecdd('0x41')]({'message':_0xecdd('0x5b')});}_0x751ac[_0xecdd('0x4c')]=_0x3c547e;_0x147dc6();})[_0xecdd('0x43')](function(_0x34e95e){_0x147dc6(_0x34e95e);});}else if(_0x2b8119){_0x147dc6();}else{return _0x88db41[_0xecdd('0x3f')](0x194)[_0xecdd('0x41')]({'message':_0xecdd('0x5c')});}});};exports['canUpdate']=function canUpdate(){return compose()['use'](function(_0x596c12,_0x194ed9,_0x221a7b){return licenseUtil['getLicense']()[_0xecdd('0x3c')](function(_0x535398){if(_0x535398['update']){_0x221a7b();}else{return _0x194ed9[_0xecdd('0x3f')](0x193)[_0xecdd('0x41')]({'message':'Forbidden'});}})[_0xecdd('0x43')](function(_0x103283){_0x221a7b(_0x103283);});});};exports[_0xecdd('0x5d')]=function isWebrtcLicence(){return compose()[_0xecdd('0x37')](function(_0x4acf3b,_0x2cb3f6,_0x2e9915){return licenseUtil[_0xecdd('0x5e')]()['then'](function(_0x4a54c7){if(_0x4a54c7[_0xecdd('0x5f')]){_0x2e9915();}else{return _0x2cb3f6['status'](0x193)[_0xecdd('0x41')]({'message':_0xecdd('0x60')});}})[_0xecdd('0x43')](function(_0x180ca0){_0x2e9915(_0x180ca0);});});};exports['isMiddleware']=function(_0x11c285,_0x5b8bef,_0x123f52){_0x11c285[_0xecdd('0x61')]=!![];return _0x123f52();};exports[_0xecdd('0x62')]=function signToken(_0x358f83){return signJwt(_0x358f83);};exports[_0xecdd('0x63')]=function(_0x3595d2,_0xb25adb){if(!_0x3595d2[_0xecdd('0x4c')]){return _0xb25adb['status'](0x194)[_0xecdd('0x41')]({'message':_0xecdd('0x64')});}var _0x370e59={'payload':{'id':_0x3595d2[_0xecdd('0x4c')]['id'],'role':_0x3595d2[_0xecdd('0x4c')][_0xecdd('0xe')]},'options':{'expiresIn':0x15180}};return signJwt(_0x370e59)[_0xecdd('0x3c')](function(_0x265457){_0xb25adb[_0xecdd('0x65')](_0xecdd('0x66'),_0x265457);_0xb25adb[_0xecdd('0x67')](_0xecdd('0x68'));})[_0xecdd('0x43')](function(_0x34a87a){return _0xb25adb['status'](0x1f4)['send'](_0x34a87a);});};exports[_0xecdd('0x69')]=function(_0x3e86e8){if(_[_0xecdd('0x6a')](_0x3e86e8[_0xecdd('0x53')])||_['isNil'](_0x3e86e8[_0xecdd('0x6b')])){return null;}else{return createJwt(_0x3e86e8);}};exports[_0xecdd('0x6c')]=function(_0x56fc6d){_0x56fc6d[_0xecdd('0x53')]=generateNonce();_0x56fc6d[_0xecdd('0x6b')]=generateIssuedAt();return createJwt(_0x56fc6d);};exports['regenerateApiKey']=function(_0x3fb48e,_0x39d91e){var _0x24cc4d=_0x3fb48e[_0xecdd('0x3d')]['apikey'];if(_0x24cc4d){var _0x16ae74={'nonce':_0x39d91e[_0xecdd('0x53')],'iat':_0x39d91e['apiKeyIat'],'audience':hardwareConf[_0xecdd('0x4e')](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x24cc4d,_0x16ae74)['then'](function(){return generateApiKey(_0x39d91e);});}else{throw{'message':_0xecdd('0x6d')};}};exports[_0xecdd('0x6e')]=function(_0x47279f){var _0x147c39=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x147c39[_0xecdd('0x6f')](_0x47279f))throw new db['Sequelize'][(_0xecdd('0x70'))](_0xecdd('0x71'));return;};exports['validatePasswordHistory']=function(_0x2c6b11,_0x39d60e,_0x57d2b6){var _0x40eb8e=encryptor[_0xecdd('0x72')](_0x39d60e)['split'](',');for(var _0x576acd=0x0;_0x576acd<_0x57d2b6;_0x576acd++){if(!_0x40eb8e[_0x576acd])break;if(_0x2c6b11[_0xecdd('0x73')]()===_0x40eb8e[_0x576acd][_0xecdd('0x73')]()){var _0x24d62c=util[_0xecdd('0x74')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x57d2b6);if(_0x57d2b6===0x1){_0x24d62c=_0xecdd('0x75');}throw new db[(_0xecdd('0x76'))][(_0xecdd('0x70'))](_0x24d62c);}}return;};exports[_0xecdd('0x77')]=function(_0xce9bf8,_0x3a7f94){var _0x24666a=_0x3a7f94?encryptor[_0xecdd('0x72')](_0x3a7f94)[_0xecdd('0x78')](','):[];if(_0x24666a[_0xecdd('0x79')]===0x5){_0x24666a['splice'](-0x1,0x1);}_0x24666a[_0xecdd('0x7a')](_0xce9bf8);return encryptor[_0xecdd('0x7b')](_0x24666a[_0xecdd('0x7c')](','));};function signJwt(_0x545b61){var _0x2ff1d2=BPromise[_0xecdd('0x7d')](jwt[_0xecdd('0x7e')],{'context':jwt});var _0x40c40e=_0x545b61['secret']||config[_0xecdd('0xc')]['session'];return new BPromise(function(_0x59f074,_0x11452f){_0x2ff1d2(_0x545b61[_0xecdd('0x7f')],_0x40c40e,_0x545b61[_0xecdd('0x80')])[_0xecdd('0x3c')](function(_0x2fa8a2){_0x59f074(_0x2fa8a2);})[_0xecdd('0x43')](function(_0x19de48){_0x11452f(_0x19de48);});});}function verifyJwt(_0x285e21,_0x15a790,_0x5d38f8){var _0xf241e4=BPromise[_0xecdd('0x7d')](jwt[_0xecdd('0x81')],{'context':jwt});var _0x3b4769=_0x5d38f8||config[_0xecdd('0xc')]['session'];return new BPromise(function(_0x5457b7,_0x9e57c1){_0xf241e4(_0x285e21,_0x3b4769,_0x15a790)[_0xecdd('0x3c')](function(_0x2eb6f1){_0x5457b7(_0x2eb6f1);})[_0xecdd('0x43')](function(_0x1d1ce3){_0x9e57c1(_0x1d1ce3);});});}function generateNonce(){return crypto['randomBytes'](0x10)['toString'](_0xecdd('0x82'));}function generateIssuedAt(){return Math[_0xecdd('0x83')](Date[_0xecdd('0x84')]()/0x3e8)['toString']();}function createJwt(_0x19bbdd){var _0xde0416={'payload':{'iat':_0x19bbdd[_0xecdd('0x6b')],'nonce':_0x19bbdd[_0xecdd('0x53')]},'options':{'algorithm':_0xecdd('0x85'),'subject':_0x19bbdd['id'][_0xecdd('0x86')](),'issuer':hardwareConf[_0xecdd('0x4e')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0xde0416)[_0xecdd('0x3c')](function(_0x10d808){return{'iat':_0x19bbdd[_0xecdd('0x6b')],'nonce':_0x19bbdd[_0xecdd('0x53')],'token':_0x10d808};});}
\ No newline at end of file