Built motion from commit (unavailable).|2.5.31
[motion2.git] / server / components / auth / service.js
index 96a5338..13390cd 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x0f58=['smsPause','openchannelPause','pauseType','crudPermissions','allowmessenger','passwordResetAt','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','then','status','json','unmanaged','Unmanaged.','catch','isAuthenticated','headers','authorization','startsWith','Basic','User','pass','Wrong\x20credentials.','Bearer','apikey','getUuid','query','find','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','minutes','Unknown\x20authorization\x20format','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','update','Forbidden','isMiddleware','signToken','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','/dashboards/general','send','isNil','apiKeyNonce','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~!@#$%^&-_=+[{]}.','validatePasswordHistory','decryptString','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','join','promisify','sign','secret','session','payload','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','../encryptor','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','role','name','email','userpic','permissions','md5secret','voicePause','mailPause'];(function(_0x56b50d,_0x2f4d83){var _0x1a732d=function(_0x19b500){while(--_0x19b500){_0x56b50d['push'](_0x56b50d['shift']());}};_0x1a732d(++_0x2f4d83);}(_0x0f58,0x164));var _0x80f5=function(_0xe15934,_0x5439fd){_0xe15934=_0xe15934-0x0;var _0x486c48=_0x0f58[_0xe15934];return _0x486c48;};'use strict';var db=require(_0x80f5('0x0'))['db'];var config=require(_0x80f5('0x1'));var hardwareConf=require(_0x80f5('0x2'));var licenseUtil=require(_0x80f5('0x3'));var encryptor=require(_0x80f5('0x4'));var _=require('lodash');var jwt=require(_0x80f5('0x5'));var expressJwt=require(_0x80f5('0x6'));var compose=require(_0x80f5('0x7'));var basicAuth=require(_0x80f5('0x8'));var crypto=require(_0x80f5('0x9'));var BPromise=require(_0x80f5('0xa'));var util=require(_0x80f5('0xb'));var moment=require(_0x80f5('0xc'));var validateJwt=expressJwt({'secret':config[_0x80f5('0xd')]['session']});var userAttributes=['id',_0x80f5('0xe'),'fullname',_0x80f5('0xf'),'internal',_0x80f5('0x10'),_0x80f5('0x11'),_0x80f5('0x12'),_0x80f5('0x13'),_0x80f5('0x14'),'chatPause',_0x80f5('0x15'),'faxPause',_0x80f5('0x16'),_0x80f5('0x17'),_0x80f5('0x18'),'showWebBar','lastLoginAt','lastPauseAt',_0x80f5('0x19'),_0x80f5('0x1a'),_0x80f5('0x1b'),'alias',_0x80f5('0x1c'),'phoneBarAutoAnswerDelay',_0x80f5('0x1d'),_0x80f5('0x1e'),_0x80f5('0x1f'),_0x80f5('0x20'),_0x80f5('0x21'),_0x80f5('0x22'),_0x80f5('0x23'),_0x80f5('0x24'),_0x80f5('0x25'),_0x80f5('0x26'),_0x80f5('0x27'),_0x80f5('0x28'),_0x80f5('0x29'),'wssPort','downloadVoiceRecordings',_0x80f5('0x2a'),_0x80f5('0x2b')];exports[_0x80f5('0x2c')]=function(){return this['isAuthenticated'](!![])[_0x80f5('0x2d')](function(_0x3f35a7,_0x1f5947,_0x38ecf0){if(_0x3f35a7[_0x80f5('0x2e')]){_0x38ecf0();}else{return db[_0x80f5('0x2f')][_0x80f5('0x30')]({'where':{'id':_0x3f35a7[_0x80f5('0x31')]['id']},'attributes':['id',_0x80f5('0x32'),_0x80f5('0x33')],'raw':!![]})[_0x80f5('0x34')](function(_0x45fdb9){if(_0x45fdb9&&_0x45fdb9['closed']){return _0x1f5947[_0x80f5('0x35')](_0x45fdb9['disposition']==='unmanaged'?0x195:0x193)[_0x80f5('0x36')]({'message':_0x45fdb9[_0x80f5('0x33')]===_0x80f5('0x37')?_0x80f5('0x38'):'Forbidden.'});}else{_0x38ecf0();}})[_0x80f5('0x39')](function(_0x3a1d16){_0x38ecf0(_0x3a1d16);});}});};exports[_0x80f5('0x3a')]=function isAuthenticated(_0xdfb7ad){return compose()[_0x80f5('0x2d')](function(_0x116508,_0x37e2ce,_0x423763){var _0x58668f;if(_0x116508[_0x80f5('0x3b')][_0x80f5('0x3c')]){if(_[_0x80f5('0x3d')](_0x116508[_0x80f5('0x3b')][_0x80f5('0x3c')],_0x80f5('0x3e'))){var _0x4207f9=basicAuth(_0x116508);db[_0x80f5('0x3f')]['find']({'where':{'name':_0x4207f9[_0x80f5('0xf')]}})[_0x80f5('0x34')](function(_0x5ad803){if(!_0x5ad803||!_0x5ad803['authenticate'](_0x4207f9[_0x80f5('0x40')])){return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x41')});}_0x116508['user']={'id':_0x5ad803['id']};_0x423763();})[_0x80f5('0x39')](function(_0x254fb2){_0x423763(_0x254fb2);});}else if(_[_0x80f5('0x3d')](_0x116508[_0x80f5('0x3b')][_0x80f5('0x3c')],_0x80f5('0x42'))){validateJwt(_0x116508,_0x37e2ce,_0x423763);}else{if(_0xdfb7ad){_0x423763();}else{return _0x37e2ce[_0x80f5('0x35')](0x193)[_0x80f5('0x36')]({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x116508['query'][_0x80f5('0x43')]){try{var _0x3610b9={'audience':hardwareConf[_0x80f5('0x44')](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x116508[_0x80f5('0x45')][_0x80f5('0x43')],_0x3610b9)[_0x80f5('0x34')](function(_0x4b23af){return db[_0x80f5('0x3f')][_0x80f5('0x46')]({'where':{'id':_0x4b23af[_0x80f5('0x47')]}})[_0x80f5('0x34')](function(_0x507a5c){_0x58668f=_0x507a5c;return db[_0x80f5('0x48')][_0x80f5('0x30')]({'where':{'id':0x1},'attributes':[_0x80f5('0x49'),_0x80f5('0x4a')],'raw':!![]});})[_0x80f5('0x34')](function(_0x10a3f2){if(!_0x58668f||!_[_0x80f5('0x4b')](_0x58668f['apiKeyNonce'],_0x4b23af[_0x80f5('0x4c')])){return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x4d')});}if(_0x58668f[_0x80f5('0x4e')]){return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x4f')});}if(_0x58668f[_0x80f5('0x50')]){if(_0x10a3f2[_0x80f5('0x4a')]>0x0){if(moment(_0x58668f['blockedAt'])['add'](_0x10a3f2[_0x80f5('0x4a')],_0x80f5('0x51'))>moment()){return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x4f')});}}else{return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x4f')});}}_0x116508[_0x80f5('0x2e')]={'id':_0x58668f['id']};_0x423763();});})[_0x80f5('0x39')](function(){return _0x37e2ce[_0x80f5('0x35')](0x191)[_0x80f5('0x36')]({'message':_0x80f5('0x4f')});});}catch(_0x1057b6){_0x423763(_0x1057b6);}}else if(_0xdfb7ad){_0x423763();}else{return _0x37e2ce[_0x80f5('0x35')](0x193)['json']({'message':_0x80f5('0x52')});}})[_0x80f5('0x2d')](function(_0x4ba683,_0xd94a82,_0x1f3438){if(_0x4ba683['user']){db[_0x80f5('0x3f')][_0x80f5('0x46')]({'where':{'id':_0x4ba683[_0x80f5('0x2e')]['id']},'attributes':userAttributes})['then'](function(_0x39caed){if(!_0x39caed){return _0xd94a82[_0x80f5('0x35')](0x194)[_0x80f5('0x36')]({'message':_0x80f5('0x53')});}_0x4ba683[_0x80f5('0x2e')]=_0x39caed;_0x1f3438();})[_0x80f5('0x39')](function(_0x388518){_0x1f3438(_0x388518);});}else if(_0xdfb7ad){_0x1f3438();}else{return _0xd94a82[_0x80f5('0x35')](0x194)[_0x80f5('0x36')]({'message':_0x80f5('0x54')});}});};exports[_0x80f5('0x55')]=function canUpdate(){return compose()[_0x80f5('0x2d')](function(_0x1822ae,_0x12dc7c,_0x21e0cb){return licenseUtil['getLicense']()[_0x80f5('0x34')](function(_0x544dcd){if(_0x544dcd[_0x80f5('0x56')]){_0x21e0cb();}else{return _0x12dc7c[_0x80f5('0x35')](0x193)[_0x80f5('0x36')]({'message':_0x80f5('0x57')});}})['catch'](function(_0x5c69eb){_0x21e0cb(_0x5c69eb);});});};exports[_0x80f5('0x58')]=function(_0x1da06d,_0x4a22e5,_0x321fcf){_0x1da06d[_0x80f5('0x58')]=!![];return _0x321fcf();};exports[_0x80f5('0x59')]=function signToken(_0x3835e2){return signJwt(_0x3835e2);};exports['setTokenCookie']=function(_0x428e85,_0x1570f1){if(!_0x428e85[_0x80f5('0x2e')]){return _0x1570f1[_0x80f5('0x35')](0x194)[_0x80f5('0x36')]({'message':_0x80f5('0x5a')});}var _0x1ad1a9={'payload':{'id':_0x428e85[_0x80f5('0x2e')]['id'],'role':_0x428e85[_0x80f5('0x2e')][_0x80f5('0xe')]},'options':{'expiresIn':0x15180}};return signJwt(_0x1ad1a9)[_0x80f5('0x34')](function(_0x4b1897){_0x1570f1[_0x80f5('0x5b')](_0x80f5('0x5c'),_0x4b1897);_0x1570f1['redirect'](_0x80f5('0x5d'));})[_0x80f5('0x39')](function(_0x2e7132){return _0x1570f1[_0x80f5('0x35')](0x1f4)[_0x80f5('0x5e')](_0x2e7132);});};exports['retrieveApiKey']=function(_0x399f76){if(_[_0x80f5('0x5f')](_0x399f76[_0x80f5('0x60')])||_['isNil'](_0x399f76[_0x80f5('0x61')])){return null;}else{return createJwt(_0x399f76);}};exports[_0x80f5('0x62')]=function(_0x4fb838){_0x4fb838[_0x80f5('0x60')]=generateNonce();_0x4fb838[_0x80f5('0x61')]=generateIssuedAt();return createJwt(_0x4fb838);};exports[_0x80f5('0x63')]=function(_0x303c17,_0x833f7){var _0x21abd1=_0x303c17[_0x80f5('0x45')][_0x80f5('0x43')];if(_0x21abd1){var _0x4f28e3={'nonce':_0x833f7[_0x80f5('0x60')],'iat':_0x833f7['apiKeyIat'],'audience':hardwareConf[_0x80f5('0x44')](),'issuer':hardwareConf[_0x80f5('0x44')]()};return verifyJwt(_0x21abd1,_0x4f28e3)[_0x80f5('0x34')](function(){return generateApiKey(_0x833f7);});}else{throw{'message':_0x80f5('0x64')};}};exports[_0x80f5('0x65')]=function(_0x12d3d5){var _0x47c1cb=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x47c1cb['test'](_0x12d3d5))throw new db[(_0x80f5('0x66'))][(_0x80f5('0x67'))](_0x80f5('0x68'));return;};exports[_0x80f5('0x69')]=function(_0x5386de,_0x4e4852,_0xe97373){var _0x165129=encryptor[_0x80f5('0x6a')](_0x4e4852)[_0x80f5('0x6b')](',');for(var _0x427393=0x0;_0x427393<_0xe97373;_0x427393++){if(!_0x165129[_0x427393])break;if(_0x5386de[_0x80f5('0x6c')]()===_0x165129[_0x427393]['toLowerCase']()){var _0x7a657=util[_0x80f5('0x6d')](_0x80f5('0x6e'),_0xe97373);if(_0xe97373===0x1){_0x7a657=_0x80f5('0x6f');}throw new db['Sequelize'][(_0x80f5('0x67'))](_0x7a657);}}return;};exports[_0x80f5('0x70')]=function(_0x4af110,_0x1faaf3){var _0x445056=_0x1faaf3?encryptor[_0x80f5('0x6a')](_0x1faaf3)[_0x80f5('0x6b')](','):[];if(_0x445056['length']===0x5){_0x445056['splice'](-0x1,0x1);}_0x445056['unshift'](_0x4af110);return encryptor['encryptString'](_0x445056[_0x80f5('0x71')](','));};function signJwt(_0x2de122){var _0x1d433d=BPromise[_0x80f5('0x72')](jwt[_0x80f5('0x73')],{'context':jwt});var _0x28122f=_0x2de122[_0x80f5('0x74')]||config['secrets'][_0x80f5('0x75')];return new BPromise(function(_0x447767,_0x26388c){_0x1d433d(_0x2de122[_0x80f5('0x76')],_0x28122f,_0x2de122['options'])['then'](function(_0x449965){_0x447767(_0x449965);})[_0x80f5('0x39')](function(_0x289478){_0x26388c(_0x289478);});});}function verifyJwt(_0x4b8791,_0x2a6b08,_0x3b774e){var _0x3615af=BPromise['promisify'](jwt[_0x80f5('0x77')],{'context':jwt});var _0x33fbef=_0x3b774e||config[_0x80f5('0xd')]['session'];return new BPromise(function(_0x4b6676,_0x2a41b7){_0x3615af(_0x4b8791,_0x33fbef,_0x2a6b08)[_0x80f5('0x34')](function(_0x24748b){_0x4b6676(_0x24748b);})['catch'](function(_0x2062f6){_0x2a41b7(_0x2062f6);});});}function generateNonce(){return crypto[_0x80f5('0x78')](0x10)[_0x80f5('0x79')](_0x80f5('0x7a'));}function generateIssuedAt(){return Math[_0x80f5('0x7b')](Date[_0x80f5('0x7c')]()/0x3e8)[_0x80f5('0x79')]();}function createJwt(_0x1ae4d7){var _0x2e0238={'payload':{'iat':_0x1ae4d7[_0x80f5('0x61')],'nonce':_0x1ae4d7[_0x80f5('0x60')]},'options':{'algorithm':_0x80f5('0x7d'),'subject':_0x1ae4d7['id'][_0x80f5('0x79')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x2e0238)['then'](function(_0x14f23){return{'iat':_0x1ae4d7[_0x80f5('0x61')],'nonce':_0x1ae4d7['apiKeyNonce'],'token':_0x14f23};});}
\ No newline at end of file
+var _0xf8eb=['composable-middleware','basic-auth','bluebird','util','moment','secrets','session','role','fullname','name','internal','email','userpic','permissions','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastPauseAt','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableDtmfTone','phoneBarExpires','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','settingsEnabled','wssPort','downloadVoiceRecordings','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','ChatInteraction','findOne','closed','status','unmanaged','json','disposition','catch','use','headers','authorization','startsWith','Basic','find','then','user','Bearer','Unknown\x20authorization\x20format','getUuid','User','sub','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blockedAt','User\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','cookie','motion.token','/dashboards/general','send','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','query','apikey','validatePasswordPattern','Sequelize','ValidationError','decryptString','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','length','splice','unshift','encryptString','promisify','sign','secret','payload','verify','randomBytes','toString','hex','floor','now','../../mysqldb','../../config/environment','../../config/license/hardware','lodash','jsonwebtoken','express-jwt'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xf8eb,0x159));var _0xbf8e=function(_0x880009,_0x1a36f4){_0x880009=_0x880009-0x0;var _0x541685=_0xf8eb[_0x880009];return _0x541685;};'use strict';var db=require(_0xbf8e('0x0'))['db'];var config=require(_0xbf8e('0x1'));var hardwareConf=require(_0xbf8e('0x2'));var licenseUtil=require('../../config/license/util');var encryptor=require('../encryptor');var _=require(_0xbf8e('0x3'));var jwt=require(_0xbf8e('0x4'));var expressJwt=require(_0xbf8e('0x5'));var compose=require(_0xbf8e('0x6'));var basicAuth=require(_0xbf8e('0x7'));var crypto=require('crypto');var BPromise=require(_0xbf8e('0x8'));var util=require(_0xbf8e('0x9'));var moment=require(_0xbf8e('0xa'));var validateJwt=expressJwt({'secret':config[_0xbf8e('0xb')][_0xbf8e('0xc')]});var userAttributes=['id',_0xbf8e('0xd'),_0xbf8e('0xe'),_0xbf8e('0xf'),_0xbf8e('0x10'),_0xbf8e('0x11'),_0xbf8e('0x12'),_0xbf8e('0x13'),'md5secret',_0xbf8e('0x14'),_0xbf8e('0x15'),_0xbf8e('0x16'),_0xbf8e('0x17'),_0xbf8e('0x18'),_0xbf8e('0x19'),_0xbf8e('0x1a'),_0xbf8e('0x1b'),'lastLoginAt',_0xbf8e('0x1c'),'crudPermissions',_0xbf8e('0x1d'),_0xbf8e('0x1e'),_0xbf8e('0x1f'),_0xbf8e('0x20'),'phoneBarAutoAnswerDelay',_0xbf8e('0x21'),'phoneBarEnableRecording',_0xbf8e('0x22'),'phoneBarEnableSettings',_0xbf8e('0x23'),'phoneBarPrefixRequired',_0xbf8e('0x24'),_0xbf8e('0x25'),_0xbf8e('0x26'),_0xbf8e('0x27'),'userProfileId','privacyEnabled',_0xbf8e('0x28'),_0xbf8e('0x29'),_0xbf8e('0x2a'),'downloadOmnichannelInteractions',_0xbf8e('0x2b')];exports[_0xbf8e('0x2c')]=function(){return this[_0xbf8e('0x2d')](!![])['use'](function(_0x39ec63,_0x4f2647,_0x29fc5a){if(_0x39ec63['user']){_0x29fc5a();}else{return db[_0xbf8e('0x2e')][_0xbf8e('0x2f')]({'where':{'id':_0x39ec63['params']['id']},'attributes':['id',_0xbf8e('0x30'),'disposition'],'raw':!![]})['then'](function(_0x41978a){if(_0x41978a&&_0x41978a[_0xbf8e('0x30')]){return _0x4f2647[_0xbf8e('0x31')](_0x41978a['disposition']===_0xbf8e('0x32')?0x195:0x193)[_0xbf8e('0x33')]({'message':_0x41978a[_0xbf8e('0x34')]===_0xbf8e('0x32')?'Unmanaged.':'Forbidden.'});}else{_0x29fc5a();}})[_0xbf8e('0x35')](function(_0x3cef7b){_0x29fc5a(_0x3cef7b);});}});};exports[_0xbf8e('0x2d')]=function isAuthenticated(_0x2d0178){return compose()[_0xbf8e('0x36')](function(_0x3aafeb,_0x2e4e26,_0xfe6572){var _0x3c68db;if(_0x3aafeb[_0xbf8e('0x37')][_0xbf8e('0x38')]){if(_[_0xbf8e('0x39')](_0x3aafeb[_0xbf8e('0x37')][_0xbf8e('0x38')],_0xbf8e('0x3a'))){var _0x553905=basicAuth(_0x3aafeb);db['User'][_0xbf8e('0x3b')]({'where':{'name':_0x553905[_0xbf8e('0xf')]}})[_0xbf8e('0x3c')](function(_0x415c14){if(!_0x415c14||!_0x415c14['authenticate'](_0x553905['pass'])){return _0x2e4e26[_0xbf8e('0x31')](0x191)[_0xbf8e('0x33')]({'message':'Wrong\x20credentials.'});}_0x3aafeb[_0xbf8e('0x3d')]={'id':_0x415c14['id']};_0xfe6572();})['catch'](function(_0x1e59b6){_0xfe6572(_0x1e59b6);});}else if(_['startsWith'](_0x3aafeb[_0xbf8e('0x37')][_0xbf8e('0x38')],_0xbf8e('0x3e'))){validateJwt(_0x3aafeb,_0x2e4e26,_0xfe6572);}else{if(_0x2d0178){_0xfe6572();}else{return _0x2e4e26[_0xbf8e('0x31')](0x193)['json']({'message':_0xbf8e('0x3f')});}}}else if(_0x3aafeb['query']['apikey']){try{var _0x1a1a8c={'audience':hardwareConf[_0xbf8e('0x40')](),'issuer':hardwareConf[_0xbf8e('0x40')]()};verifyJwt(_0x3aafeb['query']['apikey'],_0x1a1a8c)['then'](function(_0x28dfb5){return db[_0xbf8e('0x41')][_0xbf8e('0x3b')]({'where':{'id':_0x28dfb5[_0xbf8e('0x42')]}})[_0xbf8e('0x3c')](function(_0x13877){_0x3c68db=_0x13877;return db['Setting'][_0xbf8e('0x2f')]({'where':{'id':0x1},'attributes':[_0xbf8e('0x43'),_0xbf8e('0x44')],'raw':!![]});})[_0xbf8e('0x3c')](function(_0x4c1acc){if(!_0x3c68db||!_[_0xbf8e('0x45')](_0x3c68db[_0xbf8e('0x46')],_0x28dfb5['nonce'])){return _0x2e4e26['status'](0x191)['json']({'message':_0xbf8e('0x47')});}if(_0x3c68db[_0xbf8e('0x48')]){return _0x2e4e26[_0xbf8e('0x31')](0x191)[_0xbf8e('0x33')]({'message':_0xbf8e('0x49')});}if(_0x3c68db['blocked']){if(_0x4c1acc[_0xbf8e('0x44')]>0x0){if(moment(_0x3c68db[_0xbf8e('0x4a')])['add'](_0x4c1acc[_0xbf8e('0x44')],'minutes')>moment()){return _0x2e4e26[_0xbf8e('0x31')](0x191)['json']({'message':_0xbf8e('0x49')});}}else{return _0x2e4e26['status'](0x191)[_0xbf8e('0x33')]({'message':_0xbf8e('0x49')});}}_0x3aafeb['user']={'id':_0x3c68db['id']};_0xfe6572();});})['catch'](function(){return _0x2e4e26['status'](0x191)['json']({'message':_0xbf8e('0x49')});});}catch(_0x4494a4){_0xfe6572(_0x4494a4);}}else if(_0x2d0178){_0xfe6572();}else{return _0x2e4e26['status'](0x193)[_0xbf8e('0x33')]({'message':_0xbf8e('0x3f')});}})['use'](function(_0x470495,_0x44b96b,_0x394e31){if(_0x470495[_0xbf8e('0x3d')]){db[_0xbf8e('0x41')][_0xbf8e('0x3b')]({'where':{'id':_0x470495['user']['id']},'attributes':userAttributes})['then'](function(_0x8f5491){if(!_0x8f5491){return _0x44b96b['status'](0x194)[_0xbf8e('0x33')]({'message':_0xbf8e('0x4b')});}_0x470495[_0xbf8e('0x3d')]=_0x8f5491;_0x394e31();})[_0xbf8e('0x35')](function(_0x235686){_0x394e31(_0x235686);});}else if(_0x2d0178){_0x394e31();}else{return _0x44b96b[_0xbf8e('0x31')](0x194)[_0xbf8e('0x33')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0xbf8e('0x4c')]=function canUpdate(){return compose()['use'](function(_0x279dad,_0xbddee4,_0x354fd4){return licenseUtil[_0xbf8e('0x4d')]()[_0xbf8e('0x3c')](function(_0x21fca4){if(_0x21fca4[_0xbf8e('0x4e')]){_0x354fd4();}else{return _0xbddee4[_0xbf8e('0x31')](0x193)[_0xbf8e('0x33')]({'message':_0xbf8e('0x4f')});}})['catch'](function(_0x5550ee){_0x354fd4(_0x5550ee);});});};exports[_0xbf8e('0x50')]=function(_0x44451c,_0x47d325,_0xf0b5f4){_0x44451c[_0xbf8e('0x50')]=!![];return _0xf0b5f4();};exports[_0xbf8e('0x51')]=function signToken(_0x38eba2){return signJwt(_0x38eba2);};exports[_0xbf8e('0x52')]=function(_0x5f297f,_0x232604){if(!_0x5f297f[_0xbf8e('0x3d')]){return _0x232604['status'](0x194)[_0xbf8e('0x33')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x33b8d5={'payload':{'id':_0x5f297f[_0xbf8e('0x3d')]['id'],'role':_0x5f297f[_0xbf8e('0x3d')][_0xbf8e('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x33b8d5)[_0xbf8e('0x3c')](function(_0x44a80a){_0x232604[_0xbf8e('0x53')](_0xbf8e('0x54'),_0x44a80a);_0x232604['redirect'](_0xbf8e('0x55'));})['catch'](function(_0x76a157){return _0x232604[_0xbf8e('0x31')](0x1f4)[_0xbf8e('0x56')](_0x76a157);});};exports[_0xbf8e('0x57')]=function(_0x5af4d9){if(_[_0xbf8e('0x58')](_0x5af4d9[_0xbf8e('0x46')])||_[_0xbf8e('0x58')](_0x5af4d9[_0xbf8e('0x59')])){return null;}else{return createJwt(_0x5af4d9);}};exports[_0xbf8e('0x5a')]=function(_0x377c00){_0x377c00[_0xbf8e('0x46')]=generateNonce();_0x377c00[_0xbf8e('0x59')]=generateIssuedAt();return createJwt(_0x377c00);};exports[_0xbf8e('0x5b')]=function(_0x4fa5c4,_0x21c516){var _0x35d1fa=_0x4fa5c4[_0xbf8e('0x5c')][_0xbf8e('0x5d')];if(_0x35d1fa){var _0x76da5f={'nonce':_0x21c516[_0xbf8e('0x46')],'iat':_0x21c516[_0xbf8e('0x59')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xbf8e('0x40')]()};return verifyJwt(_0x35d1fa,_0x76da5f)[_0xbf8e('0x3c')](function(){return generateApiKey(_0x21c516);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0xbf8e('0x5e')]=function(_0x302b8e){var _0x4cd2d3=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4cd2d3['test'](_0x302b8e))throw new db[(_0xbf8e('0x5f'))][(_0xbf8e('0x60'))]('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(_0x16bf1e,_0x2b2887,_0x47adc4){var _0x293fe4=encryptor[_0xbf8e('0x61')](_0x2b2887)[_0xbf8e('0x62')](',');for(var _0x44e928=0x0;_0x44e928<_0x47adc4;_0x44e928++){if(!_0x293fe4[_0x44e928])break;if(_0x16bf1e[_0xbf8e('0x63')]()===_0x293fe4[_0x44e928][_0xbf8e('0x63')]()){var _0x4b5fb6=util[_0xbf8e('0x64')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x47adc4);if(_0x47adc4===0x1){_0x4b5fb6=_0xbf8e('0x65');}throw new db[(_0xbf8e('0x5f'))]['ValidationError'](_0x4b5fb6);}}return;};exports[_0xbf8e('0x66')]=function(_0xbf1c14,_0x30ffc6){var _0x5cf01b=_0x30ffc6?encryptor[_0xbf8e('0x61')](_0x30ffc6)['split'](','):[];if(_0x5cf01b[_0xbf8e('0x67')]===0x5){_0x5cf01b[_0xbf8e('0x68')](-0x1,0x1);}_0x5cf01b[_0xbf8e('0x69')](_0xbf1c14);return encryptor[_0xbf8e('0x6a')](_0x5cf01b['join'](','));};function signJwt(_0x5686da){var _0x2dfb62=BPromise[_0xbf8e('0x6b')](jwt[_0xbf8e('0x6c')],{'context':jwt});var _0x2250ef=_0x5686da[_0xbf8e('0x6d')]||config[_0xbf8e('0xb')][_0xbf8e('0xc')];return new BPromise(function(_0x63814f,_0x11d0c6){_0x2dfb62(_0x5686da[_0xbf8e('0x6e')],_0x2250ef,_0x5686da['options'])[_0xbf8e('0x3c')](function(_0x433b98){_0x63814f(_0x433b98);})[_0xbf8e('0x35')](function(_0x1f4f89){_0x11d0c6(_0x1f4f89);});});}function verifyJwt(_0x1caea4,_0x9347a3,_0x335cfa){var _0x201535=BPromise['promisify'](jwt[_0xbf8e('0x6f')],{'context':jwt});var _0x2a2b0f=_0x335cfa||config['secrets']['session'];return new BPromise(function(_0x37670f,_0x3400c1){_0x201535(_0x1caea4,_0x2a2b0f,_0x9347a3)[_0xbf8e('0x3c')](function(_0x19984a){_0x37670f(_0x19984a);})[_0xbf8e('0x35')](function(_0x42d57e){_0x3400c1(_0x42d57e);});});}function generateNonce(){return crypto[_0xbf8e('0x70')](0x10)[_0xbf8e('0x71')](_0xbf8e('0x72'));}function generateIssuedAt(){return Math[_0xbf8e('0x73')](Date[_0xbf8e('0x74')]()/0x3e8)[_0xbf8e('0x71')]();}function createJwt(_0x313e1d){var _0x28d886={'payload':{'iat':_0x313e1d[_0xbf8e('0x59')],'nonce':_0x313e1d[_0xbf8e('0x46')]},'options':{'algorithm':'HS512','subject':_0x313e1d['id']['toString'](),'issuer':hardwareConf[_0xbf8e('0x40')](),'audience':hardwareConf[_0xbf8e('0x40')]()}};return signJwt(_0x28d886)[_0xbf8e('0x3c')](function(_0xcc0646){return{'iat':_0x313e1d['apiKeyIat'],'nonce':_0x313e1d[_0xbf8e('0x46')],'token':_0xcc0646};});}
\ No newline at end of file