Built motion from commit a8c4dd89.|2.6.33
[motion2.git] / server / components / auth / service.js
index b01478b..fb27ad1 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-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
+var _0xeced=['permissions','md5secret','voicePause','chatPause','faxPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','selectRecallMeCampaign','chatAutoanswerDelay','emailAutoanswer','smsAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','isChatInteractionAuthorized','use','user','ChatInteraction','params','disposition','then','closed','query','forceDownload','status','unmanaged','json','Unmanaged.','isAuthenticated','headers','authorization','startsWith','Basic','User','authenticate','pass','Wrong\x20credentials.','catch','Bearer','Unknown\x20authorization\x20format','apikey','getUuid','find','sub','Setting','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','Invalid\x20API\x20access\x20key','add','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','update','Forbidden','getLicense','webrtc','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','/dashboards/general','send','retrieveApiKey','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.','Sequelize','updatePasswordsHistory','length','unshift','encryptString','promisify','sign','secret','payload','options','verify','session','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','composable-middleware','basic-auth','util','secrets','role','name','internal'];(function(_0x10b6ae,_0x56a559){var _0x1321e9=function(_0x9b0eb2){while(--_0x9b0eb2){_0x10b6ae['push'](_0x10b6ae['shift']());}};_0x1321e9(++_0x56a559);}(_0xeced,0x10f));var _0xdece=function(_0x2c680d,_0x1cb29f){_0x2c680d=_0x2c680d-0x0;var _0x43bc53=_0xeced[_0x2c680d];return _0x43bc53;};'use strict';var db=require(_0xdece('0x0'))['db'];var config=require(_0xdece('0x1'));var hardwareConf=require(_0xdece('0x2'));var licenseUtil=require(_0xdece('0x3'));var encryptor=require(_0xdece('0x4'));var _=require(_0xdece('0x5'));var jwt=require('jsonwebtoken');var expressJwt=require('express-jwt');var compose=require(_0xdece('0x6'));var basicAuth=require(_0xdece('0x7'));var crypto=require('crypto');var BPromise=require('bluebird');var util=require(_0xdece('0x8'));var moment=require('moment');var validateJwt=expressJwt({'secret':config[_0xdece('0x9')]['session']});var userAttributes=['id',_0xdece('0xa'),'fullname',_0xdece('0xb'),_0xdece('0xc'),'email','userpic',_0xdece('0xd'),_0xdece('0xe'),_0xdece('0xf'),_0xdece('0x10'),'mailPause',_0xdece('0x11'),'smsPause',_0xdece('0x12'),_0xdece('0x13'),_0xdece('0x14'),_0xdece('0x15'),_0xdece('0x16'),_0xdece('0x17'),_0xdece('0x18'),_0xdece('0x19'),_0xdece('0x1a'),'phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd',_0xdece('0x1b'),_0xdece('0x1c'),_0xdece('0x1d'),_0xdece('0x1e'),_0xdece('0x1f'),_0xdece('0x20'),_0xdece('0x21'),_0xdece('0x22'),_0xdece('0x23'),_0xdece('0x24'),_0xdece('0x25'),'settingsEnabled',_0xdece('0x26'),_0xdece('0x27'),_0xdece('0x28'),_0xdece('0x29'),'ignorePauseForPreviewCalls',_0xdece('0x2a'),'chatAutoanswer',_0xdece('0x2b'),_0xdece('0x2c'),'emailAutoanswerDelay','smsAutoanswer',_0xdece('0x2d'),_0xdece('0x2e'),_0xdece('0x2f'),_0xdece('0x30'),_0xdece('0x31'),_0xdece('0x32'),_0xdece('0x33'),'messengerSoundNotification'];exports[_0xdece('0x34')]=function(){return this['isAuthenticated'](!![])[_0xdece('0x35')](function(_0x1158f5,_0x54700f,_0x1a05a8){if(_0x1158f5[_0xdece('0x36')]){_0x1a05a8();}else{return db[_0xdece('0x37')]['findOne']({'where':{'id':_0x1158f5[_0xdece('0x38')]['id']},'attributes':['id','closed',_0xdece('0x39')],'raw':!![]})[_0xdece('0x3a')](function(_0x48b9d5){if(_0x48b9d5&&_0x48b9d5[_0xdece('0x3b')]&&!_0x1158f5[_0xdece('0x3c')][_0xdece('0x3d')]){return _0x54700f[_0xdece('0x3e')](_0x48b9d5['disposition']===_0xdece('0x3f')?0x195:0x193)[_0xdece('0x40')]({'message':_0x48b9d5[_0xdece('0x39')]===_0xdece('0x3f')?_0xdece('0x41'):'Forbidden.'});}else{_0x1a05a8();}})['catch'](function(_0x3f1330){_0x1a05a8(_0x3f1330);});}});};exports[_0xdece('0x42')]=function isAuthenticated(_0x77959d){return compose()[_0xdece('0x35')](function(_0x568788,_0x2e3c3d,_0x47eb54){var _0x23603c;if(_0x568788[_0xdece('0x43')][_0xdece('0x44')]){if(_[_0xdece('0x45')](_0x568788[_0xdece('0x43')][_0xdece('0x44')],_0xdece('0x46'))){var _0x5d0e40=basicAuth(_0x568788);db[_0xdece('0x47')]['find']({'where':{'name':_0x5d0e40[_0xdece('0xb')]}})['then'](function(_0x3e37dc){if(!_0x3e37dc||!_0x3e37dc[_0xdece('0x48')](_0x5d0e40[_0xdece('0x49')])){return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':_0xdece('0x4a')});}_0x568788['user']={'id':_0x3e37dc['id']};_0x47eb54();})[_0xdece('0x4b')](function(_0xbf6e73){_0x47eb54(_0xbf6e73);});}else if(_[_0xdece('0x45')](_0x568788[_0xdece('0x43')][_0xdece('0x44')],_0xdece('0x4c'))){validateJwt(_0x568788,_0x2e3c3d,_0x47eb54);}else{if(_0x77959d){_0x47eb54();}else{return _0x2e3c3d[_0xdece('0x3e')](0x193)['json']({'message':_0xdece('0x4d')});}}}else if(_0x568788[_0xdece('0x3c')][_0xdece('0x4e')]){try{var _0x3a51b4={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xdece('0x4f')]()};verifyJwt(_0x568788[_0xdece('0x3c')][_0xdece('0x4e')],_0x3a51b4)[_0xdece('0x3a')](function(_0x1759e9){return db[_0xdece('0x47')][_0xdece('0x50')]({'where':{'id':_0x1759e9[_0xdece('0x51')]}})['then'](function(_0x739f3c){_0x23603c=_0x739f3c;return db[_0xdece('0x52')]['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0xdece('0x53')],'raw':!![]});})['then'](function(_0x43b80a){if(!_0x23603c||!_[_0xdece('0x54')](_0x23603c[_0xdece('0x55')],_0x1759e9[_0xdece('0x56')])){return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':_0xdece('0x57')});}if(_0x23603c['disabled']){return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':_0xdece('0x58')});}if(_0x23603c['blocked']){if(_0x43b80a[_0xdece('0x53')]>0x0){if(moment(_0x23603c['blockedAt'])[_0xdece('0x59')](_0x43b80a[_0xdece('0x53')],_0xdece('0x5a'))>moment()){return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':_0xdece('0x58')});}}else{return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':_0xdece('0x58')});}}_0x568788['user']={'id':_0x23603c['id']};_0x47eb54();});})[_0xdece('0x4b')](function(){return _0x2e3c3d[_0xdece('0x3e')](0x191)[_0xdece('0x40')]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x45f9c8){_0x47eb54(_0x45f9c8);}}else if(_0x77959d){_0x47eb54();}else{return _0x2e3c3d[_0xdece('0x3e')](0x193)[_0xdece('0x40')]({'message':_0xdece('0x4d')});}})['use'](function(_0x511a97,_0x2db5de,_0x1874f8){if(_0x511a97['user']){db[_0xdece('0x47')][_0xdece('0x50')]({'where':{'id':_0x511a97[_0xdece('0x36')]['id']},'attributes':userAttributes})[_0xdece('0x3a')](function(_0x56081c){if(!_0x56081c){return _0x2db5de[_0xdece('0x3e')](0x194)['json']({'message':_0xdece('0x5b')});}_0x511a97[_0xdece('0x36')]=_0x56081c;_0x1874f8();})[_0xdece('0x4b')](function(_0x1d26ae){_0x1874f8(_0x1d26ae);});}else if(_0x77959d){_0x1874f8();}else{return _0x2db5de[_0xdece('0x3e')](0x194)['json']({'message':_0xdece('0x5c')});}});};exports[_0xdece('0x5d')]=function canUpdate(){return compose()[_0xdece('0x35')](function(_0x3193f3,_0x29916c,_0x30aa17){return licenseUtil['getLicense']()[_0xdece('0x3a')](function(_0x205e06){if(_0x205e06[_0xdece('0x5e')]){_0x30aa17();}else{return _0x29916c[_0xdece('0x3e')](0x193)[_0xdece('0x40')]({'message':_0xdece('0x5f')});}})['catch'](function(_0x4e66b9){_0x30aa17(_0x4e66b9);});});};exports['isWebrtcLicence']=function isWebrtcLicence(){return compose()[_0xdece('0x35')](function(_0x14075c,_0x20504a,_0x4f7bef){return licenseUtil[_0xdece('0x60')]()[_0xdece('0x3a')](function(_0x551cd7){if(_0x551cd7[_0xdece('0x61')]){_0x4f7bef();}else{return _0x20504a[_0xdece('0x3e')](0x193)['json']({'message':_0xdece('0x5f')});}})['catch'](function(_0x1c7015){_0x4f7bef(_0x1c7015);});});};exports[_0xdece('0x62')]=function(_0x5b55c0,_0x1031ac,_0x6bb1d5){_0x5b55c0['isMiddleware']=!![];return _0x6bb1d5();};exports[_0xdece('0x63')]=function signToken(_0x3d022b){return signJwt(_0x3d022b);};exports[_0xdece('0x64')]=function(_0x763b56,_0x3b0ed6){if(!_0x763b56[_0xdece('0x36')]){return _0x3b0ed6[_0xdece('0x3e')](0x194)[_0xdece('0x40')]({'message':_0xdece('0x65')});}var _0x212a50={'payload':{'id':_0x763b56[_0xdece('0x36')]['id'],'role':_0x763b56[_0xdece('0x36')][_0xdece('0xa')]},'options':{'expiresIn':0x15180}};return signJwt(_0x212a50)[_0xdece('0x3a')](function(_0x4026eb){_0x3b0ed6[_0xdece('0x66')](_0xdece('0x67'),_0x4026eb);_0x3b0ed6[_0xdece('0x68')](_0xdece('0x69'));})[_0xdece('0x4b')](function(_0x2b41ef){return _0x3b0ed6[_0xdece('0x3e')](0x1f4)[_0xdece('0x6a')](_0x2b41ef);});};exports[_0xdece('0x6b')]=function(_0x1b8033){if(_['isNil'](_0x1b8033[_0xdece('0x55')])||_[_0xdece('0x6c')](_0x1b8033[_0xdece('0x6d')])){return null;}else{return createJwt(_0x1b8033);}};exports[_0xdece('0x6e')]=function(_0x22934e){_0x22934e[_0xdece('0x55')]=generateNonce();_0x22934e['apiKeyIat']=generateIssuedAt();return createJwt(_0x22934e);};exports[_0xdece('0x6f')]=function(_0x47c96c,_0x2f34f7){var _0x254f2f=_0x47c96c['query']['apikey'];if(_0x254f2f){var _0x2f494b={'nonce':_0x2f34f7['apiKeyNonce'],'iat':_0x2f34f7[_0xdece('0x6d')],'audience':hardwareConf[_0xdece('0x4f')](),'issuer':hardwareConf[_0xdece('0x4f')]()};return verifyJwt(_0x254f2f,_0x2f494b)[_0xdece('0x3a')](function(){return generateApiKey(_0x2f34f7);});}else{throw{'message':_0xdece('0x70')};}};exports[_0xdece('0x71')]=function(_0x2e1400){var _0x4e591b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4e591b[_0xdece('0x72')](_0x2e1400))throw new db['Sequelize'][(_0xdece('0x73'))](_0xdece('0x74'));return;};exports[_0xdece('0x75')]=function(_0x439a8b,_0x2eb1f0,_0x52d40a){var _0x115258=encryptor[_0xdece('0x76')](_0x2eb1f0)[_0xdece('0x77')](',');for(var _0x1b9b12=0x0;_0x1b9b12<_0x52d40a;_0x1b9b12++){if(!_0x115258[_0x1b9b12])break;if(_0x439a8b[_0xdece('0x78')]()===_0x115258[_0x1b9b12][_0xdece('0x78')]()){var _0x4a5ba0=util[_0xdece('0x79')](_0xdece('0x7a'),_0x52d40a);if(_0x52d40a===0x1){_0x4a5ba0=_0xdece('0x7b');}throw new db[(_0xdece('0x7c'))]['ValidationError'](_0x4a5ba0);}}return;};exports[_0xdece('0x7d')]=function(_0x271b76,_0x152e8f){var _0x47a990=_0x152e8f?encryptor[_0xdece('0x76')](_0x152e8f)[_0xdece('0x77')](','):[];if(_0x47a990[_0xdece('0x7e')]===0x5){_0x47a990['splice'](-0x1,0x1);}_0x47a990[_0xdece('0x7f')](_0x271b76);return encryptor[_0xdece('0x80')](_0x47a990['join'](','));};function signJwt(_0xe94051){var _0x5eec50=BPromise[_0xdece('0x81')](jwt[_0xdece('0x82')],{'context':jwt});var _0x1be83f=_0xe94051[_0xdece('0x83')]||config[_0xdece('0x9')]['session'];return new BPromise(function(_0x228326,_0xc59016){_0x5eec50(_0xe94051[_0xdece('0x84')],_0x1be83f,_0xe94051[_0xdece('0x85')])[_0xdece('0x3a')](function(_0x389338){_0x228326(_0x389338);})['catch'](function(_0x13a1bd){_0xc59016(_0x13a1bd);});});}function verifyJwt(_0x4dc8aa,_0x1a7165,_0x58590c){var _0x44fb2d=BPromise['promisify'](jwt[_0xdece('0x86')],{'context':jwt});var _0x22956e=_0x58590c||config['secrets'][_0xdece('0x87')];return new BPromise(function(_0x518279,_0x20e398){_0x44fb2d(_0x4dc8aa,_0x22956e,_0x1a7165)[_0xdece('0x3a')](function(_0x26b01c){_0x518279(_0x26b01c);})['catch'](function(_0x2f1994){_0x20e398(_0x2f1994);});});}function generateNonce(){return crypto[_0xdece('0x88')](0x10)[_0xdece('0x89')](_0xdece('0x8a'));}function generateIssuedAt(){return Math[_0xdece('0x8b')](Date[_0xdece('0x8c')]()/0x3e8)[_0xdece('0x89')]();}function createJwt(_0xd08440){var _0x5f01d4={'payload':{'iat':_0xd08440[_0xdece('0x6d')],'nonce':_0xd08440[_0xdece('0x55')]},'options':{'algorithm':_0xdece('0x8d'),'subject':_0xd08440['id'][_0xdece('0x89')](),'issuer':hardwareConf[_0xdece('0x4f')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x5f01d4)[_0xdece('0x3a')](function(_0x374be9){return{'iat':_0xd08440[_0xdece('0x6d')],'nonce':_0xd08440['apiKeyNonce'],'token':_0x374be9};});}
\ No newline at end of file