Built motion from commit (unavailable).|2.5.14
[motion2.git] / server / components / auth / service.js
index 19971c5..16acd3f 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xdc17=['isAuthenticated','use','user','params','closed','disposition','then','status','json','unmanaged','Unmanaged.','catch','authorization','startsWith','User','find','authenticate','pass','Wrong\x20credentials.','headers','Bearer','query','apikey','getUuid','sub','apiKeyNonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','Unknown\x20authorization\x20format','User\x20not\x20found.','User\x20object\x20not\x20found.','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','decryptString','split','toLowerCase','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','length','splice','unshift','join','sign','secret','session','payload','promisify','verify','randomBytes','hex','floor','now','toString','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','secrets','role','fullname','name','internal','email','permissions','md5secret','voicePause','mailPause','faxPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','passwordResetAt','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','settingsEnabled','isChatInteractionAuthorized'];(function(_0x376d80,_0x2ebcd3){var _0x2a47fe=function(_0x2fbb7c){while(--_0x2fbb7c){_0x376d80['push'](_0x376d80['shift']());}};_0x2a47fe(++_0x2ebcd3);}(_0xdc17,0xb8));var _0x7dc1=function(_0x2b5cbe,_0x5f1754){_0x2b5cbe=_0x2b5cbe-0x0;var _0x7d314b=_0xdc17[_0x2b5cbe];return _0x7d314b;};'use strict';var db=require(_0x7dc1('0x0'))['db'];var config=require(_0x7dc1('0x1'));var hardwareConf=require(_0x7dc1('0x2'));var licenseUtil=require(_0x7dc1('0x3'));var encryptor=require(_0x7dc1('0x4'));var _=require('lodash');var jwt=require(_0x7dc1('0x5'));var expressJwt=require(_0x7dc1('0x6'));var compose=require(_0x7dc1('0x7'));var basicAuth=require(_0x7dc1('0x8'));var crypto=require(_0x7dc1('0x9'));var BPromise=require(_0x7dc1('0xa'));var util=require('util');var validateJwt=expressJwt({'secret':config[_0x7dc1('0xb')]['session']});var userAttributes=['id',_0x7dc1('0xc'),_0x7dc1('0xd'),_0x7dc1('0xe'),_0x7dc1('0xf'),_0x7dc1('0x10'),'userpic',_0x7dc1('0x11'),_0x7dc1('0x12'),_0x7dc1('0x13'),'chatPause',_0x7dc1('0x14'),_0x7dc1('0x15'),'smsPause',_0x7dc1('0x16'),_0x7dc1('0x17'),_0x7dc1('0x18'),_0x7dc1('0x19'),_0x7dc1('0x1a'),_0x7dc1('0x1b'),'allowmessenger',_0x7dc1('0x1c'),'alias',_0x7dc1('0x1d'),'phoneBarAutoAnswerDelay',_0x7dc1('0x1e'),_0x7dc1('0x1f'),_0x7dc1('0x20'),_0x7dc1('0x21'),_0x7dc1('0x22'),_0x7dc1('0x23'),_0x7dc1('0x24'),_0x7dc1('0x25'),_0x7dc1('0x26'),_0x7dc1('0x27'),'userProfileId',_0x7dc1('0x28')];exports[_0x7dc1('0x29')]=function(){return this[_0x7dc1('0x2a')](!![])[_0x7dc1('0x2b')](function(_0x136f12,_0xfcf389,_0x3c7db6){if(_0x136f12[_0x7dc1('0x2c')]){_0x3c7db6();}else{return db['ChatInteraction']['findOne']({'where':{'id':_0x136f12[_0x7dc1('0x2d')]['id']},'attributes':['id',_0x7dc1('0x2e'),_0x7dc1('0x2f')],'raw':!![]})[_0x7dc1('0x30')](function(_0x5dd156){if(_0x5dd156&&_0x5dd156[_0x7dc1('0x2e')]){return _0xfcf389[_0x7dc1('0x31')](_0x5dd156[_0x7dc1('0x2f')]==='unmanaged'?0x195:0x193)[_0x7dc1('0x32')]({'message':_0x5dd156[_0x7dc1('0x2f')]===_0x7dc1('0x33')?_0x7dc1('0x34'):'Forbidden.'});}else{_0x3c7db6();}})[_0x7dc1('0x35')](function(_0x5541a1){_0x3c7db6(_0x5541a1);});}});};exports[_0x7dc1('0x2a')]=function isAuthenticated(_0x2c7d60){return compose()['use'](function(_0x4ec0d2,_0x490b84,_0x1e5ef7){if(_0x4ec0d2['headers'][_0x7dc1('0x36')]){if(_[_0x7dc1('0x37')](_0x4ec0d2['headers'][_0x7dc1('0x36')],'Basic')){var _0x2a3ef6=basicAuth(_0x4ec0d2);db[_0x7dc1('0x38')][_0x7dc1('0x39')]({'where':{'name':_0x2a3ef6[_0x7dc1('0xe')]}})[_0x7dc1('0x30')](function(_0x21a460){if(!_0x21a460||!_0x21a460[_0x7dc1('0x3a')](_0x2a3ef6[_0x7dc1('0x3b')])){return _0x490b84[_0x7dc1('0x31')](0x191)[_0x7dc1('0x32')]({'message':_0x7dc1('0x3c')});}_0x4ec0d2['user']={'id':_0x21a460['id']};_0x1e5ef7();})[_0x7dc1('0x35')](function(_0x39df73){_0x1e5ef7(_0x39df73);});}else if(_[_0x7dc1('0x37')](_0x4ec0d2[_0x7dc1('0x3d')][_0x7dc1('0x36')],_0x7dc1('0x3e'))){validateJwt(_0x4ec0d2,_0x490b84,_0x1e5ef7);}else{if(_0x2c7d60){_0x1e5ef7();}else{return _0x490b84['status'](0x193)[_0x7dc1('0x32')]({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x4ec0d2[_0x7dc1('0x3f')][_0x7dc1('0x40')]){try{var _0x3889a8={'audience':hardwareConf[_0x7dc1('0x41')](),'issuer':hardwareConf[_0x7dc1('0x41')]()};verifyJwt(_0x4ec0d2[_0x7dc1('0x3f')][_0x7dc1('0x40')],_0x3889a8)['then'](function(_0x1882d0){return db[_0x7dc1('0x38')]['find']({'where':{'id':_0x1882d0[_0x7dc1('0x42')]}})[_0x7dc1('0x30')](function(_0x32aabe){if(!_0x32aabe||!_['isEqual'](_0x32aabe[_0x7dc1('0x43')],_0x1882d0['nonce'])){return _0x490b84[_0x7dc1('0x31')](0x191)['json']({'message':_0x7dc1('0x44')});}_0x4ec0d2[_0x7dc1('0x2c')]={'id':_0x32aabe['id']};_0x1e5ef7();});})[_0x7dc1('0x35')](function(){return _0x490b84[_0x7dc1('0x31')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});});}catch(_0xfff964){_0x1e5ef7(_0xfff964);}}else if(_0x2c7d60){_0x1e5ef7();}else{return _0x490b84[_0x7dc1('0x31')](0x193)[_0x7dc1('0x32')]({'message':_0x7dc1('0x45')});}})['use'](function(_0x4f0b46,_0x47ff51,_0xc46136){if(_0x4f0b46[_0x7dc1('0x2c')]){db[_0x7dc1('0x38')][_0x7dc1('0x39')]({'where':{'id':_0x4f0b46['user']['id']},'attributes':userAttributes})[_0x7dc1('0x30')](function(_0x118472){if(!_0x118472){return _0x47ff51[_0x7dc1('0x31')](0x194)['json']({'message':_0x7dc1('0x46')});}_0x4f0b46[_0x7dc1('0x2c')]=_0x118472;_0xc46136();})[_0x7dc1('0x35')](function(_0x6bb1c0){_0xc46136(_0x6bb1c0);});}else if(_0x2c7d60){_0xc46136();}else{return _0x47ff51[_0x7dc1('0x31')](0x194)[_0x7dc1('0x32')]({'message':_0x7dc1('0x47')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0x7dc1('0x2b')](function(_0x449999,_0x419f6c,_0x3964e1){return licenseUtil[_0x7dc1('0x48')]()[_0x7dc1('0x30')](function(_0x1321b3){if(_0x1321b3[_0x7dc1('0x49')]){_0x3964e1();}else{return _0x419f6c['status'](0x193)['json']({'message':_0x7dc1('0x4a')});}})[_0x7dc1('0x35')](function(_0x349bfa){_0x3964e1(_0x349bfa);});});};exports[_0x7dc1('0x4b')]=function(_0xc3bd9d,_0x2dd848,_0x34ed06){_0xc3bd9d[_0x7dc1('0x4b')]=!![];return _0x34ed06();};exports[_0x7dc1('0x4c')]=function signToken(_0x1a23a9){return signJwt(_0x1a23a9);};exports[_0x7dc1('0x4d')]=function(_0x2c1e45,_0x3a331f){if(!_0x2c1e45[_0x7dc1('0x2c')]){return _0x3a331f[_0x7dc1('0x31')](0x194)[_0x7dc1('0x32')]({'message':_0x7dc1('0x4e')});}var _0x39aefd={'payload':{'id':_0x2c1e45[_0x7dc1('0x2c')]['id'],'role':_0x2c1e45[_0x7dc1('0x2c')][_0x7dc1('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0x39aefd)[_0x7dc1('0x30')](function(_0x399bc2){_0x3a331f[_0x7dc1('0x4f')](_0x7dc1('0x50'),_0x399bc2);_0x3a331f['redirect'](_0x7dc1('0x51'));})[_0x7dc1('0x35')](function(_0x4ee379){return _0x3a331f[_0x7dc1('0x31')](0x1f4)['send'](_0x4ee379);});};exports[_0x7dc1('0x52')]=function(_0x3ffc77){if(_[_0x7dc1('0x53')](_0x3ffc77[_0x7dc1('0x43')])||_['isNil'](_0x3ffc77[_0x7dc1('0x54')])){return null;}else{return createJwt(_0x3ffc77);}};exports[_0x7dc1('0x55')]=function(_0x5decda){_0x5decda[_0x7dc1('0x43')]=generateNonce();_0x5decda['apiKeyIat']=generateIssuedAt();return createJwt(_0x5decda);};exports[_0x7dc1('0x56')]=function(_0x4739fa,_0x4f35f4){var _0x560d6a=_0x4739fa[_0x7dc1('0x3f')]['apikey'];if(_0x560d6a){var _0x384fa9={'nonce':_0x4f35f4[_0x7dc1('0x43')],'iat':_0x4f35f4[_0x7dc1('0x54')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x7dc1('0x41')]()};return verifyJwt(_0x560d6a,_0x384fa9)[_0x7dc1('0x30')](function(){return generateApiKey(_0x4f35f4);});}else{throw{'message':_0x7dc1('0x57')};}};exports[_0x7dc1('0x58')]=function(_0x5d6fd8){var _0x1713ee=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x1713ee['test'](_0x5d6fd8))throw new db[(_0x7dc1('0x59'))][(_0x7dc1('0x5a'))](_0x7dc1('0x5b'));return;};exports['validatePasswordHistory']=function(_0x506013,_0x4c6a0d,_0x427569){var _0x3b26b9=encryptor[_0x7dc1('0x5c')](_0x4c6a0d)[_0x7dc1('0x5d')](',');for(var _0xaa89f7=0x0;_0xaa89f7<_0x427569;_0xaa89f7++){if(!_0x3b26b9[_0xaa89f7])break;if(_0x506013[_0x7dc1('0x5e')]()===_0x3b26b9[_0xaa89f7][_0x7dc1('0x5e')]()){var _0xac3915=util['format']('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x427569);if(_0x427569===0x1){_0xac3915=_0x7dc1('0x5f');}throw new db['Sequelize'][(_0x7dc1('0x5a'))](_0xac3915);}}return;};exports[_0x7dc1('0x60')]=function(_0x483ce9,_0x29b4a1){var _0x48fb0f=_0x29b4a1?encryptor[_0x7dc1('0x5c')](_0x29b4a1)[_0x7dc1('0x5d')](','):[];if(_0x48fb0f[_0x7dc1('0x61')]===0x5){_0x48fb0f[_0x7dc1('0x62')](-0x1,0x1);}_0x48fb0f[_0x7dc1('0x63')](_0x483ce9);return encryptor['encryptString'](_0x48fb0f[_0x7dc1('0x64')](','));};function signJwt(_0x45316b){var _0x4355c9=BPromise['promisify'](jwt[_0x7dc1('0x65')],{'context':jwt});var _0x18c893=_0x45316b[_0x7dc1('0x66')]||config[_0x7dc1('0xb')][_0x7dc1('0x67')];return new BPromise(function(_0x1571f0,_0x38e05f){_0x4355c9(_0x45316b[_0x7dc1('0x68')],_0x18c893,_0x45316b['options'])['then'](function(_0x1743f4){_0x1571f0(_0x1743f4);})[_0x7dc1('0x35')](function(_0x3a2f44){_0x38e05f(_0x3a2f44);});});}function verifyJwt(_0x2f2090,_0x4a4cc6,_0x2c9bd6){var _0x185cf4=BPromise[_0x7dc1('0x69')](jwt[_0x7dc1('0x6a')],{'context':jwt});var _0x4b5d11=_0x2c9bd6||config[_0x7dc1('0xb')][_0x7dc1('0x67')];return new BPromise(function(_0x7d2e43,_0x2be7b7){_0x185cf4(_0x2f2090,_0x4b5d11,_0x4a4cc6)[_0x7dc1('0x30')](function(_0x195b4f){_0x7d2e43(_0x195b4f);})[_0x7dc1('0x35')](function(_0x704a8c){_0x2be7b7(_0x704a8c);});});}function generateNonce(){return crypto[_0x7dc1('0x6b')](0x10)['toString'](_0x7dc1('0x6c'));}function generateIssuedAt(){return Math[_0x7dc1('0x6d')](Date[_0x7dc1('0x6e')]()/0x3e8)[_0x7dc1('0x6f')]();}function createJwt(_0x11b095){var _0x39a2fd={'payload':{'iat':_0x11b095[_0x7dc1('0x54')],'nonce':_0x11b095[_0x7dc1('0x43')]},'options':{'algorithm':_0x7dc1('0x70'),'subject':_0x11b095['id']['toString'](),'issuer':hardwareConf[_0x7dc1('0x41')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x39a2fd)[_0x7dc1('0x30')](function(_0x27e54f){return{'iat':_0x11b095[_0x7dc1('0x54')],'nonce':_0x11b095['apiKeyNonce'],'token':_0x27e54f};});}
\ No newline at end of file
+var _0xffae=['phoneBarEnableSettings','phoneBarRemoteControl','phoneBarRemoteControlPort','interface','userProfileId','settingsEnabled','isChatInteractionAuthorized','use','ChatInteraction','params','then','closed','status','json','disposition','unmanaged','Unmanaged.','Forbidden.','catch','headers','authorization','startsWith','authenticate','pass','Wrong\x20credentials.','user','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','User','find','sub','Setting','findOne','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blockedAt','add','minutes','User\x20object\x20not\x20found.','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','send','isNil','apiKeyIat','generateApiKey','validatePasswordPattern','test','decryptString','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','Sequelize','ValidationError','length','splice','unshift','encryptString','secret','payload','options','promisify','verify','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/util','../encryptor','lodash','jsonwebtoken','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','role','fullname','name','internal','email','userpic','permissions','md5secret','chatPause','mailPause','smsPause','pauseType','lastLoginAt','lastPauseAt','passwordResetAt','alias','phoneBarAutoAnswerDelay','phoneBarDnd'];(function(_0x273c39,_0x1052e6){var _0x46d6b5=function(_0x44f1fb){while(--_0x44f1fb){_0x273c39['push'](_0x273c39['shift']());}};_0x46d6b5(++_0x1052e6);}(_0xffae,0x13a));var _0xeffa=function(_0x2651a3,_0x5a9320){_0x2651a3=_0x2651a3-0x0;var _0x4deb00=_0xffae[_0x2651a3];return _0x4deb00;};'use strict';var db=require(_0xeffa('0x0'))['db'];var config=require(_0xeffa('0x1'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0xeffa('0x2'));var encryptor=require(_0xeffa('0x3'));var _=require(_0xeffa('0x4'));var jwt=require(_0xeffa('0x5'));var expressJwt=require('express-jwt');var compose=require(_0xeffa('0x6'));var basicAuth=require(_0xeffa('0x7'));var crypto=require(_0xeffa('0x8'));var BPromise=require(_0xeffa('0x9'));var util=require(_0xeffa('0xa'));var moment=require(_0xeffa('0xb'));var validateJwt=expressJwt({'secret':config[_0xeffa('0xc')]['session']});var userAttributes=['id',_0xeffa('0xd'),_0xeffa('0xe'),_0xeffa('0xf'),_0xeffa('0x10'),_0xeffa('0x11'),_0xeffa('0x12'),_0xeffa('0x13'),_0xeffa('0x14'),'voicePause',_0xeffa('0x15'),_0xeffa('0x16'),'faxPause',_0xeffa('0x17'),'openchannelPause',_0xeffa('0x18'),'showWebBar',_0xeffa('0x19'),_0xeffa('0x1a'),'crudPermissions','allowmessenger',_0xeffa('0x1b'),_0xeffa('0x1c'),'phoneBarAutoAnswer',_0xeffa('0x1d'),_0xeffa('0x1e'),'phoneBarEnableRecording','phoneBarEnableDtmfTone',_0xeffa('0x1f'),'phoneBarExpires','phoneBarPrefixRequired',_0xeffa('0x20'),_0xeffa('0x21'),'hotdesk',_0xeffa('0x22'),_0xeffa('0x23'),_0xeffa('0x24')];exports[_0xeffa('0x25')]=function(){return this['isAuthenticated'](!![])[_0xeffa('0x26')](function(_0xfbfaa,_0x326a44,_0x3d8b9c){if(_0xfbfaa['user']){_0x3d8b9c();}else{return db[_0xeffa('0x27')]['findOne']({'where':{'id':_0xfbfaa[_0xeffa('0x28')]['id']},'attributes':['id','closed','disposition'],'raw':!![]})[_0xeffa('0x29')](function(_0x59a3f4){if(_0x59a3f4&&_0x59a3f4[_0xeffa('0x2a')]){return _0x326a44[_0xeffa('0x2b')](_0x59a3f4['disposition']==='unmanaged'?0x195:0x193)[_0xeffa('0x2c')]({'message':_0x59a3f4[_0xeffa('0x2d')]===_0xeffa('0x2e')?_0xeffa('0x2f'):_0xeffa('0x30')});}else{_0x3d8b9c();}})[_0xeffa('0x31')](function(_0x8cd0eb){_0x3d8b9c(_0x8cd0eb);});}});};exports['isAuthenticated']=function isAuthenticated(_0x1602f8){return compose()[_0xeffa('0x26')](function(_0x2cd421,_0x4229cd,_0x391587){var _0xb733c8;if(_0x2cd421[_0xeffa('0x32')][_0xeffa('0x33')]){if(_[_0xeffa('0x34')](_0x2cd421[_0xeffa('0x32')][_0xeffa('0x33')],'Basic')){var _0x2e72fd=basicAuth(_0x2cd421);db['User']['find']({'where':{'name':_0x2e72fd[_0xeffa('0xf')]}})['then'](function(_0x3a1c55){if(!_0x3a1c55||!_0x3a1c55[_0xeffa('0x35')](_0x2e72fd[_0xeffa('0x36')])){return _0x4229cd[_0xeffa('0x2b')](0x191)[_0xeffa('0x2c')]({'message':_0xeffa('0x37')});}_0x2cd421[_0xeffa('0x38')]={'id':_0x3a1c55['id']};_0x391587();})[_0xeffa('0x31')](function(_0x2e99c6){_0x391587(_0x2e99c6);});}else if(_[_0xeffa('0x34')](_0x2cd421[_0xeffa('0x32')][_0xeffa('0x33')],_0xeffa('0x39'))){validateJwt(_0x2cd421,_0x4229cd,_0x391587);}else{if(_0x1602f8){_0x391587();}else{return _0x4229cd['status'](0x193)[_0xeffa('0x2c')]({'message':_0xeffa('0x3a')});}}}else if(_0x2cd421[_0xeffa('0x3b')][_0xeffa('0x3c')]){try{var _0x232d24={'audience':hardwareConf[_0xeffa('0x3d')](),'issuer':hardwareConf[_0xeffa('0x3d')]()};verifyJwt(_0x2cd421[_0xeffa('0x3b')][_0xeffa('0x3c')],_0x232d24)[_0xeffa('0x29')](function(_0x286413){return db[_0xeffa('0x3e')][_0xeffa('0x3f')]({'where':{'id':_0x286413[_0xeffa('0x40')]}})['then'](function(_0x2aff81){_0xb733c8=_0x2aff81;return db[_0xeffa('0x41')][_0xeffa('0x42')]({'where':{'id':0x1},'attributes':[_0xeffa('0x43'),_0xeffa('0x44')],'raw':!![]});})['then'](function(_0x4818f3){if(!_0xb733c8||!_[_0xeffa('0x45')](_0xb733c8[_0xeffa('0x46')],_0x286413[_0xeffa('0x47')])){return _0x4229cd[_0xeffa('0x2b')](0x191)[_0xeffa('0x2c')]({'message':_0xeffa('0x48')});}if(_0xb733c8[_0xeffa('0x49')]){return _0x4229cd['status'](0x191)[_0xeffa('0x2c')]({'message':_0xeffa('0x4a')});}if(_0xb733c8['blocked']){if(_0x4818f3[_0xeffa('0x44')]>0x0){if(moment(_0xb733c8[_0xeffa('0x4b')])[_0xeffa('0x4c')](_0x4818f3[_0xeffa('0x44')],_0xeffa('0x4d'))>moment()){return _0x4229cd[_0xeffa('0x2b')](0x191)[_0xeffa('0x2c')]({'message':_0xeffa('0x4a')});}}else{return _0x4229cd[_0xeffa('0x2b')](0x191)['json']({'message':_0xeffa('0x4a')});}}_0x2cd421['user']={'id':_0xb733c8['id']};_0x391587();});})[_0xeffa('0x31')](function(){return _0x4229cd[_0xeffa('0x2b')](0x191)[_0xeffa('0x2c')]({'message':_0xeffa('0x4a')});});}catch(_0x128adc){_0x391587(_0x128adc);}}else if(_0x1602f8){_0x391587();}else{return _0x4229cd[_0xeffa('0x2b')](0x193)[_0xeffa('0x2c')]({'message':_0xeffa('0x3a')});}})[_0xeffa('0x26')](function(_0x5019f5,_0x32d8c9,_0xbfc7a1){if(_0x5019f5[_0xeffa('0x38')]){db[_0xeffa('0x3e')][_0xeffa('0x3f')]({'where':{'id':_0x5019f5['user']['id']},'attributes':userAttributes})['then'](function(_0x184105){if(!_0x184105){return _0x32d8c9['status'](0x194)[_0xeffa('0x2c')]({'message':'User\x20not\x20found.'});}_0x5019f5['user']=_0x184105;_0xbfc7a1();})[_0xeffa('0x31')](function(_0xd1100b){_0xbfc7a1(_0xd1100b);});}else if(_0x1602f8){_0xbfc7a1();}else{return _0x32d8c9[_0xeffa('0x2b')](0x194)['json']({'message':_0xeffa('0x4e')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0xeffa('0x26')](function(_0x44c4b5,_0x568178,_0x3e9602){return licenseUtil[_0xeffa('0x4f')]()[_0xeffa('0x29')](function(_0x4ca699){if(_0x4ca699[_0xeffa('0x50')]){_0x3e9602();}else{return _0x568178['status'](0x193)[_0xeffa('0x2c')]({'message':_0xeffa('0x51')});}})[_0xeffa('0x31')](function(_0xd11b55){_0x3e9602(_0xd11b55);});});};exports['isMiddleware']=function(_0x46f318,_0x3c0f54,_0x4e2d22){_0x46f318[_0xeffa('0x52')]=!![];return _0x4e2d22();};exports[_0xeffa('0x53')]=function signToken(_0xb72dc5){return signJwt(_0xb72dc5);};exports[_0xeffa('0x54')]=function(_0x2e438d,_0x279046){if(!_0x2e438d[_0xeffa('0x38')]){return _0x279046[_0xeffa('0x2b')](0x194)['json']({'message':_0xeffa('0x55')});}var _0x2893e2={'payload':{'id':_0x2e438d[_0xeffa('0x38')]['id'],'role':_0x2e438d[_0xeffa('0x38')][_0xeffa('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x2893e2)[_0xeffa('0x29')](function(_0x57d53d){_0x279046[_0xeffa('0x56')](_0xeffa('0x57'),_0x57d53d);_0x279046[_0xeffa('0x58')]('/dashboards/general');})[_0xeffa('0x31')](function(_0x137284){return _0x279046[_0xeffa('0x2b')](0x1f4)[_0xeffa('0x59')](_0x137284);});};exports['retrieveApiKey']=function(_0x27c937){if(_[_0xeffa('0x5a')](_0x27c937['apiKeyNonce'])||_[_0xeffa('0x5a')](_0x27c937[_0xeffa('0x5b')])){return null;}else{return createJwt(_0x27c937);}};exports[_0xeffa('0x5c')]=function(_0x460073){_0x460073['apiKeyNonce']=generateNonce();_0x460073['apiKeyIat']=generateIssuedAt();return createJwt(_0x460073);};exports['regenerateApiKey']=function(_0x5bc1f7,_0x3595b9){var _0xedcbd9=_0x5bc1f7[_0xeffa('0x3b')][_0xeffa('0x3c')];if(_0xedcbd9){var _0xfde68c={'nonce':_0x3595b9[_0xeffa('0x46')],'iat':_0x3595b9['apiKeyIat'],'audience':hardwareConf[_0xeffa('0x3d')](),'issuer':hardwareConf[_0xeffa('0x3d')]()};return verifyJwt(_0xedcbd9,_0xfde68c)[_0xeffa('0x29')](function(){return generateApiKey(_0x3595b9);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0xeffa('0x5d')]=function(_0x38a443){var _0x3e46a4=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3e46a4[_0xeffa('0x5e')](_0x38a443))throw new db['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~!@#$%^&-_=+[{]}.');return;};exports['validatePasswordHistory']=function(_0x21c285,_0x3a7edf,_0x3861ec){var _0x344fbc=encryptor[_0xeffa('0x5f')](_0x3a7edf)[_0xeffa('0x60')](',');for(var _0x6c0dc7=0x0;_0x6c0dc7<_0x3861ec;_0x6c0dc7++){if(!_0x344fbc[_0x6c0dc7])break;if(_0x21c285[_0xeffa('0x61')]()===_0x344fbc[_0x6c0dc7][_0xeffa('0x61')]()){var _0x2a8381=util[_0xeffa('0x62')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x3861ec);if(_0x3861ec===0x1){_0x2a8381=_0xeffa('0x63');}throw new db[(_0xeffa('0x64'))][(_0xeffa('0x65'))](_0x2a8381);}}return;};exports['updatePasswordsHistory']=function(_0x54886b,_0x445fec){var _0x243e61=_0x445fec?encryptor[_0xeffa('0x5f')](_0x445fec)['split'](','):[];if(_0x243e61[_0xeffa('0x66')]===0x5){_0x243e61[_0xeffa('0x67')](-0x1,0x1);}_0x243e61[_0xeffa('0x68')](_0x54886b);return encryptor[_0xeffa('0x69')](_0x243e61['join'](','));};function signJwt(_0x3b2a1d){var _0x5daeef=BPromise['promisify'](jwt['sign'],{'context':jwt});var _0x301c04=_0x3b2a1d[_0xeffa('0x6a')]||config['secrets']['session'];return new BPromise(function(_0x9edf38,_0x34c952){_0x5daeef(_0x3b2a1d[_0xeffa('0x6b')],_0x301c04,_0x3b2a1d[_0xeffa('0x6c')])[_0xeffa('0x29')](function(_0x17cd03){_0x9edf38(_0x17cd03);})[_0xeffa('0x31')](function(_0x1c9f78){_0x34c952(_0x1c9f78);});});}function verifyJwt(_0x9d16ab,_0x1caa16,_0x4b3513){var _0x1d57b6=BPromise[_0xeffa('0x6d')](jwt[_0xeffa('0x6e')],{'context':jwt});var _0x5b0288=_0x4b3513||config[_0xeffa('0xc')]['session'];return new BPromise(function(_0x3b6cd2,_0x1fbbad){_0x1d57b6(_0x9d16ab,_0x5b0288,_0x1caa16)[_0xeffa('0x29')](function(_0x450298){_0x3b6cd2(_0x450298);})[_0xeffa('0x31')](function(_0x2ef4ff){_0x1fbbad(_0x2ef4ff);});});}function generateNonce(){return crypto['randomBytes'](0x10)['toString'](_0xeffa('0x6f'));}function generateIssuedAt(){return Math[_0xeffa('0x70')](Date[_0xeffa('0x71')]()/0x3e8)['toString']();}function createJwt(_0x51449b){var _0x5b4f4d={'payload':{'iat':_0x51449b[_0xeffa('0x5b')],'nonce':_0x51449b[_0xeffa('0x46')]},'options':{'algorithm':_0xeffa('0x72'),'subject':_0x51449b['id']['toString'](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0xeffa('0x3d')]()}};return signJwt(_0x5b4f4d)['then'](function(_0x29584b){return{'iat':_0x51449b[_0xeffa('0x5b')],'nonce':_0x51449b[_0xeffa('0x46')],'token':_0x29584b};});}
\ No newline at end of file