Built motion from commit 06eb8eb0.|2.6.31
[motion2.git] / server / components / auth / service.js
index f195314..ca71e9f 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x4a20=['Forbidden.','catch','authorization','startsWith','headers','Basic','User','authenticate','Bearer','query','apikey','getUuid','find','sub','Setting','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','blockDuration','add','Unknown\x20authorization\x20format','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','isWebrtcLicence','isMiddleware','signToken','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','redirect','send','retrieveApiKey','isNil','apiKeyNonce','regenerateApiKey','apiKeyIat','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','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','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','length','splice','unshift','encryptString','join','sign','secret','session','payload','options','verify','randomBytes','toString','hex','HS512','../../config/environment','../../config/license/util','../encryptor','lodash','jsonwebtoken','composable-middleware','basic-auth','crypto','util','moment','secrets','role','fullname','name','internal','email','userpic','md5secret','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','chatAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswer','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswerDelay','messengerSoundNotification','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','then','forceDownload','status','unmanaged','json'];(function(_0x4ce028,_0x526d4b){var _0x583d0c=function(_0x874178){while(--_0x874178){_0x4ce028['push'](_0x4ce028['shift']());}};_0x583d0c(++_0x526d4b);}(_0x4a20,0x1d3));var _0x04a2=function(_0x5a776b,_0x46f785){_0x5a776b=_0x5a776b-0x0;var _0xbbef59=_0x4a20[_0x5a776b];return _0xbbef59;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0x04a2('0x0'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x04a2('0x1'));var encryptor=require(_0x04a2('0x2'));var _=require(_0x04a2('0x3'));var jwt=require(_0x04a2('0x4'));var expressJwt=require('express-jwt');var compose=require(_0x04a2('0x5'));var basicAuth=require(_0x04a2('0x6'));var crypto=require(_0x04a2('0x7'));var BPromise=require('bluebird');var util=require(_0x04a2('0x8'));var moment=require(_0x04a2('0x9'));var validateJwt=expressJwt({'secret':config[_0x04a2('0xa')]['session']});var userAttributes=['id',_0x04a2('0xb'),_0x04a2('0xc'),_0x04a2('0xd'),_0x04a2('0xe'),_0x04a2('0xf'),_0x04a2('0x10'),'permissions',_0x04a2('0x11'),_0x04a2('0x12'),_0x04a2('0x13'),_0x04a2('0x14'),_0x04a2('0x15'),_0x04a2('0x16'),_0x04a2('0x17'),'pauseType',_0x04a2('0x18'),_0x04a2('0x19'),_0x04a2('0x1a'),'crudPermissions','allowmessenger','passwordResetAt',_0x04a2('0x1b'),_0x04a2('0x1c'),_0x04a2('0x1d'),_0x04a2('0x1e'),_0x04a2('0x1f'),'phoneBarEnableDtmfTone',_0x04a2('0x20'),_0x04a2('0x21'),_0x04a2('0x22'),'phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface',_0x04a2('0x23'),_0x04a2('0x24'),_0x04a2('0x25'),_0x04a2('0x26'),'downloadVoiceRecordings',_0x04a2('0x27'),'downloadAttachments',_0x04a2('0x28'),'selectRecallMeCampaign',_0x04a2('0x29'),'chatAutoanswerDelay','emailAutoanswer',_0x04a2('0x2a'),_0x04a2('0x2b'),_0x04a2('0x2c'),_0x04a2('0x2d'),_0x04a2('0x2e'),_0x04a2('0x2f'),_0x04a2('0x30'),'whatsappAutoanswer',_0x04a2('0x31'),_0x04a2('0x32')];exports[_0x04a2('0x33')]=function(){return this[_0x04a2('0x34')](!![])[_0x04a2('0x35')](function(_0xbb70a4,_0x38c0e7,_0x3a0372){if(_0xbb70a4[_0x04a2('0x36')]){_0x3a0372();}else{return db[_0x04a2('0x37')][_0x04a2('0x38')]({'where':{'id':_0xbb70a4[_0x04a2('0x39')]['id']},'attributes':['id',_0x04a2('0x3a'),_0x04a2('0x3b')],'raw':!![]})[_0x04a2('0x3c')](function(_0x399f7b){if(_0x399f7b&&_0x399f7b[_0x04a2('0x3a')]&&!_0xbb70a4['query'][_0x04a2('0x3d')]){return _0x38c0e7[_0x04a2('0x3e')](_0x399f7b[_0x04a2('0x3b')]===_0x04a2('0x3f')?0x195:0x193)[_0x04a2('0x40')]({'message':_0x399f7b[_0x04a2('0x3b')]===_0x04a2('0x3f')?'Unmanaged.':_0x04a2('0x41')});}else{_0x3a0372();}})[_0x04a2('0x42')](function(_0x5d2847){_0x3a0372(_0x5d2847);});}});};exports[_0x04a2('0x34')]=function isAuthenticated(_0x31bfd1){return compose()[_0x04a2('0x35')](function(_0x2582a2,_0x46b1a7,_0x37f73e){var _0x3c2b6e;if(_0x2582a2['headers'][_0x04a2('0x43')]){if(_[_0x04a2('0x44')](_0x2582a2[_0x04a2('0x45')][_0x04a2('0x43')],_0x04a2('0x46'))){var _0x26b27b=basicAuth(_0x2582a2);db[_0x04a2('0x47')]['find']({'where':{'name':_0x26b27b['name']}})[_0x04a2('0x3c')](function(_0x154f6c){if(!_0x154f6c||!_0x154f6c[_0x04a2('0x48')](_0x26b27b['pass'])){return _0x46b1a7[_0x04a2('0x3e')](0x191)[_0x04a2('0x40')]({'message':'Wrong\x20credentials.'});}_0x2582a2[_0x04a2('0x36')]={'id':_0x154f6c['id']};_0x37f73e();})[_0x04a2('0x42')](function(_0x494af5){_0x37f73e(_0x494af5);});}else if(_[_0x04a2('0x44')](_0x2582a2['headers'][_0x04a2('0x43')],_0x04a2('0x49'))){validateJwt(_0x2582a2,_0x46b1a7,_0x37f73e);}else{if(_0x31bfd1){_0x37f73e();}else{return _0x46b1a7['status'](0x193)['json']({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x2582a2[_0x04a2('0x4a')][_0x04a2('0x4b')]){try{var _0xbacfa6={'audience':hardwareConf[_0x04a2('0x4c')](),'issuer':hardwareConf[_0x04a2('0x4c')]()};verifyJwt(_0x2582a2[_0x04a2('0x4a')][_0x04a2('0x4b')],_0xbacfa6)[_0x04a2('0x3c')](function(_0x2906ac){return db[_0x04a2('0x47')][_0x04a2('0x4d')]({'where':{'id':_0x2906ac[_0x04a2('0x4e')]}})[_0x04a2('0x3c')](function(_0x3364bb){_0x3c2b6e=_0x3364bb;return db[_0x04a2('0x4f')]['findOne']({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]});})[_0x04a2('0x3c')](function(_0x1dd219){if(!_0x3c2b6e||!_[_0x04a2('0x50')](_0x3c2b6e['apiKeyNonce'],_0x2906ac[_0x04a2('0x51')])){return _0x46b1a7[_0x04a2('0x3e')](0x191)[_0x04a2('0x40')]({'message':_0x04a2('0x52')});}if(_0x3c2b6e[_0x04a2('0x53')]){return _0x46b1a7[_0x04a2('0x3e')](0x191)[_0x04a2('0x40')]({'message':_0x04a2('0x54')});}if(_0x3c2b6e[_0x04a2('0x55')]){if(_0x1dd219[_0x04a2('0x56')]>0x0){if(moment(_0x3c2b6e['blockedAt'])[_0x04a2('0x57')](_0x1dd219[_0x04a2('0x56')],'minutes')>moment()){return _0x46b1a7[_0x04a2('0x3e')](0x191)[_0x04a2('0x40')]({'message':_0x04a2('0x54')});}}else{return _0x46b1a7[_0x04a2('0x3e')](0x191)[_0x04a2('0x40')]({'message':'Invalid\x20API\x20access\x20key'});}}_0x2582a2[_0x04a2('0x36')]={'id':_0x3c2b6e['id']};_0x37f73e();});})['catch'](function(){return _0x46b1a7['status'](0x191)['json']({'message':_0x04a2('0x54')});});}catch(_0x1f0a5e){_0x37f73e(_0x1f0a5e);}}else if(_0x31bfd1){_0x37f73e();}else{return _0x46b1a7[_0x04a2('0x3e')](0x193)['json']({'message':_0x04a2('0x58')});}})[_0x04a2('0x35')](function(_0x124f2a,_0x3cd899,_0x15f837){if(_0x124f2a['user']){db[_0x04a2('0x47')]['find']({'where':{'id':_0x124f2a[_0x04a2('0x36')]['id']},'attributes':userAttributes})[_0x04a2('0x3c')](function(_0x341c30){if(!_0x341c30){return _0x3cd899[_0x04a2('0x3e')](0x194)[_0x04a2('0x40')]({'message':_0x04a2('0x59')});}_0x124f2a[_0x04a2('0x36')]=_0x341c30;_0x15f837();})[_0x04a2('0x42')](function(_0x194c34){_0x15f837(_0x194c34);});}else if(_0x31bfd1){_0x15f837();}else{return _0x3cd899[_0x04a2('0x3e')](0x194)['json']({'message':_0x04a2('0x5a')});}});};exports[_0x04a2('0x5b')]=function canUpdate(){return compose()[_0x04a2('0x35')](function(_0x43a18b,_0x20f63f,_0x2e1970){return licenseUtil[_0x04a2('0x5c')]()[_0x04a2('0x3c')](function(_0x5eb5ef){if(_0x5eb5ef[_0x04a2('0x5d')]){_0x2e1970();}else{return _0x20f63f[_0x04a2('0x3e')](0x193)['json']({'message':'Forbidden'});}})[_0x04a2('0x42')](function(_0x24c93f){_0x2e1970(_0x24c93f);});});};exports[_0x04a2('0x5e')]=function isWebrtcLicence(){return compose()[_0x04a2('0x35')](function(_0x1f9f59,_0x720e9c,_0x45f30d){return licenseUtil['getLicense']()[_0x04a2('0x3c')](function(_0x10de04){if(_0x10de04['webrtc']){_0x45f30d();}else{return _0x720e9c[_0x04a2('0x3e')](0x193)[_0x04a2('0x40')]({'message':'Forbidden'});}})[_0x04a2('0x42')](function(_0x231e12){_0x45f30d(_0x231e12);});});};exports[_0x04a2('0x5f')]=function(_0x5237a8,_0x2a5b14,_0x47b6a0){_0x5237a8['isMiddleware']=!![];return _0x47b6a0();};exports[_0x04a2('0x60')]=function signToken(_0x54c160){return signJwt(_0x54c160);};exports['setTokenCookie']=function(_0x582fa2,_0x19155d){if(!_0x582fa2[_0x04a2('0x36')]){return _0x19155d[_0x04a2('0x3e')](0x194)['json']({'message':_0x04a2('0x61')});}var _0x4ba6f5={'payload':{'id':_0x582fa2[_0x04a2('0x36')]['id'],'role':_0x582fa2['user'][_0x04a2('0xb')]},'options':{'expiresIn':0x15180}};return signJwt(_0x4ba6f5)['then'](function(_0x57f361){_0x19155d[_0x04a2('0x62')]('motion.token',_0x57f361);_0x19155d[_0x04a2('0x63')]('/dashboards/general');})['catch'](function(_0xfee9d1){return _0x19155d[_0x04a2('0x3e')](0x1f4)[_0x04a2('0x64')](_0xfee9d1);});};exports[_0x04a2('0x65')]=function(_0x23c3c4){if(_[_0x04a2('0x66')](_0x23c3c4[_0x04a2('0x67')])||_[_0x04a2('0x66')](_0x23c3c4['apiKeyIat'])){return null;}else{return createJwt(_0x23c3c4);}};exports['generateApiKey']=function(_0x5d6b67){_0x5d6b67[_0x04a2('0x67')]=generateNonce();_0x5d6b67['apiKeyIat']=generateIssuedAt();return createJwt(_0x5d6b67);};exports[_0x04a2('0x68')]=function(_0x5d246c,_0x2e0682){var _0xf6c18a=_0x5d246c['query'][_0x04a2('0x4b')];if(_0xf6c18a){var _0x4ce808={'nonce':_0x2e0682[_0x04a2('0x67')],'iat':_0x2e0682[_0x04a2('0x69')],'audience':hardwareConf[_0x04a2('0x4c')](),'issuer':hardwareConf[_0x04a2('0x4c')]()};return verifyJwt(_0xf6c18a,_0x4ce808)[_0x04a2('0x3c')](function(){return generateApiKey(_0x2e0682);});}else{throw{'message':_0x04a2('0x6a')};}};exports[_0x04a2('0x6b')]=function(_0x3f5dc8){var _0x1220d7=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x1220d7[_0x04a2('0x6c')](_0x3f5dc8))throw new db[(_0x04a2('0x6d'))][(_0x04a2('0x6e'))](_0x04a2('0x6f'));return;};exports[_0x04a2('0x70')]=function(_0x2c9e4d,_0x1abab0,_0x9103b1){var _0x4f72f4=encryptor[_0x04a2('0x71')](_0x1abab0)['split'](',');for(var _0xaa75e4=0x0;_0xaa75e4<_0x9103b1;_0xaa75e4++){if(!_0x4f72f4[_0xaa75e4])break;if(_0x2c9e4d[_0x04a2('0x72')]()===_0x4f72f4[_0xaa75e4][_0x04a2('0x72')]()){var _0x2e80cf=util[_0x04a2('0x73')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x9103b1);if(_0x9103b1===0x1){_0x2e80cf=_0x04a2('0x74');}throw new db[(_0x04a2('0x6d'))][(_0x04a2('0x6e'))](_0x2e80cf);}}return;};exports[_0x04a2('0x75')]=function(_0x24daca,_0xfecaa9){var _0x3510e6=_0xfecaa9?encryptor['decryptString'](_0xfecaa9)['split'](','):[];if(_0x3510e6[_0x04a2('0x76')]===0x5){_0x3510e6[_0x04a2('0x77')](-0x1,0x1);}_0x3510e6[_0x04a2('0x78')](_0x24daca);return encryptor[_0x04a2('0x79')](_0x3510e6[_0x04a2('0x7a')](','));};function signJwt(_0x1ffd59){var _0x304e9e=BPromise['promisify'](jwt[_0x04a2('0x7b')],{'context':jwt});var _0x5f24fb=_0x1ffd59[_0x04a2('0x7c')]||config[_0x04a2('0xa')][_0x04a2('0x7d')];return new BPromise(function(_0x431766,_0xa3cc8e){_0x304e9e(_0x1ffd59[_0x04a2('0x7e')],_0x5f24fb,_0x1ffd59[_0x04a2('0x7f')])['then'](function(_0x5d3352){_0x431766(_0x5d3352);})['catch'](function(_0x102ce1){_0xa3cc8e(_0x102ce1);});});}function verifyJwt(_0x4d4fa9,_0x3ca896,_0x18949){var _0x14c44f=BPromise['promisify'](jwt[_0x04a2('0x80')],{'context':jwt});var _0x4213a7=_0x18949||config[_0x04a2('0xa')]['session'];return new BPromise(function(_0x3c5325,_0x3f8ac1){_0x14c44f(_0x4d4fa9,_0x4213a7,_0x3ca896)['then'](function(_0x16a708){_0x3c5325(_0x16a708);})[_0x04a2('0x42')](function(_0x269d88){_0x3f8ac1(_0x269d88);});});}function generateNonce(){return crypto[_0x04a2('0x81')](0x10)[_0x04a2('0x82')](_0x04a2('0x83'));}function generateIssuedAt(){return Math['floor'](Date['now']()/0x3e8)[_0x04a2('0x82')]();}function createJwt(_0x4dfed0){var _0x2284a0={'payload':{'iat':_0x4dfed0[_0x04a2('0x69')],'nonce':_0x4dfed0[_0x04a2('0x67')]},'options':{'algorithm':_0x04a2('0x84'),'subject':_0x4dfed0['id'][_0x04a2('0x82')](),'issuer':hardwareConf[_0x04a2('0x4c')](),'audience':hardwareConf[_0x04a2('0x4c')]()}};return signJwt(_0x2284a0)['then'](function(_0x4939d4){return{'iat':_0x4dfed0[_0x04a2('0x69')],'nonce':_0x4dfed0[_0x04a2('0x67')],'token':_0x4939d4};});}
\ No newline at end of file
+var _0x3032=['find','sub','Setting','findOne','isEqual','apiKeyNonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','Invalid\x20API\x20access\x20key','blocked','blockDuration','blockedAt','add','minutes','User\x20not\x20found.','canUpdate','getLicense','Forbidden','isWebrtcLicence','isMiddleware','signToken','setTokenCookie','cookie','motion.token','redirect','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','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~!@#$%^&-_=+[{]}.','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','Sequelize','updatePasswordsHistory','decryptString','splice','unshift','encryptString','join','promisify','sign','secret','session','payload','randomBytes','toString','hex','floor','now','../../mysqldb','../../config/license/hardware','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','role','fullname','name','internal','email','userpic','md5secret','chatPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableRecording','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','interface','userProfileId','settingsEnabled','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','chatAutoanswer','chatAutoanswerDelay','emailAutoanswer','emailAutoanswerDelay','smsAutoanswer','smsAutoanswerDelay','openchannelAutoanswerDelay','faxAutoanswer','faxAutoanswerDelay','whatsappAutoanswer','whatsappAutoanswerDelay','messengerSoundNotification','isAuthenticated','use','user','ChatInteraction','params','closed','disposition','query','status','unmanaged','Unmanaged.','Forbidden.','catch','headers','authorization','startsWith','Basic','User','then','authenticate','json','Bearer','Unknown\x20authorization\x20format','getUuid','apikey'];(function(_0x39733b,_0x40e4f0){var _0x1e5113=function(_0x3f3aaa){while(--_0x3f3aaa){_0x39733b['push'](_0x39733b['shift']());}};_0x1e5113(++_0x40e4f0);}(_0x3032,0x1d6));var _0x2303=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3032[_0x3dd15e];return _0x231fd0;};'use strict';var db=require(_0x2303('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0x2303('0x1'));var licenseUtil=require('../../config/license/util');var encryptor=require(_0x2303('0x2'));var _=require(_0x2303('0x3'));var jwt=require(_0x2303('0x4'));var expressJwt=require(_0x2303('0x5'));var compose=require(_0x2303('0x6'));var basicAuth=require(_0x2303('0x7'));var crypto=require(_0x2303('0x8'));var BPromise=require(_0x2303('0x9'));var util=require(_0x2303('0xa'));var moment=require(_0x2303('0xb'));var validateJwt=expressJwt({'secret':config[_0x2303('0xc')]['session']});var userAttributes=['id',_0x2303('0xd'),_0x2303('0xe'),_0x2303('0xf'),_0x2303('0x10'),_0x2303('0x11'),_0x2303('0x12'),'permissions',_0x2303('0x13'),'voicePause',_0x2303('0x14'),'mailPause',_0x2303('0x15'),_0x2303('0x16'),_0x2303('0x17'),_0x2303('0x18'),_0x2303('0x19'),'lastLoginAt',_0x2303('0x1a'),_0x2303('0x1b'),_0x2303('0x1c'),_0x2303('0x1d'),_0x2303('0x1e'),_0x2303('0x1f'),'phoneBarAutoAnswerDelay',_0x2303('0x20'),_0x2303('0x21'),'phoneBarEnableDtmfTone','phoneBarEnableSettings',_0x2303('0x22'),_0x2303('0x23'),_0x2303('0x24'),_0x2303('0x25'),'hotdesk',_0x2303('0x26'),_0x2303('0x27'),'privacyEnabled',_0x2303('0x28'),'wssPort',_0x2303('0x29'),_0x2303('0x2a'),_0x2303('0x2b'),_0x2303('0x2c'),'selectRecallMeCampaign',_0x2303('0x2d'),_0x2303('0x2e'),_0x2303('0x2f'),_0x2303('0x30'),_0x2303('0x31'),_0x2303('0x32'),'openchannelAutoanswer',_0x2303('0x33'),_0x2303('0x34'),_0x2303('0x35'),_0x2303('0x36'),_0x2303('0x37'),_0x2303('0x38')];exports['isChatInteractionAuthorized']=function(){return this[_0x2303('0x39')](!![])[_0x2303('0x3a')](function(_0x45f3ff,_0x895ce0,_0x559e11){if(_0x45f3ff[_0x2303('0x3b')]){_0x559e11();}else{return db[_0x2303('0x3c')]['findOne']({'where':{'id':_0x45f3ff[_0x2303('0x3d')]['id']},'attributes':['id',_0x2303('0x3e'),_0x2303('0x3f')],'raw':!![]})['then'](function(_0x14fb59){if(_0x14fb59&&_0x14fb59['closed']&&!_0x45f3ff[_0x2303('0x40')]['forceDownload']){return _0x895ce0[_0x2303('0x41')](_0x14fb59[_0x2303('0x3f')]===_0x2303('0x42')?0x195:0x193)['json']({'message':_0x14fb59['disposition']===_0x2303('0x42')?_0x2303('0x43'):_0x2303('0x44')});}else{_0x559e11();}})[_0x2303('0x45')](function(_0x2196ee){_0x559e11(_0x2196ee);});}});};exports[_0x2303('0x39')]=function isAuthenticated(_0x2162d0){return compose()[_0x2303('0x3a')](function(_0x16a9e1,_0x45aaf3,_0x5a3b03){var _0x56bb61;if(_0x16a9e1[_0x2303('0x46')][_0x2303('0x47')]){if(_[_0x2303('0x48')](_0x16a9e1['headers'][_0x2303('0x47')],_0x2303('0x49'))){var _0x381be8=basicAuth(_0x16a9e1);db[_0x2303('0x4a')]['find']({'where':{'name':_0x381be8[_0x2303('0xf')]}})[_0x2303('0x4b')](function(_0x58efda){if(!_0x58efda||!_0x58efda[_0x2303('0x4c')](_0x381be8['pass'])){return _0x45aaf3[_0x2303('0x41')](0x191)[_0x2303('0x4d')]({'message':'Wrong\x20credentials.'});}_0x16a9e1[_0x2303('0x3b')]={'id':_0x58efda['id']};_0x5a3b03();})[_0x2303('0x45')](function(_0x555fe3){_0x5a3b03(_0x555fe3);});}else if(_[_0x2303('0x48')](_0x16a9e1[_0x2303('0x46')][_0x2303('0x47')],_0x2303('0x4e'))){validateJwt(_0x16a9e1,_0x45aaf3,_0x5a3b03);}else{if(_0x2162d0){_0x5a3b03();}else{return _0x45aaf3[_0x2303('0x41')](0x193)[_0x2303('0x4d')]({'message':_0x2303('0x4f')});}}}else if(_0x16a9e1[_0x2303('0x40')]['apikey']){try{var _0x1dc557={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x2303('0x50')]()};verifyJwt(_0x16a9e1[_0x2303('0x40')][_0x2303('0x51')],_0x1dc557)['then'](function(_0x214de5){return db['User'][_0x2303('0x52')]({'where':{'id':_0x214de5[_0x2303('0x53')]}})[_0x2303('0x4b')](function(_0x34ca99){_0x56bb61=_0x34ca99;return db[_0x2303('0x54')][_0x2303('0x55')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]});})['then'](function(_0x43696a){if(!_0x56bb61||!_[_0x2303('0x56')](_0x56bb61[_0x2303('0x57')],_0x214de5['nonce'])){return _0x45aaf3['status'](0x191)['json']({'message':_0x2303('0x58')});}if(_0x56bb61['disabled']){return _0x45aaf3[_0x2303('0x41')](0x191)[_0x2303('0x4d')]({'message':_0x2303('0x59')});}if(_0x56bb61[_0x2303('0x5a')]){if(_0x43696a[_0x2303('0x5b')]>0x0){if(moment(_0x56bb61[_0x2303('0x5c')])[_0x2303('0x5d')](_0x43696a[_0x2303('0x5b')],_0x2303('0x5e'))>moment()){return _0x45aaf3['status'](0x191)[_0x2303('0x4d')]({'message':_0x2303('0x59')});}}else{return _0x45aaf3[_0x2303('0x41')](0x191)[_0x2303('0x4d')]({'message':_0x2303('0x59')});}}_0x16a9e1[_0x2303('0x3b')]={'id':_0x56bb61['id']};_0x5a3b03();});})[_0x2303('0x45')](function(){return _0x45aaf3[_0x2303('0x41')](0x191)['json']({'message':_0x2303('0x59')});});}catch(_0x5ea3cb){_0x5a3b03(_0x5ea3cb);}}else if(_0x2162d0){_0x5a3b03();}else{return _0x45aaf3[_0x2303('0x41')](0x193)[_0x2303('0x4d')]({'message':_0x2303('0x4f')});}})[_0x2303('0x3a')](function(_0x17c883,_0x2ada25,_0x2ef53b){if(_0x17c883[_0x2303('0x3b')]){db['User'][_0x2303('0x52')]({'where':{'id':_0x17c883[_0x2303('0x3b')]['id']},'attributes':userAttributes})[_0x2303('0x4b')](function(_0x4a228f){if(!_0x4a228f){return _0x2ada25[_0x2303('0x41')](0x194)['json']({'message':_0x2303('0x5f')});}_0x17c883['user']=_0x4a228f;_0x2ef53b();})['catch'](function(_0x33b03f){_0x2ef53b(_0x33b03f);});}else if(_0x2162d0){_0x2ef53b();}else{return _0x2ada25[_0x2303('0x41')](0x194)[_0x2303('0x4d')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x2303('0x60')]=function canUpdate(){return compose()[_0x2303('0x3a')](function(_0x3fd51b,_0x167c36,_0xb4825d){return licenseUtil[_0x2303('0x61')]()['then'](function(_0x55d262){if(_0x55d262['update']){_0xb4825d();}else{return _0x167c36[_0x2303('0x41')](0x193)[_0x2303('0x4d')]({'message':_0x2303('0x62')});}})[_0x2303('0x45')](function(_0x507e85){_0xb4825d(_0x507e85);});});};exports[_0x2303('0x63')]=function isWebrtcLicence(){return compose()[_0x2303('0x3a')](function(_0x43d65e,_0x139dea,_0x4d8933){return licenseUtil[_0x2303('0x61')]()[_0x2303('0x4b')](function(_0x295ead){if(_0x295ead['webrtc']){_0x4d8933();}else{return _0x139dea[_0x2303('0x41')](0x193)[_0x2303('0x4d')]({'message':_0x2303('0x62')});}})['catch'](function(_0x569404){_0x4d8933(_0x569404);});});};exports[_0x2303('0x64')]=function(_0x3f98ff,_0x196ce5,_0x4c6cb7){_0x3f98ff['isMiddleware']=!![];return _0x4c6cb7();};exports[_0x2303('0x65')]=function signToken(_0x158dcc){return signJwt(_0x158dcc);};exports[_0x2303('0x66')]=function(_0x5db98f,_0xbf4d56){if(!_0x5db98f[_0x2303('0x3b')]){return _0xbf4d56[_0x2303('0x41')](0x194)[_0x2303('0x4d')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x35e5e3={'payload':{'id':_0x5db98f[_0x2303('0x3b')]['id'],'role':_0x5db98f[_0x2303('0x3b')]['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x35e5e3)[_0x2303('0x4b')](function(_0x494629){_0xbf4d56[_0x2303('0x67')](_0x2303('0x68'),_0x494629);_0xbf4d56[_0x2303('0x69')](_0x2303('0x6a'));})[_0x2303('0x45')](function(_0x59db94){return _0xbf4d56[_0x2303('0x41')](0x1f4)[_0x2303('0x6b')](_0x59db94);});};exports[_0x2303('0x6c')]=function(_0x258245){if(_[_0x2303('0x6d')](_0x258245[_0x2303('0x57')])||_[_0x2303('0x6d')](_0x258245[_0x2303('0x6e')])){return null;}else{return createJwt(_0x258245);}};exports[_0x2303('0x6f')]=function(_0x4e2cf1){_0x4e2cf1['apiKeyNonce']=generateNonce();_0x4e2cf1[_0x2303('0x6e')]=generateIssuedAt();return createJwt(_0x4e2cf1);};exports[_0x2303('0x70')]=function(_0x1f4ebe,_0x51efad){var _0x1d7a22=_0x1f4ebe[_0x2303('0x40')][_0x2303('0x51')];if(_0x1d7a22){var _0x5cdee2={'nonce':_0x51efad[_0x2303('0x57')],'iat':_0x51efad['apiKeyIat'],'audience':hardwareConf[_0x2303('0x50')](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x1d7a22,_0x5cdee2)[_0x2303('0x4b')](function(){return generateApiKey(_0x51efad);});}else{throw{'message':_0x2303('0x71')};}};exports['validatePasswordPattern']=function(_0x7ec490){var _0x412aa5=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x412aa5[_0x2303('0x72')](_0x7ec490))throw new db['Sequelize'][(_0x2303('0x73'))](_0x2303('0x74'));return;};exports['validatePasswordHistory']=function(_0x164011,_0x23f6e4,_0x9a5404){var _0x1827ef=encryptor['decryptString'](_0x23f6e4)[_0x2303('0x75')](',');for(var _0x368bb2=0x0;_0x368bb2<_0x9a5404;_0x368bb2++){if(!_0x1827ef[_0x368bb2])break;if(_0x164011[_0x2303('0x76')]()===_0x1827ef[_0x368bb2][_0x2303('0x76')]()){var _0x4f9452=util[_0x2303('0x77')](_0x2303('0x78'),_0x9a5404);if(_0x9a5404===0x1){_0x4f9452='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0x2303('0x79'))]['ValidationError'](_0x4f9452);}}return;};exports[_0x2303('0x7a')]=function(_0x107fa6,_0x1a3e13){var _0x24d23d=_0x1a3e13?encryptor[_0x2303('0x7b')](_0x1a3e13)[_0x2303('0x75')](','):[];if(_0x24d23d['length']===0x5){_0x24d23d[_0x2303('0x7c')](-0x1,0x1);}_0x24d23d[_0x2303('0x7d')](_0x107fa6);return encryptor[_0x2303('0x7e')](_0x24d23d[_0x2303('0x7f')](','));};function signJwt(_0x2086ea){var _0x5bd5ad=BPromise[_0x2303('0x80')](jwt[_0x2303('0x81')],{'context':jwt});var _0x49df3f=_0x2086ea[_0x2303('0x82')]||config[_0x2303('0xc')][_0x2303('0x83')];return new BPromise(function(_0x4f4348,_0x30b3c3){_0x5bd5ad(_0x2086ea[_0x2303('0x84')],_0x49df3f,_0x2086ea['options'])['then'](function(_0x41d19e){_0x4f4348(_0x41d19e);})[_0x2303('0x45')](function(_0x5741c5){_0x30b3c3(_0x5741c5);});});}function verifyJwt(_0x5a6bf2,_0x3c073d,_0x3854f9){var _0x296f4e=BPromise['promisify'](jwt['verify'],{'context':jwt});var _0xd4144c=_0x3854f9||config[_0x2303('0xc')][_0x2303('0x83')];return new BPromise(function(_0x2a5bad,_0x275a2a){_0x296f4e(_0x5a6bf2,_0xd4144c,_0x3c073d)[_0x2303('0x4b')](function(_0x5dcfe8){_0x2a5bad(_0x5dcfe8);})[_0x2303('0x45')](function(_0x30d2b5){_0x275a2a(_0x30d2b5);});});}function generateNonce(){return crypto[_0x2303('0x85')](0x10)[_0x2303('0x86')](_0x2303('0x87'));}function generateIssuedAt(){return Math[_0x2303('0x88')](Date[_0x2303('0x89')]()/0x3e8)[_0x2303('0x86')]();}function createJwt(_0x16a4ce){var _0x2e3c4d={'payload':{'iat':_0x16a4ce[_0x2303('0x6e')],'nonce':_0x16a4ce[_0x2303('0x57')]},'options':{'algorithm':'HS512','subject':_0x16a4ce['id']['toString'](),'issuer':hardwareConf[_0x2303('0x50')](),'audience':hardwareConf[_0x2303('0x50')]()}};return signJwt(_0x2e3c4d)['then'](function(_0x3e7e6a){return{'iat':_0x16a4ce[_0x2303('0x6e')],'nonce':_0x16a4ce[_0x2303('0x57')],'token':_0x3e7e6a};});}
\ No newline at end of file