Built motion from commit 980b26c3.|2.6.29
[motion2.git] / server / components / auth / service.js
index 0d67c4d..a0f7b3d 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x8433=['faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','then','query','forceDownload','status','json','unmanaged','Forbidden.','catch','headers','authorization','startsWith','Basic','User','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','find','sub','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.','update','Forbidden','getLicense','webrtc','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','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','toLowerCase','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','split','length','unshift','join','sign','secrets','session','payload','options','promisify','randomBytes','hex','now','toString','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','role','name','internal','email','userpic','permissions','md5secret','voicePause','mailPause','faxPause','openchannelPause','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x8433,0x166));var _0x3843=function(_0x56740a,_0x568894){_0x56740a=_0x56740a-0x0;var _0x257144=_0x8433[_0x56740a];return _0x257144;};'use strict';var db=require(_0x3843('0x0'))['db'];var config=require(_0x3843('0x1'));var hardwareConf=require(_0x3843('0x2'));var licenseUtil=require(_0x3843('0x3'));var encryptor=require('../encryptor');var _=require(_0x3843('0x4'));var jwt=require(_0x3843('0x5'));var expressJwt=require(_0x3843('0x6'));var compose=require(_0x3843('0x7'));var basicAuth=require(_0x3843('0x8'));var crypto=require(_0x3843('0x9'));var BPromise=require(_0x3843('0xa'));var util=require(_0x3843('0xb'));var moment=require('moment');var validateJwt=expressJwt({'secret':config['secrets']['session']});var userAttributes=['id',_0x3843('0xc'),'fullname',_0x3843('0xd'),_0x3843('0xe'),_0x3843('0xf'),_0x3843('0x10'),_0x3843('0x11'),_0x3843('0x12'),_0x3843('0x13'),'chatPause',_0x3843('0x14'),_0x3843('0x15'),'smsPause',_0x3843('0x16'),'pauseType','showWebBar','lastLoginAt','lastPauseAt',_0x3843('0x17'),_0x3843('0x18'),_0x3843('0x19'),_0x3843('0x1a'),_0x3843('0x1b'),_0x3843('0x1c'),_0x3843('0x1d'),_0x3843('0x1e'),'phoneBarEnableDtmfTone',_0x3843('0x1f'),_0x3843('0x20'),_0x3843('0x21'),_0x3843('0x22'),_0x3843('0x23'),_0x3843('0x24'),'interface',_0x3843('0x25'),_0x3843('0x26'),_0x3843('0x27'),_0x3843('0x28'),_0x3843('0x29'),_0x3843('0x2a'),_0x3843('0x2b'),'ignorePauseForPreviewCalls','selectRecallMeCampaign',_0x3843('0x2c'),_0x3843('0x2d'),_0x3843('0x2e'),_0x3843('0x2f'),_0x3843('0x30'),_0x3843('0x31'),'openchannelAutoanswer','openchannelAutoanswerDelay',_0x3843('0x32'),_0x3843('0x33'),_0x3843('0x34'),_0x3843('0x35'),_0x3843('0x36')];exports['isChatInteractionAuthorized']=function(){return this[_0x3843('0x37')](!![])[_0x3843('0x38')](function(_0x24c19c,_0x18a3fe,_0x70f4a){if(_0x24c19c[_0x3843('0x39')]){_0x70f4a();}else{return db[_0x3843('0x3a')][_0x3843('0x3b')]({'where':{'id':_0x24c19c[_0x3843('0x3c')]['id']},'attributes':['id',_0x3843('0x3d'),_0x3843('0x3e')],'raw':!![]})[_0x3843('0x3f')](function(_0x19b30f){if(_0x19b30f&&_0x19b30f[_0x3843('0x3d')]&&!_0x24c19c[_0x3843('0x40')][_0x3843('0x41')]){return _0x18a3fe[_0x3843('0x42')](_0x19b30f[_0x3843('0x3e')]==='unmanaged'?0x195:0x193)[_0x3843('0x43')]({'message':_0x19b30f['disposition']===_0x3843('0x44')?'Unmanaged.':_0x3843('0x45')});}else{_0x70f4a();}})[_0x3843('0x46')](function(_0x4e7261){_0x70f4a(_0x4e7261);});}});};exports['isAuthenticated']=function isAuthenticated(_0x18b2fd){return compose()['use'](function(_0x9a89c,_0x5c0470,_0x56e4ba){var _0x359b6c;if(_0x9a89c[_0x3843('0x47')][_0x3843('0x48')]){if(_[_0x3843('0x49')](_0x9a89c[_0x3843('0x47')][_0x3843('0x48')],_0x3843('0x4a'))){var _0xf3aa7b=basicAuth(_0x9a89c);db[_0x3843('0x4b')]['find']({'where':{'name':_0xf3aa7b[_0x3843('0xd')]}})[_0x3843('0x3f')](function(_0x4bb33){if(!_0x4bb33||!_0x4bb33['authenticate'](_0xf3aa7b['pass'])){return _0x5c0470[_0x3843('0x42')](0x191)[_0x3843('0x43')]({'message':_0x3843('0x4c')});}_0x9a89c[_0x3843('0x39')]={'id':_0x4bb33['id']};_0x56e4ba();})[_0x3843('0x46')](function(_0xf91974){_0x56e4ba(_0xf91974);});}else if(_[_0x3843('0x49')](_0x9a89c[_0x3843('0x47')][_0x3843('0x48')],_0x3843('0x4d'))){validateJwt(_0x9a89c,_0x5c0470,_0x56e4ba);}else{if(_0x18b2fd){_0x56e4ba();}else{return _0x5c0470[_0x3843('0x42')](0x193)[_0x3843('0x43')]({'message':_0x3843('0x4e')});}}}else if(_0x9a89c[_0x3843('0x40')][_0x3843('0x4f')]){try{var _0x2ff14b={'audience':hardwareConf[_0x3843('0x50')](),'issuer':hardwareConf[_0x3843('0x50')]()};verifyJwt(_0x9a89c[_0x3843('0x40')][_0x3843('0x4f')],_0x2ff14b)[_0x3843('0x3f')](function(_0x50ab94){return db['User'][_0x3843('0x51')]({'where':{'id':_0x50ab94[_0x3843('0x52')]}})[_0x3843('0x3f')](function(_0x21dea8){_0x359b6c=_0x21dea8;return db['Setting'][_0x3843('0x3b')]({'where':{'id':0x1},'attributes':[_0x3843('0x53'),_0x3843('0x54')],'raw':!![]});})[_0x3843('0x3f')](function(_0x13972b){if(!_0x359b6c||!_['isEqual'](_0x359b6c[_0x3843('0x55')],_0x50ab94[_0x3843('0x56')])){return _0x5c0470['status'](0x191)[_0x3843('0x43')]({'message':_0x3843('0x57')});}if(_0x359b6c[_0x3843('0x58')]){return _0x5c0470[_0x3843('0x42')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}if(_0x359b6c[_0x3843('0x59')]){if(_0x13972b['blockDuration']>0x0){if(moment(_0x359b6c[_0x3843('0x5a')])[_0x3843('0x5b')](_0x13972b[_0x3843('0x54')],_0x3843('0x5c'))>moment()){return _0x5c0470[_0x3843('0x42')](0x191)[_0x3843('0x43')]({'message':_0x3843('0x5d')});}}else{return _0x5c0470[_0x3843('0x42')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}}_0x9a89c['user']={'id':_0x359b6c['id']};_0x56e4ba();});})[_0x3843('0x46')](function(){return _0x5c0470[_0x3843('0x42')](0x191)[_0x3843('0x43')]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x537333){_0x56e4ba(_0x537333);}}else if(_0x18b2fd){_0x56e4ba();}else{return _0x5c0470[_0x3843('0x42')](0x193)['json']({'message':'Unknown\x20authorization\x20format'});}})[_0x3843('0x38')](function(_0x236c15,_0x32869e,_0x1c0817){if(_0x236c15[_0x3843('0x39')]){db[_0x3843('0x4b')]['find']({'where':{'id':_0x236c15['user']['id']},'attributes':userAttributes})[_0x3843('0x3f')](function(_0x1d5ec7){if(!_0x1d5ec7){return _0x32869e[_0x3843('0x42')](0x194)[_0x3843('0x43')]({'message':_0x3843('0x5e')});}_0x236c15[_0x3843('0x39')]=_0x1d5ec7;_0x1c0817();})[_0x3843('0x46')](function(_0x16ec55){_0x1c0817(_0x16ec55);});}else if(_0x18b2fd){_0x1c0817();}else{return _0x32869e[_0x3843('0x42')](0x194)[_0x3843('0x43')]({'message':_0x3843('0x5f')});}});};exports['canUpdate']=function canUpdate(){return compose()['use'](function(_0x2488d9,_0x52f573,_0x130408){return licenseUtil['getLicense']()['then'](function(_0x4fa389){if(_0x4fa389[_0x3843('0x60')]){_0x130408();}else{return _0x52f573['status'](0x193)[_0x3843('0x43')]({'message':_0x3843('0x61')});}})['catch'](function(_0x3bab7){_0x130408(_0x3bab7);});});};exports['isWebrtcLicence']=function isWebrtcLicence(){return compose()[_0x3843('0x38')](function(_0x3b6148,_0x311206,_0x441e13){return licenseUtil[_0x3843('0x62')]()[_0x3843('0x3f')](function(_0x3eaa13){if(_0x3eaa13[_0x3843('0x63')]){_0x441e13();}else{return _0x311206[_0x3843('0x42')](0x193)[_0x3843('0x43')]({'message':_0x3843('0x61')});}})[_0x3843('0x46')](function(_0x1c147b){_0x441e13(_0x1c147b);});});};exports[_0x3843('0x64')]=function(_0x581ac6,_0x206699,_0x5ac331){_0x581ac6[_0x3843('0x64')]=!![];return _0x5ac331();};exports['signToken']=function signToken(_0x15c632){return signJwt(_0x15c632);};exports[_0x3843('0x65')]=function(_0x546c9c,_0x34afee){if(!_0x546c9c[_0x3843('0x39')]){return _0x34afee[_0x3843('0x42')](0x194)['json']({'message':_0x3843('0x66')});}var _0x2b1cdd={'payload':{'id':_0x546c9c[_0x3843('0x39')]['id'],'role':_0x546c9c[_0x3843('0x39')][_0x3843('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0x2b1cdd)[_0x3843('0x3f')](function(_0x220c0b){_0x34afee[_0x3843('0x67')](_0x3843('0x68'),_0x220c0b);_0x34afee['redirect']('/dashboards/general');})[_0x3843('0x46')](function(_0x1d31bc){return _0x34afee[_0x3843('0x42')](0x1f4)[_0x3843('0x69')](_0x1d31bc);});};exports[_0x3843('0x6a')]=function(_0x2276e7){if(_[_0x3843('0x6b')](_0x2276e7[_0x3843('0x55')])||_[_0x3843('0x6b')](_0x2276e7[_0x3843('0x6c')])){return null;}else{return createJwt(_0x2276e7);}};exports[_0x3843('0x6d')]=function(_0x3f7f48){_0x3f7f48[_0x3843('0x55')]=generateNonce();_0x3f7f48[_0x3843('0x6c')]=generateIssuedAt();return createJwt(_0x3f7f48);};exports[_0x3843('0x6e')]=function(_0xb4262,_0x148c51){var _0x23f2ec=_0xb4262[_0x3843('0x40')][_0x3843('0x4f')];if(_0x23f2ec){var _0x383592={'nonce':_0x148c51['apiKeyNonce'],'iat':_0x148c51[_0x3843('0x6c')],'audience':hardwareConf[_0x3843('0x50')](),'issuer':hardwareConf[_0x3843('0x50')]()};return verifyJwt(_0x23f2ec,_0x383592)[_0x3843('0x3f')](function(){return generateApiKey(_0x148c51);});}else{throw{'message':_0x3843('0x6f')};}};exports['validatePasswordPattern']=function(_0x240cc9){var _0x421fa7=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x421fa7[_0x3843('0x70')](_0x240cc9))throw new db[(_0x3843('0x71'))][(_0x3843('0x72'))](_0x3843('0x73'));return;};exports[_0x3843('0x74')]=function(_0x37b491,_0x1e1a66,_0x387feb){var _0x1bfaaf=encryptor[_0x3843('0x75')](_0x1e1a66)['split'](',');for(var _0x42f589=0x0;_0x42f589<_0x387feb;_0x42f589++){if(!_0x1bfaaf[_0x42f589])break;if(_0x37b491['toLowerCase']()===_0x1bfaaf[_0x42f589][_0x3843('0x76')]()){var _0x5dd353=util['format']('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x387feb);if(_0x387feb===0x1){_0x5dd353=_0x3843('0x77');}throw new db['Sequelize']['ValidationError'](_0x5dd353);}}return;};exports[_0x3843('0x78')]=function(_0x25ebc6,_0x2b6a70){var _0x5aa232=_0x2b6a70?encryptor[_0x3843('0x75')](_0x2b6a70)[_0x3843('0x79')](','):[];if(_0x5aa232[_0x3843('0x7a')]===0x5){_0x5aa232['splice'](-0x1,0x1);}_0x5aa232[_0x3843('0x7b')](_0x25ebc6);return encryptor['encryptString'](_0x5aa232[_0x3843('0x7c')](','));};function signJwt(_0x312123){var _0x5d120f=BPromise['promisify'](jwt[_0x3843('0x7d')],{'context':jwt});var _0x13991e=_0x312123['secret']||config[_0x3843('0x7e')][_0x3843('0x7f')];return new BPromise(function(_0x23f3cb,_0x1ee07c){_0x5d120f(_0x312123[_0x3843('0x80')],_0x13991e,_0x312123[_0x3843('0x81')])[_0x3843('0x3f')](function(_0x246015){_0x23f3cb(_0x246015);})[_0x3843('0x46')](function(_0x272c44){_0x1ee07c(_0x272c44);});});}function verifyJwt(_0x2f6bd2,_0x38657c,_0x58eb96){var _0x2ba9a4=BPromise[_0x3843('0x82')](jwt['verify'],{'context':jwt});var _0x583429=_0x58eb96||config[_0x3843('0x7e')]['session'];return new BPromise(function(_0x277b2d,_0x45bc04){_0x2ba9a4(_0x2f6bd2,_0x583429,_0x38657c)[_0x3843('0x3f')](function(_0x46c68e){_0x277b2d(_0x46c68e);})[_0x3843('0x46')](function(_0x224e61){_0x45bc04(_0x224e61);});});}function generateNonce(){return crypto[_0x3843('0x83')](0x10)['toString'](_0x3843('0x84'));}function generateIssuedAt(){return Math['floor'](Date[_0x3843('0x85')]()/0x3e8)[_0x3843('0x86')]();}function createJwt(_0x378129){var _0x2be98b={'payload':{'iat':_0x378129[_0x3843('0x6c')],'nonce':_0x378129[_0x3843('0x55')]},'options':{'algorithm':_0x3843('0x87'),'subject':_0x378129['id'][_0x3843('0x86')](),'issuer':hardwareConf[_0x3843('0x50')](),'audience':hardwareConf[_0x3843('0x50')]()}};return signJwt(_0x2be98b)[_0x3843('0x3f')](function(_0x1843d1){return{'iat':_0x378129['apiKeyIat'],'nonce':_0x378129[_0x3843('0x55')],'token':_0x1843d1};});}
\ No newline at end of file
+var _0x14c9=['now','HS512','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','session','role','fullname','name','internal','email','userpic','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarExpires','phoneBarRemoteControl','hotdesk','userProfileId','privacyEnabled','settingsEnabled','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','selectRecallMeCampaign','chatAutoanswerDelay','emailAutoanswer','openchannelAutoanswer','openchannelAutoanswerDelay','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','then','query','forceDownload','unmanaged','json','Unmanaged.','Forbidden.','headers','authorization','startsWith','Basic','User','find','authenticate','pass','status','catch','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','Setting','blockDuration','Invalid\x20API\x20access\x20key','blocked','blockedAt','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','Forbidden','isWebrtcLicence','webrtc','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyNonce','regenerateApiKey','apiKeyIat','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','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','toLowerCase','format','updatePasswordsHistory','length','splice','unshift','encryptString','join','sign','secrets','payload','options','verify','randomBytes','toString','hex','floor'];(function(_0x34b87f,_0x28aef2){var _0x449805=function(_0x3735b7){while(--_0x3735b7){_0x34b87f['push'](_0x34b87f['shift']());}};_0x449805(++_0x28aef2);}(_0x14c9,0x18e));var _0x914c=function(_0x3db60b,_0x4a0f05){_0x3db60b=_0x3db60b-0x0;var _0x2a4bd7=_0x14c9[_0x3db60b];return _0x2a4bd7;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0x914c('0x0'));var hardwareConf=require(_0x914c('0x1'));var licenseUtil=require(_0x914c('0x2'));var encryptor=require(_0x914c('0x3'));var _=require(_0x914c('0x4'));var jwt=require(_0x914c('0x5'));var expressJwt=require(_0x914c('0x6'));var compose=require(_0x914c('0x7'));var basicAuth=require(_0x914c('0x8'));var crypto=require(_0x914c('0x9'));var BPromise=require(_0x914c('0xa'));var util=require(_0x914c('0xb'));var moment=require(_0x914c('0xc'));var validateJwt=expressJwt({'secret':config['secrets'][_0x914c('0xd')]});var userAttributes=['id',_0x914c('0xe'),_0x914c('0xf'),_0x914c('0x10'),_0x914c('0x11'),_0x914c('0x12'),_0x914c('0x13'),_0x914c('0x14'),_0x914c('0x15'),_0x914c('0x16'),_0x914c('0x17'),_0x914c('0x18'),_0x914c('0x19'),'smsPause','openchannelPause','pauseType',_0x914c('0x1a'),_0x914c('0x1b'),_0x914c('0x1c'),_0x914c('0x1d'),_0x914c('0x1e'),_0x914c('0x1f'),_0x914c('0x20'),_0x914c('0x21'),'phoneBarAutoAnswerDelay','phoneBarDnd',_0x914c('0x22'),'phoneBarEnableDtmfTone',_0x914c('0x23'),_0x914c('0x24'),'phoneBarPrefixRequired',_0x914c('0x25'),'phoneBarRemoteControlPort',_0x914c('0x26'),'interface',_0x914c('0x27'),_0x914c('0x28'),_0x914c('0x29'),'wssPort',_0x914c('0x2a'),_0x914c('0x2b'),_0x914c('0x2c'),_0x914c('0x2d'),_0x914c('0x2e'),'chatAutoanswer',_0x914c('0x2f'),_0x914c('0x30'),'emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay',_0x914c('0x31'),_0x914c('0x32'),'faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification'];exports[_0x914c('0x33')]=function(){return this[_0x914c('0x34')](!![])[_0x914c('0x35')](function(_0x2591ae,_0x132011,_0x17bf8e){if(_0x2591ae[_0x914c('0x36')]){_0x17bf8e();}else{return db[_0x914c('0x37')][_0x914c('0x38')]({'where':{'id':_0x2591ae[_0x914c('0x39')]['id']},'attributes':['id',_0x914c('0x3a'),_0x914c('0x3b')],'raw':!![]})[_0x914c('0x3c')](function(_0x4ce668){if(_0x4ce668&&_0x4ce668[_0x914c('0x3a')]&&!_0x2591ae[_0x914c('0x3d')][_0x914c('0x3e')]){return _0x132011['status'](_0x4ce668[_0x914c('0x3b')]===_0x914c('0x3f')?0x195:0x193)[_0x914c('0x40')]({'message':_0x4ce668[_0x914c('0x3b')]==='unmanaged'?_0x914c('0x41'):_0x914c('0x42')});}else{_0x17bf8e();}})['catch'](function(_0x5ab212){_0x17bf8e(_0x5ab212);});}});};exports['isAuthenticated']=function isAuthenticated(_0x1ac26f){return compose()[_0x914c('0x35')](function(_0x26c94b,_0x1e6bc7,_0xaba4b1){var _0xd9ec4;if(_0x26c94b[_0x914c('0x43')][_0x914c('0x44')]){if(_[_0x914c('0x45')](_0x26c94b['headers'][_0x914c('0x44')],_0x914c('0x46'))){var _0x33a331=basicAuth(_0x26c94b);db[_0x914c('0x47')][_0x914c('0x48')]({'where':{'name':_0x33a331[_0x914c('0x10')]}})[_0x914c('0x3c')](function(_0x3f5ad5){if(!_0x3f5ad5||!_0x3f5ad5[_0x914c('0x49')](_0x33a331[_0x914c('0x4a')])){return _0x1e6bc7[_0x914c('0x4b')](0x191)[_0x914c('0x40')]({'message':'Wrong\x20credentials.'});}_0x26c94b[_0x914c('0x36')]={'id':_0x3f5ad5['id']};_0xaba4b1();})[_0x914c('0x4c')](function(_0x39a422){_0xaba4b1(_0x39a422);});}else if(_[_0x914c('0x45')](_0x26c94b['headers'][_0x914c('0x44')],_0x914c('0x4d'))){validateJwt(_0x26c94b,_0x1e6bc7,_0xaba4b1);}else{if(_0x1ac26f){_0xaba4b1();}else{return _0x1e6bc7[_0x914c('0x4b')](0x193)[_0x914c('0x40')]({'message':_0x914c('0x4e')});}}}else if(_0x26c94b[_0x914c('0x3d')][_0x914c('0x4f')]){try{var _0x33c650={'audience':hardwareConf[_0x914c('0x50')](),'issuer':hardwareConf[_0x914c('0x50')]()};verifyJwt(_0x26c94b[_0x914c('0x3d')][_0x914c('0x4f')],_0x33c650)['then'](function(_0x1cea24){return db[_0x914c('0x47')][_0x914c('0x48')]({'where':{'id':_0x1cea24['sub']}})[_0x914c('0x3c')](function(_0x170f65){_0xd9ec4=_0x170f65;return db[_0x914c('0x51')][_0x914c('0x38')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x914c('0x52')],'raw':!![]});})[_0x914c('0x3c')](function(_0x457e51){if(!_0xd9ec4||!_['isEqual'](_0xd9ec4['apiKeyNonce'],_0x1cea24['nonce'])){return _0x1e6bc7['status'](0x191)['json']({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0xd9ec4['disabled']){return _0x1e6bc7[_0x914c('0x4b')](0x191)[_0x914c('0x40')]({'message':_0x914c('0x53')});}if(_0xd9ec4[_0x914c('0x54')]){if(_0x457e51[_0x914c('0x52')]>0x0){if(moment(_0xd9ec4[_0x914c('0x55')])['add'](_0x457e51[_0x914c('0x52')],_0x914c('0x56'))>moment()){return _0x1e6bc7[_0x914c('0x4b')](0x191)[_0x914c('0x40')]({'message':_0x914c('0x53')});}}else{return _0x1e6bc7[_0x914c('0x4b')](0x191)[_0x914c('0x40')]({'message':_0x914c('0x53')});}}_0x26c94b[_0x914c('0x36')]={'id':_0xd9ec4['id']};_0xaba4b1();});})[_0x914c('0x4c')](function(){return _0x1e6bc7['status'](0x191)[_0x914c('0x40')]({'message':_0x914c('0x53')});});}catch(_0x36ddc6){_0xaba4b1(_0x36ddc6);}}else if(_0x1ac26f){_0xaba4b1();}else{return _0x1e6bc7[_0x914c('0x4b')](0x193)[_0x914c('0x40')]({'message':'Unknown\x20authorization\x20format'});}})[_0x914c('0x35')](function(_0x48715e,_0x34926b,_0x38deeb){if(_0x48715e['user']){db[_0x914c('0x47')][_0x914c('0x48')]({'where':{'id':_0x48715e['user']['id']},'attributes':userAttributes})[_0x914c('0x3c')](function(_0x16178e){if(!_0x16178e){return _0x34926b[_0x914c('0x4b')](0x194)[_0x914c('0x40')]({'message':_0x914c('0x57')});}_0x48715e[_0x914c('0x36')]=_0x16178e;_0x38deeb();})['catch'](function(_0x1b6d7f){_0x38deeb(_0x1b6d7f);});}else if(_0x1ac26f){_0x38deeb();}else{return _0x34926b[_0x914c('0x4b')](0x194)[_0x914c('0x40')]({'message':_0x914c('0x58')});}});};exports[_0x914c('0x59')]=function canUpdate(){return compose()['use'](function(_0x8eff6d,_0x39781a,_0xe7a3f0){return licenseUtil['getLicense']()[_0x914c('0x3c')](function(_0x15aa93){if(_0x15aa93['update']){_0xe7a3f0();}else{return _0x39781a['status'](0x193)[_0x914c('0x40')]({'message':_0x914c('0x5a')});}})['catch'](function(_0x1a9fa7){_0xe7a3f0(_0x1a9fa7);});});};exports[_0x914c('0x5b')]=function isWebrtcLicence(){return compose()[_0x914c('0x35')](function(_0x1ee87f,_0x1694c5,_0x254896){return licenseUtil['getLicense']()[_0x914c('0x3c')](function(_0x29279e){if(_0x29279e[_0x914c('0x5c')]){_0x254896();}else{return _0x1694c5[_0x914c('0x4b')](0x193)['json']({'message':_0x914c('0x5a')});}})[_0x914c('0x4c')](function(_0x4d0ade){_0x254896(_0x4d0ade);});});};exports[_0x914c('0x5d')]=function(_0x3812f4,_0x16664d,_0x33bce2){_0x3812f4[_0x914c('0x5d')]=!![];return _0x33bce2();};exports[_0x914c('0x5e')]=function signToken(_0x5967ad){return signJwt(_0x5967ad);};exports[_0x914c('0x5f')]=function(_0x158293,_0x12d228){if(!_0x158293[_0x914c('0x36')]){return _0x12d228[_0x914c('0x4b')](0x194)['json']({'message':_0x914c('0x60')});}var _0x4c77bf={'payload':{'id':_0x158293[_0x914c('0x36')]['id'],'role':_0x158293[_0x914c('0x36')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x4c77bf)[_0x914c('0x3c')](function(_0x37d7b1){_0x12d228[_0x914c('0x61')](_0x914c('0x62'),_0x37d7b1);_0x12d228[_0x914c('0x63')](_0x914c('0x64'));})[_0x914c('0x4c')](function(_0x1c6c3a){return _0x12d228[_0x914c('0x4b')](0x1f4)['send'](_0x1c6c3a);});};exports[_0x914c('0x65')]=function(_0x250a7b){if(_[_0x914c('0x66')](_0x250a7b[_0x914c('0x67')])||_[_0x914c('0x66')](_0x250a7b['apiKeyIat'])){return null;}else{return createJwt(_0x250a7b);}};exports['generateApiKey']=function(_0x5aad77){_0x5aad77[_0x914c('0x67')]=generateNonce();_0x5aad77['apiKeyIat']=generateIssuedAt();return createJwt(_0x5aad77);};exports[_0x914c('0x68')]=function(_0xcb6896,_0x22d585){var _0x2753ac=_0xcb6896['query'][_0x914c('0x4f')];if(_0x2753ac){var _0x4e7d85={'nonce':_0x22d585[_0x914c('0x67')],'iat':_0x22d585[_0x914c('0x69')],'audience':hardwareConf[_0x914c('0x50')](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x2753ac,_0x4e7d85)[_0x914c('0x3c')](function(){return generateApiKey(_0x22d585);});}else{throw{'message':_0x914c('0x6a')};}};exports[_0x914c('0x6b')]=function(_0x4ff60c){var _0x2280c1=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x2280c1['test'](_0x4ff60c))throw new db[(_0x914c('0x6c'))][(_0x914c('0x6d'))](_0x914c('0x6e'));return;};exports[_0x914c('0x6f')]=function(_0x10c179,_0xc1f963,_0x10b887){var _0x4c65a0=encryptor[_0x914c('0x70')](_0xc1f963)['split'](',');for(var _0x4401c5=0x0;_0x4401c5<_0x10b887;_0x4401c5++){if(!_0x4c65a0[_0x4401c5])break;if(_0x10c179[_0x914c('0x71')]()===_0x4c65a0[_0x4401c5][_0x914c('0x71')]()){var _0x4c5dfa=util[_0x914c('0x72')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x10b887);if(_0x10b887===0x1){_0x4c5dfa='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0x914c('0x6c'))][(_0x914c('0x6d'))](_0x4c5dfa);}}return;};exports[_0x914c('0x73')]=function(_0x33f67e,_0x50521f){var _0x256d19=_0x50521f?encryptor['decryptString'](_0x50521f)['split'](','):[];if(_0x256d19[_0x914c('0x74')]===0x5){_0x256d19[_0x914c('0x75')](-0x1,0x1);}_0x256d19[_0x914c('0x76')](_0x33f67e);return encryptor[_0x914c('0x77')](_0x256d19[_0x914c('0x78')](','));};function signJwt(_0x461219){var _0x500e95=BPromise['promisify'](jwt[_0x914c('0x79')],{'context':jwt});var _0x3ce3e8=_0x461219['secret']||config[_0x914c('0x7a')][_0x914c('0xd')];return new BPromise(function(_0x239204,_0x905fd2){_0x500e95(_0x461219[_0x914c('0x7b')],_0x3ce3e8,_0x461219[_0x914c('0x7c')])[_0x914c('0x3c')](function(_0x10fec3){_0x239204(_0x10fec3);})['catch'](function(_0x58b9af){_0x905fd2(_0x58b9af);});});}function verifyJwt(_0x5a1ac8,_0x508561,_0x2e2be1){var _0x16768f=BPromise['promisify'](jwt[_0x914c('0x7d')],{'context':jwt});var _0x32f736=_0x2e2be1||config[_0x914c('0x7a')][_0x914c('0xd')];return new BPromise(function(_0x5e31bc,_0x2a5b2d){_0x16768f(_0x5a1ac8,_0x32f736,_0x508561)[_0x914c('0x3c')](function(_0x340f08){_0x5e31bc(_0x340f08);})[_0x914c('0x4c')](function(_0x36e774){_0x2a5b2d(_0x36e774);});});}function generateNonce(){return crypto[_0x914c('0x7e')](0x10)[_0x914c('0x7f')](_0x914c('0x80'));}function generateIssuedAt(){return Math[_0x914c('0x81')](Date[_0x914c('0x82')]()/0x3e8)[_0x914c('0x7f')]();}function createJwt(_0x1ab097){var _0x274d43={'payload':{'iat':_0x1ab097['apiKeyIat'],'nonce':_0x1ab097['apiKeyNonce']},'options':{'algorithm':_0x914c('0x83'),'subject':_0x1ab097['id']['toString'](),'issuer':hardwareConf[_0x914c('0x50')](),'audience':hardwareConf[_0x914c('0x50')]()}};return signJwt(_0x274d43)['then'](function(_0x232aa4){return{'iat':_0x1ab097[_0x914c('0x69')],'nonce':_0x1ab097['apiKeyNonce'],'token':_0x232aa4};});}
\ No newline at end of file