Built motion from commit e493b9a4954b50a8ee6d0034ba3601cd210d989d. Version 3.0.0...
[motion-next.git] / server / components / auth / service.js
index c8833e0..e9c4b67 100644 (file)
@@ -1 +1 @@
-const a985_0x3956=['allowmessenger','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','interface','role','headers','userpic','isChatInteractionAuthorized','json','phoneBarEnableDtmfTone','User','../../config/environment','crypto','ChatInteraction','motion.token','isAuthenticated','apikey','lastLoginAt','alias','isMiddleware','validatePasswordHistory','apiKeyIat','exports','hotdesk','now','join','phoneBarEnableSettings','signToken','express-jwt','basic-auth','generateApiKey','randomBytes','format','startsWith','unmanaged','../encryptor','sign','Unknown\x20authorization\x20format','composable-middleware','validatePasswordPattern','lastPauseAt','sub','getUuid','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','passwordResetAt','phoneBarDnd','secret','phoneBarAutoAnswerDelay','length','floor','secrets','toLowerCase','phoneBarEnableRecording','Wrong\x20credentials.','user','isEqual','sequelize','settingsEnabled','options','Basic','verify','closed','disposition','status','toString','pass','apiKeyNonce','regenerateApiKey','../../config/license/hardware','split','catch','../../config/license/util','HS512','md5secret','use','query','chatPause','fullname','isNil','promisify','jsonwebtoken','phoneBarRemoteControl','session','pauseType','setTokenCookie','util','crudPermissions','HS256','permissions','getLicense','smsPause','decryptString','payload','showWebBar','updatePasswordsHistory','../../mysqldb','then','unshift','findOne','update','send','phoneBarRemoteControlPort','authenticate','lodash','test'];(function(_0x514939,_0x42b236){const _0x395605=function(_0x53ec12){while(--_0x53ec12){_0x514939['push'](_0x514939['shift']());}};_0x395605(++_0x42b236);}(a985_0x3956,0x124));const a985_0x53ec=function(_0x514939,_0x42b236){_0x514939=_0x514939-0xe3;let _0x395605=a985_0x3956[_0x514939];return _0x395605;};const a985_0x2db39a=a985_0x53ec;'use strict';const {db}=require(a985_0x2db39a(0xed)),{ValidationError}=require(a985_0x2db39a(0x12e)),config=require(a985_0x2db39a(0x101)),hardwareConf=require(a985_0x2db39a(0x13a)),licenseUtil=require(a985_0x2db39a(0x13d)),encryptor=require(a985_0x2db39a(0x119)),util=require(a985_0x2db39a(0xe3)),_=require(a985_0x2db39a(0xf5)),jwt=require(a985_0x2db39a(0x146)),expressJwt=require(a985_0x2db39a(0x112)),compose=require(a985_0x2db39a(0x11c)),basicAuth=require(a985_0x2db39a(0x113)),crypto=require(a985_0x2db39a(0x102)),validateJwt=expressJwt({'secret':config[a985_0x2db39a(0x128)][a985_0x2db39a(0x148)],'algorithms':[a985_0x2db39a(0xe5)]}),userAttributes=['id',a985_0x2db39a(0xfa),a985_0x2db39a(0x143),'name','internal','email',a985_0x2db39a(0xfc),a985_0x2db39a(0xe6),a985_0x2db39a(0x13f),'voicePause',a985_0x2db39a(0x142),'mailPause','faxPause',a985_0x2db39a(0xe8),'openchannelPause',a985_0x2db39a(0x149),a985_0x2db39a(0xeb),a985_0x2db39a(0x107),a985_0x2db39a(0x11e),a985_0x2db39a(0xe4),a985_0x2db39a(0xf7),a985_0x2db39a(0x122),a985_0x2db39a(0x108),'phoneBarAutoAnswer',a985_0x2db39a(0x125),a985_0x2db39a(0x123),a985_0x2db39a(0x12a),a985_0x2db39a(0xff),a985_0x2db39a(0x110),'phoneBarExpires','phoneBarPrefixRequired',a985_0x2db39a(0x147),a985_0x2db39a(0xf3),a985_0x2db39a(0x10d),a985_0x2db39a(0xf9),'userProfileId',a985_0x2db39a(0x12f)];function isChatInteractionAuthorized(){const _0x307f52=a985_0x2db39a;return this[_0x307f52(0x105)](!![])[_0x307f52(0x140)](function(_0x312ef1,_0x2472b7,_0x4defa3){const _0xb8e9d4=_0x307f52;if(_0x312ef1[_0xb8e9d4(0x12c)])_0x4defa3();else return db[_0xb8e9d4(0x103)][_0xb8e9d4(0xf0)]({'where':{'id':_0x312ef1['params']['id']},'attributes':['id',_0xb8e9d4(0x133),_0xb8e9d4(0x134)],'raw':!![]})[_0xb8e9d4(0xee)](function(_0x3fa219){const _0x4d0ea1=_0xb8e9d4;if(_0x3fa219&&_0x3fa219[_0x4d0ea1(0x133)])return _0x2472b7[_0x4d0ea1(0x135)](_0x3fa219[_0x4d0ea1(0x134)]===_0x4d0ea1(0x118)?0x195:0x193)[_0x4d0ea1(0xfe)]({'message':_0x3fa219[_0x4d0ea1(0x134)]===_0x4d0ea1(0x118)?'Unmanaged.':'Forbidden.'});else _0x4defa3();})[_0xb8e9d4(0x13c)](function(_0x2de0ec){_0x4defa3(_0x2de0ec);});});}function isAuthenticated(_0x64655e){const _0x3e4ef6=a985_0x2db39a;return compose()[_0x3e4ef6(0x140)](function(_0x495425,_0x38bbbf,_0x1943d3){const _0x3edf79=_0x3e4ef6;if(_0x495425[_0x3edf79(0xfb)]['authorization']){if(_[_0x3edf79(0x117)](_0x495425['headers']['authorization'],_0x3edf79(0x131))){const _0x45edd6=basicAuth(_0x495425);db[_0x3edf79(0x100)][_0x3edf79(0xf0)]({'where':{'name':_0x45edd6['name']}})[_0x3edf79(0xee)](function(_0x383992){const _0x4fb7a5=_0x3edf79;if(!_0x383992||!_0x383992[_0x4fb7a5(0xf4)](_0x45edd6[_0x4fb7a5(0x137)]))return _0x38bbbf['status'](0x191)['json']({'message':_0x4fb7a5(0x12b)});_0x495425['user']={'id':_0x383992['id']},_0x1943d3();})['catch'](function(_0x90ff36){_0x1943d3(_0x90ff36);});}else{if(_[_0x3edf79(0x117)](_0x495425[_0x3edf79(0xfb)]['authorization'],'Bearer'))validateJwt(_0x495425,_0x38bbbf,_0x1943d3);else{if(_0x64655e)_0x1943d3();else return _0x38bbbf[_0x3edf79(0x135)](0x193)['json']({'message':_0x3edf79(0x11b)});}}}else{if(_0x495425[_0x3edf79(0x141)][_0x3edf79(0x106)])try{const _0x5bdf36={'audience':hardwareConf[_0x3edf79(0x120)](),'issuer':hardwareConf[_0x3edf79(0x120)]()};verifyJwt(_0x495425[_0x3edf79(0x141)]['apikey'],_0x5bdf36)[_0x3edf79(0xee)](function(_0x56b66e){const _0x422484=_0x3edf79;return db[_0x422484(0x100)][_0x422484(0xf0)]({'where':{'id':_0x56b66e[_0x422484(0x11f)]}})[_0x422484(0xee)](function(_0x3c686c){const _0x371d70=_0x422484;if(!_0x3c686c||!_[_0x371d70(0x12d)](_0x3c686c['apiKeyNonce'],_0x56b66e['nonce']))return _0x38bbbf[_0x371d70(0x135)](0x191)[_0x371d70(0xfe)]({'message':_0x371d70(0xf8)});_0x495425['user']={'id':_0x3c686c['id']},_0x1943d3();});})[_0x3edf79(0x13c)](function(){const _0x1c21de=_0x3edf79;return _0x38bbbf['status'](0x191)[_0x1c21de(0xfe)]({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0x5199d8){_0x1943d3(_0x5199d8);}else{if(_0x64655e)_0x1943d3();else return _0x38bbbf[_0x3edf79(0x135)](0x193)[_0x3edf79(0xfe)]({'message':_0x3edf79(0x11b)});}}})[_0x3e4ef6(0x140)](function(_0x8a2146,_0xa638db,_0x48344c){const _0x4f8390=_0x3e4ef6;if(_0x8a2146[_0x4f8390(0x12c)])db[_0x4f8390(0x100)][_0x4f8390(0xf0)]({'where':{'id':_0x8a2146[_0x4f8390(0x12c)]['id']},'attributes':userAttributes})['then'](function(_0x5311ae){if(!_0x5311ae)return _0xa638db['status'](0x194)['json']({'message':'User\x20not\x20found.'});_0x8a2146['user']=_0x5311ae,_0x48344c();})['catch'](function(_0x57d023){_0x48344c(_0x57d023);});else{if(_0x64655e)_0x48344c();else return _0xa638db[_0x4f8390(0x135)](0x194)[_0x4f8390(0xfe)]({'message':'User\x20object\x20not\x20found.'});}});}function canUpdate(){return compose()['use'](function(_0x481944,_0x48865c,_0x14c7b1){const _0x1c3c6b=a985_0x53ec;return licenseUtil[_0x1c3c6b(0xe7)]()[_0x1c3c6b(0xee)](function(_0x2fd48d){const _0x4195f0=_0x1c3c6b;if(_0x2fd48d[_0x4195f0(0xf1)])_0x14c7b1();else return _0x48865c['status'](0x193)[_0x4195f0(0xfe)]({'message':'Forbidden'});})[_0x1c3c6b(0x13c)](function(_0x79c4ac){_0x14c7b1(_0x79c4ac);});});}function isMiddleware(_0x54baba,_0x29ac7d,_0x490dde){const _0x44dc41=a985_0x2db39a;return _0x54baba[_0x44dc41(0x109)]=!![],_0x490dde();}function signToken(_0x2767bc){return signJwt(_0x2767bc);}function setTokenCookie(_0x1f85d1,_0x2e592){const _0x3c39db=a985_0x2db39a;if(!_0x1f85d1[_0x3c39db(0x12c)])return _0x2e592[_0x3c39db(0x135)](0x194)[_0x3c39db(0xfe)]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});const _0x551469={'payload':{'id':_0x1f85d1[_0x3c39db(0x12c)]['id'],'role':_0x1f85d1[_0x3c39db(0x12c)][_0x3c39db(0xfa)]},'options':{'expiresIn':0x15180}};return signJwt(_0x551469)['then'](function(_0x3566e0){const _0x37bf65=_0x3c39db;_0x2e592['cookie'](_0x37bf65(0x104),_0x3566e0),_0x2e592['redirect']('/dashboards/general');})['catch'](function(_0x476858){const _0x152c3b=_0x3c39db;return _0x2e592[_0x152c3b(0x135)](0x1f4)[_0x152c3b(0xf2)](_0x476858);});}function retrieveApiKey(_0x329b85){const _0x3b4e7d=a985_0x2db39a;return _['isNil'](_0x329b85[_0x3b4e7d(0x138)])||_[_0x3b4e7d(0x144)](_0x329b85[_0x3b4e7d(0x10b)])?null:createJwt(_0x329b85);}function generateApiKey(_0x39ccef){return _0x39ccef['apiKeyNonce']=generateNonce(),_0x39ccef['apiKeyIat']=generateIssuedAt(),createJwt(_0x39ccef);}function regenerateApiKey(_0x439353,_0x18ebb9){const _0x2c94ad=a985_0x2db39a,_0x438014=_0x439353[_0x2c94ad(0x141)][_0x2c94ad(0x106)];if(_0x438014){const _0x30b04d={'nonce':_0x18ebb9[_0x2c94ad(0x138)],'iat':_0x18ebb9[_0x2c94ad(0x10b)],'audience':hardwareConf[_0x2c94ad(0x120)](),'issuer':hardwareConf[_0x2c94ad(0x120)]()};return verifyJwt(_0x438014,_0x30b04d)[_0x2c94ad(0xee)](function(){return generateApiKey(_0x18ebb9);});}else throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}function validatePasswordPattern(_0x448271){const _0x3ea63c=a985_0x2db39a,_0x38fec3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#$%^&*~\-_=+[{\]}])(?=.{8,})/);if(!_0x38fec3[_0x3ea63c(0xf6)](_0x448271))throw new 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~!@#$%^&-_=+[{]}.');return;}function validatePasswordHistory(_0x255698,_0x420aec,_0x38be90){const _0x26354f=a985_0x2db39a,_0x7c3b21=encryptor['decryptString'](_0x420aec)[_0x26354f(0x13b)](',');for(let _0x363759=0x0;_0x363759<_0x38be90;_0x363759++){if(!_0x7c3b21[_0x363759])break;if(_0x255698[_0x26354f(0x129)]()===_0x7c3b21[_0x363759]['toLowerCase']()){let _0x1d7483=util[_0x26354f(0x116)](_0x26354f(0x121),_0x38be90);_0x38be90===0x1&&(_0x1d7483='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.');throw new ValidationError(_0x1d7483);}}return;}function updatePasswordsHistory(_0x59c927,_0x513692){const _0x17df13=a985_0x2db39a,_0x14c468=_0x513692?encryptor[_0x17df13(0xe9)](_0x513692)[_0x17df13(0x13b)](','):[];return _0x14c468[_0x17df13(0x126)]===0x5&&_0x14c468['splice'](-0x1,0x1),_0x14c468[_0x17df13(0xef)](_0x59c927),encryptor['encryptString'](_0x14c468[_0x17df13(0x10f)](','));}function signJwt(_0x568916){const _0x4e44de=a985_0x2db39a,_0x101598=util[_0x4e44de(0x145)](jwt[_0x4e44de(0x11a)],{'context':jwt}),_0x533a66=_0x568916[_0x4e44de(0x124)]||config['secrets']['session'];return new Promise(function(_0x19e614,_0x540912){const _0x42a48e=_0x4e44de;_0x101598(_0x568916[_0x42a48e(0xea)],_0x533a66,_0x568916[_0x42a48e(0x130)])[_0x42a48e(0xee)](function(_0x5f0b91){_0x19e614(_0x5f0b91);})['catch'](function(_0x2910e7){_0x540912(_0x2910e7);});});}function verifyJwt(_0x510ff2,_0x43e23f,_0x18666e){const _0xd159a1=a985_0x2db39a,_0xcc5ceb=util[_0xd159a1(0x145)](jwt[_0xd159a1(0x132)],{'context':jwt}),_0x402c4a=_0x18666e||config[_0xd159a1(0x128)][_0xd159a1(0x148)];return new Promise(function(_0x176ed0,_0x17b523){const _0x1322d4=_0xd159a1;_0xcc5ceb(_0x510ff2,_0x402c4a,_0x43e23f)[_0x1322d4(0xee)](function(_0x4c0c7a){_0x176ed0(_0x4c0c7a);})[_0x1322d4(0x13c)](function(_0x189cb2){_0x17b523(_0x189cb2);});});}function generateNonce(){const _0x2a093b=a985_0x2db39a;return crypto[_0x2a093b(0x115)](0x10)[_0x2a093b(0x136)]('hex');}function generateIssuedAt(){const _0x35493c=a985_0x2db39a;return Math[_0x35493c(0x127)](Date[_0x35493c(0x10e)]()/0x3e8)[_0x35493c(0x136)]();}function createJwt(_0x471bf4){const _0x194be8=a985_0x2db39a,_0x147fc0={'payload':{'iat':_0x471bf4[_0x194be8(0x10b)],'nonce':_0x471bf4['apiKeyNonce']},'options':{'algorithm':_0x194be8(0x13e),'subject':_0x471bf4['id']['toString'](),'issuer':hardwareConf[_0x194be8(0x120)](),'audience':hardwareConf[_0x194be8(0x120)]()}};return signJwt(_0x147fc0)[_0x194be8(0xee)](function(_0x9e5614){const _0xee0ece=_0x194be8;return{'iat':_0x471bf4[_0xee0ece(0x10b)],'nonce':_0x471bf4['apiKeyNonce'],'token':_0x9e5614};});}module[a985_0x2db39a(0x10c)][a985_0x2db39a(0xfd)]=isChatInteractionAuthorized,module['exports'][a985_0x2db39a(0x105)]=isAuthenticated,module[a985_0x2db39a(0x10c)]['canUpdate']=canUpdate,module[a985_0x2db39a(0x10c)][a985_0x2db39a(0x109)]=isMiddleware,module['exports'][a985_0x2db39a(0x111)]=signToken,module['exports'][a985_0x2db39a(0x14a)]=setTokenCookie,module[a985_0x2db39a(0x10c)]['retrieveApiKey']=retrieveApiKey,module['exports'][a985_0x2db39a(0x114)]=generateApiKey,module[a985_0x2db39a(0x10c)][a985_0x2db39a(0x139)]=regenerateApiKey,module['exports'][a985_0x2db39a(0x11d)]=validatePasswordPattern,module[a985_0x2db39a(0x10c)][a985_0x2db39a(0x10a)]=validatePasswordHistory,module['exports'][a985_0x2db39a(0xec)]=updatePasswordsHistory;
\ No newline at end of file
+'use strict';const a985_0x1174=['isNil','apikey','sub','blocked','lodash','validatePasswordHistory','hex','some','HS512','userProfileId','floor','md5secret','isMiddleware','secrets','query','@config/environment','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','authorization','basic-auth','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','Forbidden','252480ZyooiH','send','Basic','toString','lastLoginAt','express-jwt','Setting','encryptString','pass','hotdesk','disabled','split','userpic','Unknown\x20authorization\x20format','showWebBar','Wrong\x20credentials.','phoneBarDnd','permissions','catch','Bearer','motion.token','unshift','faxPause','toLowerCase','status','use','62467uBYvOc','settingsEnabled','closed','payload','apiKeyNonce','fullname','util','sign','name','173205cFBWPc','then','ChatInteraction','email','\x20passwords.\x20Please\x20choose\x20another\x20one.','getUuid','Invalid\x20API\x20access\x20key','crypto','nonce','User','isAuthenticated','role','allowmessenger','signToken','alias','headers','175980YAFiwq','authenticate','slice','User\x20object\x20not\x20found.','unmanaged','@mysqldb','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','1muJVfl','moment','voicePause','disposition','sequelize','internal','options','update','minutes','promisify','now','interface','secret','iat','canUpdate','117594GUkQvJ','1IkdNDe','2JNtChi','length','chatPause','phoneBarEnableSettings','startsWith','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20','phoneBarEnableRecording','apiKeyIat','randomBytes','lastPauseAt','redirect','blockDuration','updatePasswordsHistory','passwordResetAt','generateApiKey','phoneBarAutoAnswerDelay','User\x20not\x20found.','allowedLoginAttempts','275939HCafPZ','retrieveApiKey','smsPause','findOne','session','exports','phoneBarExpires','json','validatePasswordPattern','user','119981eqDHyi'];const a985_0x2b88=function(_0x102787,_0x41a7fc){_0x102787=_0x102787-0xc7;let _0x117422=a985_0x1174[_0x102787];return _0x117422;};const a985_0x2c9281=a985_0x2b88;(function(_0x1adba0,_0x423c1f){const _0x502100=a985_0x2b88;while(!![]){try{const _0xa6afd5=parseInt(_0x502100(0xfd))*-parseInt(_0x502100(0xcc))+parseInt(_0x502100(0xfc))*parseInt(_0x502100(0xe5))+-parseInt(_0x502100(0x12f))+parseInt(_0x502100(0xfb))+-parseInt(_0x502100(0xd5))+parseInt(_0x502100(0x119))+parseInt(_0x502100(0xec))*parseInt(_0x502100(0x10f));if(_0xa6afd5===_0x423c1f)break;else _0x1adba0['push'](_0x1adba0['shift']());}catch(_0x339004){_0x1adba0['push'](_0x1adba0['shift']());}}}(a985_0x1174,0x21e7b));const {db}=require(a985_0x2c9281(0xea)),{ValidationError}=require(a985_0x2c9281(0xf0)),config=require(a985_0x2c9281(0x129)),hardwareConf=require('@config/license/hardware'),licenseUtil=require('@config/license/util'),encryptor=require('@components/encryptor'),util=require(a985_0x2c9281(0xd2)),_=require(a985_0x2c9281(0x11e)),jwt=require('jsonwebtoken'),expressJwt=require(a985_0x2c9281(0x134)),compose=require('composable-middleware'),basicAuth=require(a985_0x2c9281(0x12c)),crypto=require(a985_0x2c9281(0xdc)),moment=require(a985_0x2c9281(0xed)),validateJwt=expressJwt({'secret':config[a985_0x2c9281(0x127)][a985_0x2c9281(0x113)],'algorithms':['HS256']}),userAttributes=['id',a985_0x2c9281(0xe0),a985_0x2c9281(0xd1),a985_0x2c9281(0xd4),a985_0x2c9281(0xf1),a985_0x2c9281(0xd8),a985_0x2c9281(0x13b),a985_0x2c9281(0x140),a985_0x2c9281(0x125),a985_0x2c9281(0xee),a985_0x2c9281(0xff),'mailPause',a985_0x2c9281(0xc8),a985_0x2c9281(0x111),'openchannelPause','pauseType',a985_0x2c9281(0x13d),a985_0x2c9281(0x133),a985_0x2c9281(0x106),'crudPermissions',a985_0x2c9281(0xe1),a985_0x2c9281(0x10a),a985_0x2c9281(0xe3),'phoneBarAutoAnswer',a985_0x2c9281(0x10c),a985_0x2c9281(0x13f),a985_0x2c9281(0x103),'phoneBarEnableDtmfTone',a985_0x2c9281(0x100),a985_0x2c9281(0x115),'phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort',a985_0x2c9281(0x138),a985_0x2c9281(0xf7),a985_0x2c9281(0x123),a985_0x2c9281(0xcd)];function isChatInteractionAuthorized(){return this['isAuthenticated'](!![])['use'](function(_0x5f3005,_0x4831cf,_0x5dcd12){const _0x412b8c=a985_0x2b88;if(_0x5f3005[_0x412b8c(0x118)])_0x5dcd12();else return db[_0x412b8c(0xd7)][_0x412b8c(0x112)]({'where':{'id':_0x5f3005['params']['id']},'attributes':['id','closed',_0x412b8c(0xef)],'raw':!![]})[_0x412b8c(0xd6)](function(_0x4a7320){const _0x4b3c21=_0x412b8c;if(_0x4a7320&&_0x4a7320[_0x4b3c21(0xce)])return _0x4831cf[_0x4b3c21(0xca)](_0x4a7320[_0x4b3c21(0xef)]===_0x4b3c21(0xe9)?0x195:0x193)['json']({'message':_0x4a7320['disposition']===_0x4b3c21(0xe9)?'Unmanaged.':'Forbidden.'});else _0x5dcd12();})[_0x412b8c(0x141)](function(_0x2a2bab){_0x5dcd12(_0x2a2bab);});});}function isAuthenticated(_0x59cee8){const _0x108038=a985_0x2c9281;return compose()['use'](function(_0x59bc43,_0xb12075,_0x548fc0){const _0x3bcef5=a985_0x2b88;let _0x53da51;if(_0x59bc43['headers'][_0x3bcef5(0x12b)]){if(_['startsWith'](_0x59bc43[_0x3bcef5(0xe4)]['authorization'],_0x3bcef5(0x131))){const _0x46f56a=basicAuth(_0x59bc43);db[_0x3bcef5(0xde)][_0x3bcef5(0x112)]({'where':{'name':_0x46f56a[_0x3bcef5(0xd4)]}})[_0x3bcef5(0xd6)](function(_0x403178){const _0x1bd99f=_0x3bcef5;if(!_0x403178||!_0x403178[_0x1bd99f(0xe6)](_0x46f56a[_0x1bd99f(0x137)]))return _0xb12075['status'](0x191)['json']({'message':_0x1bd99f(0x13e)});_0x59bc43[_0x1bd99f(0x118)]={'id':_0x403178['id']},_0x548fc0();})[_0x3bcef5(0x141)](function(_0x3623e0){_0x548fc0(_0x3623e0);});}else{if(_[_0x3bcef5(0x101)](_0x59bc43[_0x3bcef5(0xe4)][_0x3bcef5(0x12b)],_0x3bcef5(0x142)))validateJwt(_0x59bc43,_0xb12075,_0x548fc0);else{if(_0x59cee8)_0x548fc0();else return _0xb12075[_0x3bcef5(0xca)](0x193)[_0x3bcef5(0x116)]({'message':'Unknown\x20authorization\x20format'});}}}else{if(_0x59bc43[_0x3bcef5(0x128)][_0x3bcef5(0x11b)])try{const _0x545648={'audience':hardwareConf[_0x3bcef5(0xda)](),'issuer':hardwareConf[_0x3bcef5(0xda)]()};verifyJwt(_0x59bc43[_0x3bcef5(0x128)][_0x3bcef5(0x11b)],_0x545648)[_0x3bcef5(0xd6)](function(_0x4e6fa3){const _0x70ec4d=_0x3bcef5;return db['User'][_0x70ec4d(0x112)]({'where':{'id':_0x4e6fa3[_0x70ec4d(0x11c)]}})[_0x70ec4d(0xd6)](function(_0x26a7ca){const _0x5205fe=_0x70ec4d;return _0x53da51=_0x26a7ca,db[_0x5205fe(0x135)][_0x5205fe(0x112)]({'where':{'id':0x1},'attributes':[_0x5205fe(0x10e),_0x5205fe(0x108)],'raw':!![]});})[_0x70ec4d(0xd6)](function(_0x185ab4){const _0x5e41f0=_0x70ec4d;if(!_0x53da51||!_['isEqual'](_0x53da51[_0x5e41f0(0xd0)],_0x4e6fa3[_0x5e41f0(0xdd)]))return _0xb12075[_0x5e41f0(0xca)](0x191)[_0x5e41f0(0x116)]({'message':_0x5e41f0(0x12a)});if(_0x53da51[_0x5e41f0(0x139)])return _0xb12075[_0x5e41f0(0xca)](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});if(_0x53da51[_0x5e41f0(0x11d)]){if(_0x185ab4[_0x5e41f0(0x108)]>0x0){if(moment(_0x53da51['blockedAt'])['add'](_0x185ab4[_0x5e41f0(0x108)],_0x5e41f0(0xf4))>moment())return _0xb12075[_0x5e41f0(0xca)](0x191)[_0x5e41f0(0x116)]({'message':_0x5e41f0(0xdb)});}else return _0xb12075[_0x5e41f0(0xca)](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}_0x59bc43['user']={'id':_0x53da51['id']},_0x548fc0();});})[_0x3bcef5(0x141)](function(){const _0x2ac250=_0x3bcef5;return _0xb12075[_0x2ac250(0xca)](0x191)[_0x2ac250(0x116)]({'message':_0x2ac250(0xdb)});});}catch(_0x4e6acd){_0x548fc0(_0x4e6acd);}else{if(_0x59cee8)_0x548fc0();else return _0xb12075[_0x3bcef5(0xca)](0x193)[_0x3bcef5(0x116)]({'message':_0x3bcef5(0x13c)});}}})[_0x108038(0xcb)](function(_0x3aeaf3,_0x488e66,_0x3e648f){const _0x25a51e=_0x108038;if(_0x3aeaf3[_0x25a51e(0x118)])db['User'][_0x25a51e(0x112)]({'where':{'id':_0x3aeaf3['user']['id']},'attributes':userAttributes})[_0x25a51e(0xd6)](function(_0x35e792){const _0x3940d9=_0x25a51e;if(!_0x35e792)return _0x488e66[_0x3940d9(0xca)](0x194)['json']({'message':_0x3940d9(0x10d)});_0x3aeaf3['user']=_0x35e792,_0x3e648f();})['catch'](function(_0x5dbfca){_0x3e648f(_0x5dbfca);});else{if(_0x59cee8)_0x3e648f();else return _0x488e66['status'](0x194)[_0x25a51e(0x116)]({'message':_0x25a51e(0xe8)});}});}function canUpdate(){const _0x2bd9ae=a985_0x2c9281;return compose()[_0x2bd9ae(0xcb)](function(_0x4c6345,_0x5ad2bf,_0x572325){return licenseUtil['getLicense']()['then'](function(_0x2cd0f1){const _0x457bac=a985_0x2b88;if(_0x2cd0f1[_0x457bac(0xf3)])_0x572325();else return _0x5ad2bf[_0x457bac(0xca)](0x193)[_0x457bac(0x116)]({'message':_0x457bac(0x12e)});})['catch'](function(_0x103d43){_0x572325(_0x103d43);});});}function isMiddleware(_0x2e38c6,_0x3d02f8,_0x2e2080){const _0xe1175b=a985_0x2c9281;return _0x2e38c6[_0xe1175b(0x126)]=!![],_0x2e2080();}function signToken(_0x1f7d50){return signJwt(_0x1f7d50);}function setTokenCookie(_0x7bc8fe,_0x48dea4){const _0x4017bc=a985_0x2c9281;if(!_0x7bc8fe[_0x4017bc(0x118)])return _0x48dea4[_0x4017bc(0xca)](0x194)['json']({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});const _0x395a64={'payload':{'id':_0x7bc8fe[_0x4017bc(0x118)]['id'],'role':_0x7bc8fe[_0x4017bc(0x118)][_0x4017bc(0xe0)]},'options':{'expiresIn':0x15180}};return signJwt(_0x395a64)[_0x4017bc(0xd6)](function(_0x43dd32){const _0x269f8f=_0x4017bc;_0x48dea4['cookie'](_0x269f8f(0x143),_0x43dd32),_0x48dea4[_0x269f8f(0x107)]('/dashboards/general');})[_0x4017bc(0x141)](function(_0x27b454){const _0x2502ae=_0x4017bc;return _0x48dea4[_0x2502ae(0xca)](0x1f4)[_0x2502ae(0x130)](_0x27b454);});}function retrieveApiKey(_0x125d4f){const _0x2b41d0=a985_0x2c9281;return _[_0x2b41d0(0x11a)](_0x125d4f[_0x2b41d0(0xd0)])||_[_0x2b41d0(0x11a)](_0x125d4f[_0x2b41d0(0x104)])?null:createJwt(_0x125d4f);}function generateApiKey(_0x4dbe25){const _0x4d22a1=a985_0x2c9281;return _0x4dbe25[_0x4d22a1(0xd0)]=generateNonce(),_0x4dbe25[_0x4d22a1(0x104)]=generateIssuedAt(),createJwt(_0x4dbe25);}function regenerateApiKey(_0x1e579b,_0x3da211){const _0x56c902=a985_0x2c9281,_0x312d97=_0x1e579b[_0x56c902(0x128)][_0x56c902(0x11b)];if(_0x312d97){const _0x3368b5={'nonce':_0x3da211['apiKeyNonce'],'iat':_0x3da211['apiKeyIat'],'audience':hardwareConf[_0x56c902(0xda)](),'issuer':hardwareConf[_0x56c902(0xda)]()};return verifyJwt(_0x312d97,_0x3368b5)[_0x56c902(0xd6)](function(){return generateApiKey(_0x3da211);});}else throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}function validatePasswordPattern(_0x13ac0b){const _0x2dbd7=a985_0x2c9281,_0x28fe0d=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#$%^&*~\-_=+[{\]}])(?=.{8,})/);if(!_0x28fe0d['test'](_0x13ac0b))throw new ValidationError(_0x2dbd7(0x12d));return;}function validatePasswordHistory(_0x2ab808,_0x28618c,_0x27af63){const _0x32040c=a985_0x2c9281,_0x1089de=encryptor['decryptString'](_0x28618c)['split'](','),_0x2813ec=_0x1089de[_0x32040c(0xe7)](_0x27af63*-0x1)[_0x32040c(0x121)](_0x4107e3=>_0x4107e3['toLowerCase']()===_0x2ab808[_0x32040c(0xc9)]());if(_0x2813ec){const _0xbd6824=_0x27af63===0x1?_0x32040c(0xeb):_0x32040c(0x102)+_0x27af63+_0x32040c(0xd9);throw new ValidationError(_0xbd6824);}}function updatePasswordsHistory(_0x27ba78,_0x3bcc65){const _0x1eaa63=a985_0x2c9281,_0x28dc75=_0x3bcc65?encryptor['decryptString'](_0x3bcc65)[_0x1eaa63(0x13a)](','):[];return _0x28dc75[_0x1eaa63(0xfe)]===0x5&&_0x28dc75['splice'](-0x1,0x1),_0x28dc75[_0x1eaa63(0xc7)](_0x27ba78),encryptor[_0x1eaa63(0x136)](_0x28dc75['join'](','));}function signJwt(_0x14b2e0){const _0x4937d6=a985_0x2c9281,_0x18fe6f=util[_0x4937d6(0xf5)](jwt[_0x4937d6(0xd3)],{'context':jwt}),_0x461731=_0x14b2e0[_0x4937d6(0xf8)]||config['secrets']['session'];return new Promise(function(_0x3e8f19,_0x508ec9){const _0x55d3b2=_0x4937d6,_0x5090b8=typeof _0x14b2e0[_0x55d3b2(0xcf)][_0x55d3b2(0xf9)]==='number'?_0x14b2e0[_0x55d3b2(0xcf)][_0x55d3b2(0xf9)]:Number(_0x14b2e0['payload'][_0x55d3b2(0xf9)]),_0x47f9e6={..._0x14b2e0[_0x55d3b2(0xcf)],'iat':_0x5090b8};_0x18fe6f(_0x47f9e6,_0x461731,_0x14b2e0[_0x55d3b2(0xf2)])[_0x55d3b2(0xd6)](function(_0x10fc3a){_0x3e8f19(_0x10fc3a);})[_0x55d3b2(0x141)](function(_0x5ebadf){_0x508ec9(_0x5ebadf);});});}function verifyJwt(_0x39a5e1,_0x55f485,_0x32dee5){const _0x4e801e=a985_0x2c9281,_0x299d48=util[_0x4e801e(0xf5)](jwt['verify'],{'context':jwt}),_0x3259e8=_0x32dee5||config['secrets']['session'];return new Promise(function(_0x2c63c4,_0x8b7ec2){const _0x4defa1=_0x4e801e;_0x299d48(_0x39a5e1,_0x3259e8,_0x55f485)[_0x4defa1(0xd6)](function(_0x15713c){_0x2c63c4(_0x15713c);})[_0x4defa1(0x141)](function(_0x122a68){_0x8b7ec2(_0x122a68);});});}function generateNonce(){const _0x59c52b=a985_0x2c9281;return crypto[_0x59c52b(0x105)](0x10)[_0x59c52b(0x132)](_0x59c52b(0x120));}function generateIssuedAt(){const _0x47d303=a985_0x2c9281;return Math[_0x47d303(0x124)](Date[_0x47d303(0xf6)]()/0x3e8)[_0x47d303(0x132)]();}function createJwt(_0x5b0016){const _0x5c57af=a985_0x2c9281,_0x5632c8={'payload':{'iat':_0x5b0016[_0x5c57af(0x104)],'nonce':_0x5b0016['apiKeyNonce']},'options':{'algorithm':_0x5c57af(0x122),'subject':_0x5b0016['id']['toString'](),'issuer':hardwareConf[_0x5c57af(0xda)](),'audience':hardwareConf[_0x5c57af(0xda)]()}};return signJwt(_0x5632c8)[_0x5c57af(0xd6)](function(_0x517255){const _0x35eb85=_0x5c57af;return{'iat':_0x5b0016[_0x35eb85(0x104)],'nonce':_0x5b0016['apiKeyNonce'],'token':_0x517255};});}module[a985_0x2c9281(0x114)]['isChatInteractionAuthorized']=isChatInteractionAuthorized,module['exports'][a985_0x2c9281(0xdf)]=isAuthenticated,module[a985_0x2c9281(0x114)][a985_0x2c9281(0xfa)]=canUpdate,module[a985_0x2c9281(0x114)][a985_0x2c9281(0x126)]=isMiddleware,module[a985_0x2c9281(0x114)][a985_0x2c9281(0xe2)]=signToken,module[a985_0x2c9281(0x114)]['setTokenCookie']=setTokenCookie,module['exports'][a985_0x2c9281(0x110)]=retrieveApiKey,module['exports'][a985_0x2c9281(0x10b)]=generateApiKey,module[a985_0x2c9281(0x114)]['regenerateApiKey']=regenerateApiKey,module['exports'][a985_0x2c9281(0x117)]=validatePasswordPattern,module[a985_0x2c9281(0x114)][a985_0x2c9281(0x11f)]=validatePasswordHistory,module[a985_0x2c9281(0x114)][a985_0x2c9281(0x109)]=updatePasswordsHistory;
\ No newline at end of file