Built motion from commit f3da74b7.|2.5.36
[motion2.git] / server / components / auth / service.js
index 978bd2f..e31b031 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x62bd=['json','Unmanaged.','Forbidden.','catch','headers','authorization','startsWith','Basic','find','authenticate','pass','Wrong\x20credentials.','Bearer','status','Unknown\x20authorization\x20format','query','apikey','getUuid','User','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','disabled','Invalid\x20API\x20access\x20key','blocked','blockedAt','add','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','role','cookie','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','ValidationError','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','length','unshift','encryptString','join','promisify','sign','payload','verify','randomBytes','toString','hex','floor','HS512','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','express-jwt','composable-middleware','basic-auth','crypto','util','moment','secrets','session','fullname','name','email','userpic','md5secret','voicePause','chatPause','mailPause','smsPause','openchannelPause','showWebBar','lastPauseAt','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','hotdesk','interface','userProfileId','privacyEnabled','wssPort','downloadAttachments','selectRecallMeCampaign','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','closed','disposition','then','unmanaged'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0x62bd,0x146));var _0xd62b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x62bd[_0x3dd15e];return _0x231fd0;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0xd62b('0x0'));var hardwareConf=require(_0xd62b('0x1'));var licenseUtil=require(_0xd62b('0x2'));var encryptor=require(_0xd62b('0x3'));var _=require(_0xd62b('0x4'));var jwt=require('jsonwebtoken');var expressJwt=require(_0xd62b('0x5'));var compose=require(_0xd62b('0x6'));var basicAuth=require(_0xd62b('0x7'));var crypto=require(_0xd62b('0x8'));var BPromise=require('bluebird');var util=require(_0xd62b('0x9'));var moment=require(_0xd62b('0xa'));var validateJwt=expressJwt({'secret':config[_0xd62b('0xb')][_0xd62b('0xc')]});var userAttributes=['id','role',_0xd62b('0xd'),_0xd62b('0xe'),'internal',_0xd62b('0xf'),_0xd62b('0x10'),'permissions',_0xd62b('0x11'),_0xd62b('0x12'),_0xd62b('0x13'),_0xd62b('0x14'),'faxPause',_0xd62b('0x15'),_0xd62b('0x16'),'pauseType',_0xd62b('0x17'),'lastLoginAt',_0xd62b('0x18'),'crudPermissions',_0xd62b('0x19'),_0xd62b('0x1a'),_0xd62b('0x1b'),_0xd62b('0x1c'),_0xd62b('0x1d'),'phoneBarDnd','phoneBarEnableRecording',_0xd62b('0x1e'),_0xd62b('0x1f'),_0xd62b('0x20'),_0xd62b('0x21'),'phoneBarRemoteControl','phoneBarRemoteControlPort',_0xd62b('0x22'),_0xd62b('0x23'),_0xd62b('0x24'),_0xd62b('0x25'),'settingsEnabled',_0xd62b('0x26'),'downloadVoiceRecordings','downloadOmnichannelInteractions',_0xd62b('0x27'),'ignorePauseForPreviewCalls',_0xd62b('0x28')];exports[_0xd62b('0x29')]=function(){return this[_0xd62b('0x2a')](!![])[_0xd62b('0x2b')](function(_0x5e9f54,_0x370c42,_0x7d9afa){if(_0x5e9f54[_0xd62b('0x2c')]){_0x7d9afa();}else{return db[_0xd62b('0x2d')][_0xd62b('0x2e')]({'where':{'id':_0x5e9f54[_0xd62b('0x2f')]['id']},'attributes':['id',_0xd62b('0x30'),_0xd62b('0x31')],'raw':!![]})[_0xd62b('0x32')](function(_0x3196cf){if(_0x3196cf&&_0x3196cf['closed']){return _0x370c42['status'](_0x3196cf[_0xd62b('0x31')]===_0xd62b('0x33')?0x195:0x193)[_0xd62b('0x34')]({'message':_0x3196cf[_0xd62b('0x31')]==='unmanaged'?_0xd62b('0x35'):_0xd62b('0x36')});}else{_0x7d9afa();}})[_0xd62b('0x37')](function(_0x338433){_0x7d9afa(_0x338433);});}});};exports[_0xd62b('0x2a')]=function isAuthenticated(_0x1d9fed){return compose()['use'](function(_0xdc6300,_0x439e3b,_0xb3b427){var _0xec6f47;if(_0xdc6300[_0xd62b('0x38')][_0xd62b('0x39')]){if(_[_0xd62b('0x3a')](_0xdc6300[_0xd62b('0x38')][_0xd62b('0x39')],_0xd62b('0x3b'))){var _0x1e500e=basicAuth(_0xdc6300);db['User'][_0xd62b('0x3c')]({'where':{'name':_0x1e500e[_0xd62b('0xe')]}})[_0xd62b('0x32')](function(_0xe38660){if(!_0xe38660||!_0xe38660[_0xd62b('0x3d')](_0x1e500e[_0xd62b('0x3e')])){return _0x439e3b['status'](0x191)[_0xd62b('0x34')]({'message':_0xd62b('0x3f')});}_0xdc6300[_0xd62b('0x2c')]={'id':_0xe38660['id']};_0xb3b427();})['catch'](function(_0x103bad){_0xb3b427(_0x103bad);});}else if(_[_0xd62b('0x3a')](_0xdc6300[_0xd62b('0x38')][_0xd62b('0x39')],_0xd62b('0x40'))){validateJwt(_0xdc6300,_0x439e3b,_0xb3b427);}else{if(_0x1d9fed){_0xb3b427();}else{return _0x439e3b[_0xd62b('0x41')](0x193)[_0xd62b('0x34')]({'message':_0xd62b('0x42')});}}}else if(_0xdc6300[_0xd62b('0x43')][_0xd62b('0x44')]){try{var _0x59ac55={'audience':hardwareConf[_0xd62b('0x45')](),'issuer':hardwareConf[_0xd62b('0x45')]()};verifyJwt(_0xdc6300[_0xd62b('0x43')][_0xd62b('0x44')],_0x59ac55)[_0xd62b('0x32')](function(_0x4b3684){return db[_0xd62b('0x46')][_0xd62b('0x3c')]({'where':{'id':_0x4b3684[_0xd62b('0x47')]}})['then'](function(_0x29c5f3){_0xec6f47=_0x29c5f3;return db[_0xd62b('0x48')][_0xd62b('0x2e')]({'where':{'id':0x1},'attributes':[_0xd62b('0x49'),_0xd62b('0x4a')],'raw':!![]});})['then'](function(_0x38d4b6){if(!_0xec6f47||!_[_0xd62b('0x4b')](_0xec6f47[_0xd62b('0x4c')],_0x4b3684[_0xd62b('0x4d')])){return _0x439e3b[_0xd62b('0x41')](0x191)[_0xd62b('0x34')]({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0xec6f47[_0xd62b('0x4e')]){return _0x439e3b[_0xd62b('0x41')](0x191)[_0xd62b('0x34')]({'message':_0xd62b('0x4f')});}if(_0xec6f47[_0xd62b('0x50')]){if(_0x38d4b6[_0xd62b('0x4a')]>0x0){if(moment(_0xec6f47[_0xd62b('0x51')])[_0xd62b('0x52')](_0x38d4b6[_0xd62b('0x4a')],'minutes')>moment()){return _0x439e3b[_0xd62b('0x41')](0x191)[_0xd62b('0x34')]({'message':_0xd62b('0x4f')});}}else{return _0x439e3b[_0xd62b('0x41')](0x191)[_0xd62b('0x34')]({'message':_0xd62b('0x4f')});}}_0xdc6300[_0xd62b('0x2c')]={'id':_0xec6f47['id']};_0xb3b427();});})['catch'](function(){return _0x439e3b['status'](0x191)[_0xd62b('0x34')]({'message':_0xd62b('0x4f')});});}catch(_0x105a8b){_0xb3b427(_0x105a8b);}}else if(_0x1d9fed){_0xb3b427();}else{return _0x439e3b[_0xd62b('0x41')](0x193)[_0xd62b('0x34')]({'message':_0xd62b('0x42')});}})['use'](function(_0x32b251,_0x3cc17f,_0x5ef219){if(_0x32b251[_0xd62b('0x2c')]){db[_0xd62b('0x46')][_0xd62b('0x3c')]({'where':{'id':_0x32b251[_0xd62b('0x2c')]['id']},'attributes':userAttributes})[_0xd62b('0x32')](function(_0x3296f5){if(!_0x3296f5){return _0x3cc17f['status'](0x194)[_0xd62b('0x34')]({'message':_0xd62b('0x53')});}_0x32b251[_0xd62b('0x2c')]=_0x3296f5;_0x5ef219();})[_0xd62b('0x37')](function(_0x12b934){_0x5ef219(_0x12b934);});}else if(_0x1d9fed){_0x5ef219();}else{return _0x3cc17f['status'](0x194)['json']({'message':_0xd62b('0x54')});}});};exports[_0xd62b('0x55')]=function canUpdate(){return compose()[_0xd62b('0x2b')](function(_0x542db9,_0x5db589,_0x17ca26){return licenseUtil['getLicense']()[_0xd62b('0x32')](function(_0x5361a9){if(_0x5361a9[_0xd62b('0x56')]){_0x17ca26();}else{return _0x5db589[_0xd62b('0x41')](0x193)[_0xd62b('0x34')]({'message':_0xd62b('0x57')});}})['catch'](function(_0x496e9b){_0x17ca26(_0x496e9b);});});};exports[_0xd62b('0x58')]=function(_0x2a7262,_0x155c68,_0x5e0a73){_0x2a7262[_0xd62b('0x58')]=!![];return _0x5e0a73();};exports[_0xd62b('0x59')]=function signToken(_0x32c495){return signJwt(_0x32c495);};exports[_0xd62b('0x5a')]=function(_0x24e627,_0x3d811e){if(!_0x24e627[_0xd62b('0x2c')]){return _0x3d811e[_0xd62b('0x41')](0x194)['json']({'message':_0xd62b('0x5b')});}var _0x20e510={'payload':{'id':_0x24e627[_0xd62b('0x2c')]['id'],'role':_0x24e627[_0xd62b('0x2c')][_0xd62b('0x5c')]},'options':{'expiresIn':0x15180}};return signJwt(_0x20e510)['then'](function(_0x41e440){_0x3d811e[_0xd62b('0x5d')]('motion.token',_0x41e440);_0x3d811e['redirect'](_0xd62b('0x5e'));})[_0xd62b('0x37')](function(_0x203529){return _0x3d811e[_0xd62b('0x41')](0x1f4)[_0xd62b('0x5f')](_0x203529);});};exports[_0xd62b('0x60')]=function(_0x4e5da6){if(_[_0xd62b('0x61')](_0x4e5da6[_0xd62b('0x4c')])||_[_0xd62b('0x61')](_0x4e5da6[_0xd62b('0x62')])){return null;}else{return createJwt(_0x4e5da6);}};exports[_0xd62b('0x63')]=function(_0x5dff1e){_0x5dff1e[_0xd62b('0x4c')]=generateNonce();_0x5dff1e[_0xd62b('0x62')]=generateIssuedAt();return createJwt(_0x5dff1e);};exports['regenerateApiKey']=function(_0x361a93,_0x456671){var _0x2d9ba2=_0x361a93[_0xd62b('0x43')][_0xd62b('0x44')];if(_0x2d9ba2){var _0x9b1362={'nonce':_0x456671[_0xd62b('0x4c')],'iat':_0x456671[_0xd62b('0x62')],'audience':hardwareConf[_0xd62b('0x45')](),'issuer':hardwareConf[_0xd62b('0x45')]()};return verifyJwt(_0x2d9ba2,_0x9b1362)['then'](function(){return generateApiKey(_0x456671);});}else{throw{'message':_0xd62b('0x64')};}};exports[_0xd62b('0x65')]=function(_0x2e03a8){var _0x3e7e50=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3e7e50[_0xd62b('0x66')](_0x2e03a8))throw new db[(_0xd62b('0x67'))][(_0xd62b('0x68'))]('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[_0xd62b('0x69')]=function(_0x52c00c,_0x5d3324,_0x3b3975){var _0x3b542c=encryptor[_0xd62b('0x6a')](_0x5d3324)['split'](',');for(var _0x51fc5b=0x0;_0x51fc5b<_0x3b3975;_0x51fc5b++){if(!_0x3b542c[_0x51fc5b])break;if(_0x52c00c[_0xd62b('0x6b')]()===_0x3b542c[_0x51fc5b][_0xd62b('0x6b')]()){var _0x51ebd8=util[_0xd62b('0x6c')](_0xd62b('0x6d'),_0x3b3975);if(_0x3b3975===0x1){_0x51ebd8=_0xd62b('0x6e');}throw new db['Sequelize'][(_0xd62b('0x68'))](_0x51ebd8);}}return;};exports[_0xd62b('0x6f')]=function(_0x395948,_0x581d53){var _0x1941a7=_0x581d53?encryptor[_0xd62b('0x6a')](_0x581d53)[_0xd62b('0x70')](','):[];if(_0x1941a7[_0xd62b('0x71')]===0x5){_0x1941a7['splice'](-0x1,0x1);}_0x1941a7[_0xd62b('0x72')](_0x395948);return encryptor[_0xd62b('0x73')](_0x1941a7[_0xd62b('0x74')](','));};function signJwt(_0x5541e8){var _0x24f1a6=BPromise[_0xd62b('0x75')](jwt[_0xd62b('0x76')],{'context':jwt});var _0x3abcbb=_0x5541e8['secret']||config[_0xd62b('0xb')]['session'];return new BPromise(function(_0x733b8c,_0x173d28){_0x24f1a6(_0x5541e8[_0xd62b('0x77')],_0x3abcbb,_0x5541e8['options'])[_0xd62b('0x32')](function(_0x44363e){_0x733b8c(_0x44363e);})[_0xd62b('0x37')](function(_0x523f74){_0x173d28(_0x523f74);});});}function verifyJwt(_0x4efd9c,_0x35571f,_0x586231){var _0x594113=BPromise[_0xd62b('0x75')](jwt[_0xd62b('0x78')],{'context':jwt});var _0x30ab39=_0x586231||config['secrets'][_0xd62b('0xc')];return new BPromise(function(_0x2d86d8,_0x403eeb){_0x594113(_0x4efd9c,_0x30ab39,_0x35571f)[_0xd62b('0x32')](function(_0x3d6c84){_0x2d86d8(_0x3d6c84);})[_0xd62b('0x37')](function(_0x31621d){_0x403eeb(_0x31621d);});});}function generateNonce(){return crypto[_0xd62b('0x79')](0x10)[_0xd62b('0x7a')](_0xd62b('0x7b'));}function generateIssuedAt(){return Math[_0xd62b('0x7c')](Date['now']()/0x3e8)[_0xd62b('0x7a')]();}function createJwt(_0x1506ed){var _0x220478={'payload':{'iat':_0x1506ed[_0xd62b('0x62')],'nonce':_0x1506ed[_0xd62b('0x4c')]},'options':{'algorithm':_0xd62b('0x7d'),'subject':_0x1506ed['id']['toString'](),'issuer':hardwareConf[_0xd62b('0x45')](),'audience':hardwareConf[_0xd62b('0x45')]()}};return signJwt(_0x220478)[_0xd62b('0x32')](function(_0x1b5b16){return{'iat':_0x1506ed[_0xd62b('0x62')],'nonce':_0x1506ed[_0xd62b('0x4c')],'token':_0x1b5b16};});}
\ No newline at end of file
+var _0xc539=['phoneBarDnd','phoneBarEnableRecording','phoneBarEnableSettings','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','interface','userProfileId','privacyEnabled','settingsEnabled','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','selectRecallMeCampaign','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','then','status','unmanaged','json','Unmanaged.','Forbidden.','isAuthenticated','headers','authorization','startsWith','Basic','User','find','authenticate','pass','Wrong\x20credentials.','catch','Unknown\x20authorization\x20format','query','apikey','sub','Setting','allowedLoginAttempts','blockDuration','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','blockedAt','add','minutes','User\x20not\x20found.','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','/dashboards/general','send','retrieveApiKey','isNil','generateApiKey','apiKeyIat','regenerateApiKey','getUuid','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','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.','updatePasswordsHistory','length','splice','unshift','encryptString','join','promisify','secrets','options','verify','hex','floor','now','toString','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','composable-middleware','crypto','bluebird','util','moment','session','role','fullname','name','internal','email','userpic','permissions','md5secret','chatPause','faxPause','openchannelPause','pauseType','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','phoneBarAutoAnswer','phoneBarAutoAnswerDelay'];(function(_0x453342,_0x4a8d76){var _0x397416=function(_0xf56776){while(--_0xf56776){_0x453342['push'](_0x453342['shift']());}};_0x397416(++_0x4a8d76);}(_0xc539,0xe8));var _0x9c53=function(_0x33beb4,_0xc125cb){_0x33beb4=_0x33beb4-0x0;var _0x4da4f2=_0xc539[_0x33beb4];return _0x4da4f2;};'use strict';var db=require(_0x9c53('0x0'))['db'];var config=require(_0x9c53('0x1'));var hardwareConf=require(_0x9c53('0x2'));var licenseUtil=require(_0x9c53('0x3'));var encryptor=require(_0x9c53('0x4'));var _=require(_0x9c53('0x5'));var jwt=require(_0x9c53('0x6'));var expressJwt=require('express-jwt');var compose=require(_0x9c53('0x7'));var basicAuth=require('basic-auth');var crypto=require(_0x9c53('0x8'));var BPromise=require(_0x9c53('0x9'));var util=require(_0x9c53('0xa'));var moment=require(_0x9c53('0xb'));var validateJwt=expressJwt({'secret':config['secrets'][_0x9c53('0xc')]});var userAttributes=['id',_0x9c53('0xd'),_0x9c53('0xe'),_0x9c53('0xf'),_0x9c53('0x10'),_0x9c53('0x11'),_0x9c53('0x12'),_0x9c53('0x13'),_0x9c53('0x14'),'voicePause',_0x9c53('0x15'),'mailPause',_0x9c53('0x16'),'smsPause',_0x9c53('0x17'),_0x9c53('0x18'),'showWebBar',_0x9c53('0x19'),_0x9c53('0x1a'),_0x9c53('0x1b'),_0x9c53('0x1c'),_0x9c53('0x1d'),'alias',_0x9c53('0x1e'),_0x9c53('0x1f'),_0x9c53('0x20'),_0x9c53('0x21'),'phoneBarEnableDtmfTone',_0x9c53('0x22'),'phoneBarExpires',_0x9c53('0x23'),_0x9c53('0x24'),_0x9c53('0x25'),'hotdesk',_0x9c53('0x26'),_0x9c53('0x27'),_0x9c53('0x28'),_0x9c53('0x29'),'wssPort','downloadVoiceRecordings',_0x9c53('0x2a'),_0x9c53('0x2b'),_0x9c53('0x2c'),_0x9c53('0x2d')];exports[_0x9c53('0x2e')]=function(){return this['isAuthenticated'](!![])[_0x9c53('0x2f')](function(_0x413095,_0x347be5,_0x2adff2){if(_0x413095[_0x9c53('0x30')]){_0x2adff2();}else{return db[_0x9c53('0x31')][_0x9c53('0x32')]({'where':{'id':_0x413095[_0x9c53('0x33')]['id']},'attributes':['id',_0x9c53('0x34'),_0x9c53('0x35')],'raw':!![]})[_0x9c53('0x36')](function(_0x12173e){if(_0x12173e&&_0x12173e['closed']){return _0x347be5[_0x9c53('0x37')](_0x12173e[_0x9c53('0x35')]===_0x9c53('0x38')?0x195:0x193)[_0x9c53('0x39')]({'message':_0x12173e['disposition']==='unmanaged'?_0x9c53('0x3a'):_0x9c53('0x3b')});}else{_0x2adff2();}})['catch'](function(_0xd78b0){_0x2adff2(_0xd78b0);});}});};exports[_0x9c53('0x3c')]=function isAuthenticated(_0x5ac47a){return compose()[_0x9c53('0x2f')](function(_0x320691,_0x102039,_0xbb4a6d){var _0x33753d;if(_0x320691[_0x9c53('0x3d')][_0x9c53('0x3e')]){if(_[_0x9c53('0x3f')](_0x320691[_0x9c53('0x3d')][_0x9c53('0x3e')],_0x9c53('0x40'))){var _0x104170=basicAuth(_0x320691);db[_0x9c53('0x41')][_0x9c53('0x42')]({'where':{'name':_0x104170[_0x9c53('0xf')]}})[_0x9c53('0x36')](function(_0xcaf9fc){if(!_0xcaf9fc||!_0xcaf9fc[_0x9c53('0x43')](_0x104170[_0x9c53('0x44')])){return _0x102039[_0x9c53('0x37')](0x191)[_0x9c53('0x39')]({'message':_0x9c53('0x45')});}_0x320691[_0x9c53('0x30')]={'id':_0xcaf9fc['id']};_0xbb4a6d();})[_0x9c53('0x46')](function(_0x5f4d0b){_0xbb4a6d(_0x5f4d0b);});}else if(_[_0x9c53('0x3f')](_0x320691[_0x9c53('0x3d')][_0x9c53('0x3e')],'Bearer')){validateJwt(_0x320691,_0x102039,_0xbb4a6d);}else{if(_0x5ac47a){_0xbb4a6d();}else{return _0x102039['status'](0x193)['json']({'message':_0x9c53('0x47')});}}}else if(_0x320691[_0x9c53('0x48')][_0x9c53('0x49')]){try{var _0x3cc0ea={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x320691[_0x9c53('0x48')][_0x9c53('0x49')],_0x3cc0ea)[_0x9c53('0x36')](function(_0x3a50da){return db['User']['find']({'where':{'id':_0x3a50da[_0x9c53('0x4a')]}})[_0x9c53('0x36')](function(_0x25b3a4){_0x33753d=_0x25b3a4;return db[_0x9c53('0x4b')]['findOne']({'where':{'id':0x1},'attributes':[_0x9c53('0x4c'),_0x9c53('0x4d')],'raw':!![]});})['then'](function(_0x85c357){if(!_0x33753d||!_['isEqual'](_0x33753d[_0x9c53('0x4e')],_0x3a50da[_0x9c53('0x4f')])){return _0x102039[_0x9c53('0x37')](0x191)[_0x9c53('0x39')]({'message':_0x9c53('0x50')});}if(_0x33753d[_0x9c53('0x51')]){return _0x102039['status'](0x191)['json']({'message':_0x9c53('0x52')});}if(_0x33753d[_0x9c53('0x53')]){if(_0x85c357[_0x9c53('0x4d')]>0x0){if(moment(_0x33753d[_0x9c53('0x54')])[_0x9c53('0x55')](_0x85c357[_0x9c53('0x4d')],_0x9c53('0x56'))>moment()){return _0x102039['status'](0x191)[_0x9c53('0x39')]({'message':_0x9c53('0x52')});}}else{return _0x102039['status'](0x191)[_0x9c53('0x39')]({'message':_0x9c53('0x52')});}}_0x320691['user']={'id':_0x33753d['id']};_0xbb4a6d();});})[_0x9c53('0x46')](function(){return _0x102039[_0x9c53('0x37')](0x191)[_0x9c53('0x39')]({'message':_0x9c53('0x52')});});}catch(_0x30b507){_0xbb4a6d(_0x30b507);}}else if(_0x5ac47a){_0xbb4a6d();}else{return _0x102039['status'](0x193)[_0x9c53('0x39')]({'message':_0x9c53('0x47')});}})['use'](function(_0x485159,_0x5b12bd,_0x208588){if(_0x485159[_0x9c53('0x30')]){db[_0x9c53('0x41')][_0x9c53('0x42')]({'where':{'id':_0x485159[_0x9c53('0x30')]['id']},'attributes':userAttributes})[_0x9c53('0x36')](function(_0x28c223){if(!_0x28c223){return _0x5b12bd['status'](0x194)[_0x9c53('0x39')]({'message':_0x9c53('0x57')});}_0x485159[_0x9c53('0x30')]=_0x28c223;_0x208588();})[_0x9c53('0x46')](function(_0x33015d){_0x208588(_0x33015d);});}else if(_0x5ac47a){_0x208588();}else{return _0x5b12bd[_0x9c53('0x37')](0x194)[_0x9c53('0x39')]({'message':'User\x20object\x20not\x20found.'});}});};exports['canUpdate']=function canUpdate(){return compose()[_0x9c53('0x2f')](function(_0x38c886,_0x3482bb,_0x3b378c){return licenseUtil[_0x9c53('0x58')]()[_0x9c53('0x36')](function(_0x4a6572){if(_0x4a6572[_0x9c53('0x59')]){_0x3b378c();}else{return _0x3482bb[_0x9c53('0x37')](0x193)[_0x9c53('0x39')]({'message':_0x9c53('0x5a')});}})[_0x9c53('0x46')](function(_0xd75146){_0x3b378c(_0xd75146);});});};exports[_0x9c53('0x5b')]=function(_0x5f2368,_0x48c397,_0x57e791){_0x5f2368[_0x9c53('0x5b')]=!![];return _0x57e791();};exports[_0x9c53('0x5c')]=function signToken(_0x4c1537){return signJwt(_0x4c1537);};exports[_0x9c53('0x5d')]=function(_0x40a76f,_0x151fd4){if(!_0x40a76f[_0x9c53('0x30')]){return _0x151fd4[_0x9c53('0x37')](0x194)[_0x9c53('0x39')]({'message':_0x9c53('0x5e')});}var _0x501900={'payload':{'id':_0x40a76f[_0x9c53('0x30')]['id'],'role':_0x40a76f[_0x9c53('0x30')][_0x9c53('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x501900)[_0x9c53('0x36')](function(_0x46a25f){_0x151fd4[_0x9c53('0x5f')](_0x9c53('0x60'),_0x46a25f);_0x151fd4[_0x9c53('0x61')](_0x9c53('0x62'));})[_0x9c53('0x46')](function(_0x289a15){return _0x151fd4[_0x9c53('0x37')](0x1f4)[_0x9c53('0x63')](_0x289a15);});};exports[_0x9c53('0x64')]=function(_0x11e54b){if(_['isNil'](_0x11e54b['apiKeyNonce'])||_[_0x9c53('0x65')](_0x11e54b['apiKeyIat'])){return null;}else{return createJwt(_0x11e54b);}};exports[_0x9c53('0x66')]=function(_0x5a87c6){_0x5a87c6['apiKeyNonce']=generateNonce();_0x5a87c6[_0x9c53('0x67')]=generateIssuedAt();return createJwt(_0x5a87c6);};exports[_0x9c53('0x68')]=function(_0x2f6c99,_0x1ffa57){var _0x4a5b6c=_0x2f6c99['query'][_0x9c53('0x49')];if(_0x4a5b6c){var _0x100809={'nonce':_0x1ffa57[_0x9c53('0x4e')],'iat':_0x1ffa57['apiKeyIat'],'audience':hardwareConf[_0x9c53('0x69')](),'issuer':hardwareConf[_0x9c53('0x69')]()};return verifyJwt(_0x4a5b6c,_0x100809)[_0x9c53('0x36')](function(){return generateApiKey(_0x1ffa57);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x9c53('0x6a')]=function(_0x5ce123){var _0x5404a9=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x5404a9[_0x9c53('0x6b')](_0x5ce123))throw new db[(_0x9c53('0x6c'))][(_0x9c53('0x6d'))](_0x9c53('0x6e'));return;};exports[_0x9c53('0x6f')]=function(_0x10af16,_0x4c92a9,_0x1ceb6a){var _0x3eeafc=encryptor['decryptString'](_0x4c92a9)[_0x9c53('0x70')](',');for(var _0x31cf0e=0x0;_0x31cf0e<_0x1ceb6a;_0x31cf0e++){if(!_0x3eeafc[_0x31cf0e])break;if(_0x10af16[_0x9c53('0x71')]()===_0x3eeafc[_0x31cf0e][_0x9c53('0x71')]()){var _0x1a04c4=util[_0x9c53('0x72')](_0x9c53('0x73'),_0x1ceb6a);if(_0x1ceb6a===0x1){_0x1a04c4=_0x9c53('0x74');}throw new db[(_0x9c53('0x6c'))]['ValidationError'](_0x1a04c4);}}return;};exports[_0x9c53('0x75')]=function(_0x4b1722,_0x321f13){var _0xe32191=_0x321f13?encryptor['decryptString'](_0x321f13)[_0x9c53('0x70')](','):[];if(_0xe32191[_0x9c53('0x76')]===0x5){_0xe32191[_0x9c53('0x77')](-0x1,0x1);}_0xe32191[_0x9c53('0x78')](_0x4b1722);return encryptor[_0x9c53('0x79')](_0xe32191[_0x9c53('0x7a')](','));};function signJwt(_0xc9d8d0){var _0x1fd623=BPromise[_0x9c53('0x7b')](jwt['sign'],{'context':jwt});var _0x30f4c6=_0xc9d8d0['secret']||config[_0x9c53('0x7c')]['session'];return new BPromise(function(_0x30d3b8,_0x292452){_0x1fd623(_0xc9d8d0['payload'],_0x30f4c6,_0xc9d8d0[_0x9c53('0x7d')])[_0x9c53('0x36')](function(_0x3def81){_0x30d3b8(_0x3def81);})[_0x9c53('0x46')](function(_0x3dc05b){_0x292452(_0x3dc05b);});});}function verifyJwt(_0x861c43,_0x5de42a,_0x19dda9){var _0x3e7175=BPromise[_0x9c53('0x7b')](jwt[_0x9c53('0x7e')],{'context':jwt});var _0x1b1ddc=_0x19dda9||config[_0x9c53('0x7c')][_0x9c53('0xc')];return new BPromise(function(_0x208748,_0x5d4003){_0x3e7175(_0x861c43,_0x1b1ddc,_0x5de42a)['then'](function(_0x4a30f0){_0x208748(_0x4a30f0);})[_0x9c53('0x46')](function(_0x5ca940){_0x5d4003(_0x5ca940);});});}function generateNonce(){return crypto['randomBytes'](0x10)['toString'](_0x9c53('0x7f'));}function generateIssuedAt(){return Math[_0x9c53('0x80')](Date[_0x9c53('0x81')]()/0x3e8)[_0x9c53('0x82')]();}function createJwt(_0x1a0b72){var _0xfda790={'payload':{'iat':_0x1a0b72[_0x9c53('0x67')],'nonce':_0x1a0b72[_0x9c53('0x4e')]},'options':{'algorithm':_0x9c53('0x83'),'subject':_0x1a0b72['id']['toString'](),'issuer':hardwareConf[_0x9c53('0x69')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0xfda790)['then'](function(_0x21df4f){return{'iat':_0x1a0b72[_0x9c53('0x67')],'nonce':_0x1a0b72['apiKeyNonce'],'token':_0x21df4f};});}
\ No newline at end of file