Built motion from commit 936e8062.|2.5.33
[motion2.git] / server / components / auth / service.js
index a45df3b..15adfb2 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x69d3=['hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','user','ChatInteraction','findOne','closed','status','disposition','json','unmanaged','use','headers','authorization','startsWith','Basic','User','then','authenticate','Wrong\x20credentials.','catch','Bearer','query','apikey','getUuid','sub','Setting','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','Invalid\x20API\x20access\x20key','blocked','blockedAt','blockDuration','minutes','User\x20not\x20found.','canUpdate','Forbidden','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','retrieveApiKey','isNil','apiKeyIat','generateApiKey','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','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','length','splice','unshift','encryptString','join','promisify','sign','secret','payload','verify','toString','hex','floor','now','../../mysqldb','../../config/license/hardware','../../config/license/util','../encryptor','express-jwt','basic-auth','crypto','bluebird','util','moment','secrets','session','name','internal','email','permissions','md5secret','voicePause','mailPause','faxPause','smsPause','showWebBar','crudPermissions','allowmessenger','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl'];(function(_0x4edc7f,_0x1c4c90){var _0x3bc4c6=function(_0x2da577){while(--_0x2da577){_0x4edc7f['push'](_0x4edc7f['shift']());}};_0x3bc4c6(++_0x1c4c90);}(_0x69d3,0x12b));var _0x369d=function(_0x30ce8b,_0x228d98){_0x30ce8b=_0x30ce8b-0x0;var _0x593958=_0x69d3[_0x30ce8b];return _0x593958;};'use strict';var db=require(_0x369d('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0x369d('0x1'));var licenseUtil=require(_0x369d('0x2'));var encryptor=require(_0x369d('0x3'));var _=require('lodash');var jwt=require('jsonwebtoken');var expressJwt=require(_0x369d('0x4'));var compose=require('composable-middleware');var basicAuth=require(_0x369d('0x5'));var crypto=require(_0x369d('0x6'));var BPromise=require(_0x369d('0x7'));var util=require(_0x369d('0x8'));var moment=require(_0x369d('0x9'));var validateJwt=expressJwt({'secret':config[_0x369d('0xa')][_0x369d('0xb')]});var userAttributes=['id','role','fullname',_0x369d('0xc'),_0x369d('0xd'),_0x369d('0xe'),'userpic',_0x369d('0xf'),_0x369d('0x10'),_0x369d('0x11'),'chatPause',_0x369d('0x12'),_0x369d('0x13'),_0x369d('0x14'),'openchannelPause','pauseType',_0x369d('0x15'),'lastLoginAt','lastPauseAt',_0x369d('0x16'),_0x369d('0x17'),'passwordResetAt','alias',_0x369d('0x18'),'phoneBarAutoAnswerDelay',_0x369d('0x19'),'phoneBarEnableRecording',_0x369d('0x1a'),_0x369d('0x1b'),_0x369d('0x1c'),_0x369d('0x1d'),_0x369d('0x1e'),'phoneBarRemoteControlPort',_0x369d('0x1f'),_0x369d('0x20'),_0x369d('0x21'),_0x369d('0x22'),_0x369d('0x23'),_0x369d('0x24'),_0x369d('0x25'),_0x369d('0x26'),_0x369d('0x27')];exports[_0x369d('0x28')]=function(){return this[_0x369d('0x29')](!![])['use'](function(_0x389ae3,_0x4508ca,_0x5a6e41){if(_0x389ae3[_0x369d('0x2a')]){_0x5a6e41();}else{return db[_0x369d('0x2b')][_0x369d('0x2c')]({'where':{'id':_0x389ae3['params']['id']},'attributes':['id','closed','disposition'],'raw':!![]})['then'](function(_0x404165){if(_0x404165&&_0x404165[_0x369d('0x2d')]){return _0x4508ca[_0x369d('0x2e')](_0x404165[_0x369d('0x2f')]==='unmanaged'?0x195:0x193)[_0x369d('0x30')]({'message':_0x404165[_0x369d('0x2f')]===_0x369d('0x31')?'Unmanaged.':'Forbidden.'});}else{_0x5a6e41();}})['catch'](function(_0x18c4cc){_0x5a6e41(_0x18c4cc);});}});};exports[_0x369d('0x29')]=function isAuthenticated(_0x2fb739){return compose()[_0x369d('0x32')](function(_0x403850,_0xd06ed0,_0x4ec486){var _0x36f313;if(_0x403850[_0x369d('0x33')][_0x369d('0x34')]){if(_[_0x369d('0x35')](_0x403850[_0x369d('0x33')][_0x369d('0x34')],_0x369d('0x36'))){var _0x2b50aa=basicAuth(_0x403850);db[_0x369d('0x37')]['find']({'where':{'name':_0x2b50aa['name']}})[_0x369d('0x38')](function(_0x3ecf13){if(!_0x3ecf13||!_0x3ecf13[_0x369d('0x39')](_0x2b50aa['pass'])){return _0xd06ed0[_0x369d('0x2e')](0x191)[_0x369d('0x30')]({'message':_0x369d('0x3a')});}_0x403850['user']={'id':_0x3ecf13['id']};_0x4ec486();})[_0x369d('0x3b')](function(_0x5ac456){_0x4ec486(_0x5ac456);});}else if(_[_0x369d('0x35')](_0x403850[_0x369d('0x33')][_0x369d('0x34')],_0x369d('0x3c'))){validateJwt(_0x403850,_0xd06ed0,_0x4ec486);}else{if(_0x2fb739){_0x4ec486();}else{return _0xd06ed0['status'](0x193)['json']({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x403850[_0x369d('0x3d')][_0x369d('0x3e')]){try{var _0x21f940={'audience':hardwareConf[_0x369d('0x3f')](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x403850[_0x369d('0x3d')][_0x369d('0x3e')],_0x21f940)[_0x369d('0x38')](function(_0x29d397){return db[_0x369d('0x37')]['find']({'where':{'id':_0x29d397[_0x369d('0x40')]}})['then'](function(_0x3d256c){_0x36f313=_0x3d256c;return db[_0x369d('0x41')][_0x369d('0x2c')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts','blockDuration'],'raw':!![]});})[_0x369d('0x38')](function(_0xfabbd9){if(!_0x36f313||!_['isEqual'](_0x36f313[_0x369d('0x42')],_0x29d397[_0x369d('0x43')])){return _0xd06ed0[_0x369d('0x2e')](0x191)['json']({'message':_0x369d('0x44')});}if(_0x36f313['disabled']){return _0xd06ed0[_0x369d('0x2e')](0x191)[_0x369d('0x30')]({'message':_0x369d('0x45')});}if(_0x36f313[_0x369d('0x46')]){if(_0xfabbd9['blockDuration']>0x0){if(moment(_0x36f313[_0x369d('0x47')])['add'](_0xfabbd9[_0x369d('0x48')],_0x369d('0x49'))>moment()){return _0xd06ed0[_0x369d('0x2e')](0x191)[_0x369d('0x30')]({'message':_0x369d('0x45')});}}else{return _0xd06ed0[_0x369d('0x2e')](0x191)[_0x369d('0x30')]({'message':_0x369d('0x45')});}}_0x403850[_0x369d('0x2a')]={'id':_0x36f313['id']};_0x4ec486();});})[_0x369d('0x3b')](function(){return _0xd06ed0['status'](0x191)[_0x369d('0x30')]({'message':_0x369d('0x45')});});}catch(_0x1832d3){_0x4ec486(_0x1832d3);}}else if(_0x2fb739){_0x4ec486();}else{return _0xd06ed0['status'](0x193)['json']({'message':'Unknown\x20authorization\x20format'});}})[_0x369d('0x32')](function(_0x327271,_0x25c8c8,_0x401606){if(_0x327271[_0x369d('0x2a')]){db[_0x369d('0x37')]['find']({'where':{'id':_0x327271['user']['id']},'attributes':userAttributes})[_0x369d('0x38')](function(_0x54ca20){if(!_0x54ca20){return _0x25c8c8[_0x369d('0x2e')](0x194)['json']({'message':_0x369d('0x4a')});}_0x327271[_0x369d('0x2a')]=_0x54ca20;_0x401606();})['catch'](function(_0x2d9d97){_0x401606(_0x2d9d97);});}else if(_0x2fb739){_0x401606();}else{return _0x25c8c8['status'](0x194)['json']({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x369d('0x4b')]=function canUpdate(){return compose()[_0x369d('0x32')](function(_0x49ba66,_0x133157,_0x4f9d0c){return licenseUtil['getLicense']()['then'](function(_0x5cc2a9){if(_0x5cc2a9['update']){_0x4f9d0c();}else{return _0x133157[_0x369d('0x2e')](0x193)['json']({'message':_0x369d('0x4c')});}})[_0x369d('0x3b')](function(_0x4d6436){_0x4f9d0c(_0x4d6436);});});};exports[_0x369d('0x4d')]=function(_0x4500b6,_0x580e4e,_0x3c3103){_0x4500b6[_0x369d('0x4d')]=!![];return _0x3c3103();};exports['signToken']=function signToken(_0x17696a){return signJwt(_0x17696a);};exports[_0x369d('0x4e')]=function(_0x22bc40,_0x3df8d1){if(!_0x22bc40[_0x369d('0x2a')]){return _0x3df8d1[_0x369d('0x2e')](0x194)[_0x369d('0x30')]({'message':_0x369d('0x4f')});}var _0x4622dc={'payload':{'id':_0x22bc40[_0x369d('0x2a')]['id'],'role':_0x22bc40['user']['role']},'options':{'expiresIn':0x15180}};return signJwt(_0x4622dc)['then'](function(_0x454e31){_0x3df8d1[_0x369d('0x50')](_0x369d('0x51'),_0x454e31);_0x3df8d1['redirect']('/dashboards/general');})[_0x369d('0x3b')](function(_0x536dab){return _0x3df8d1['status'](0x1f4)['send'](_0x536dab);});};exports[_0x369d('0x52')]=function(_0xce3c53){if(_[_0x369d('0x53')](_0xce3c53[_0x369d('0x42')])||_['isNil'](_0xce3c53[_0x369d('0x54')])){return null;}else{return createJwt(_0xce3c53);}};exports[_0x369d('0x55')]=function(_0x1a3224){_0x1a3224['apiKeyNonce']=generateNonce();_0x1a3224[_0x369d('0x54')]=generateIssuedAt();return createJwt(_0x1a3224);};exports['regenerateApiKey']=function(_0x26cca5,_0x3f444c){var _0x2fc011=_0x26cca5[_0x369d('0x3d')]['apikey'];if(_0x2fc011){var _0x46b34e={'nonce':_0x3f444c[_0x369d('0x42')],'iat':_0x3f444c[_0x369d('0x54')],'audience':hardwareConf[_0x369d('0x3f')](),'issuer':hardwareConf[_0x369d('0x3f')]()};return verifyJwt(_0x2fc011,_0x46b34e)[_0x369d('0x38')](function(){return generateApiKey(_0x3f444c);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x369d('0x56')]=function(_0x11751f){var _0x1ef391=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x1ef391['test'](_0x11751f))throw new db[(_0x369d('0x57'))][(_0x369d('0x58'))](_0x369d('0x59'));return;};exports['validatePasswordHistory']=function(_0x3ea94c,_0x4bfcc7,_0x22981c){var _0x320c29=encryptor[_0x369d('0x5a')](_0x4bfcc7)[_0x369d('0x5b')](',');for(var _0x420eba=0x0;_0x420eba<_0x22981c;_0x420eba++){if(!_0x320c29[_0x420eba])break;if(_0x3ea94c[_0x369d('0x5c')]()===_0x320c29[_0x420eba][_0x369d('0x5c')]()){var _0x12ebb4=util[_0x369d('0x5d')](_0x369d('0x5e'),_0x22981c);if(_0x22981c===0x1){_0x12ebb4='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0x369d('0x57'))][(_0x369d('0x58'))](_0x12ebb4);}}return;};exports[_0x369d('0x5f')]=function(_0x330954,_0x8d0006){var _0x144007=_0x8d0006?encryptor[_0x369d('0x5a')](_0x8d0006)[_0x369d('0x5b')](','):[];if(_0x144007[_0x369d('0x60')]===0x5){_0x144007[_0x369d('0x61')](-0x1,0x1);}_0x144007[_0x369d('0x62')](_0x330954);return encryptor[_0x369d('0x63')](_0x144007[_0x369d('0x64')](','));};function signJwt(_0x4ce74d){var _0x21682a=BPromise[_0x369d('0x65')](jwt[_0x369d('0x66')],{'context':jwt});var _0x1675f9=_0x4ce74d[_0x369d('0x67')]||config[_0x369d('0xa')][_0x369d('0xb')];return new BPromise(function(_0x492dd0,_0x1711c6){_0x21682a(_0x4ce74d[_0x369d('0x68')],_0x1675f9,_0x4ce74d['options'])[_0x369d('0x38')](function(_0x35544e){_0x492dd0(_0x35544e);})[_0x369d('0x3b')](function(_0xda75a3){_0x1711c6(_0xda75a3);});});}function verifyJwt(_0x162519,_0x33523e,_0x294f3c){var _0x4508c0=BPromise[_0x369d('0x65')](jwt[_0x369d('0x69')],{'context':jwt});var _0x2be415=_0x294f3c||config[_0x369d('0xa')]['session'];return new BPromise(function(_0x15dfdd,_0x52db2a){_0x4508c0(_0x162519,_0x2be415,_0x33523e)[_0x369d('0x38')](function(_0x140b05){_0x15dfdd(_0x140b05);})[_0x369d('0x3b')](function(_0x3a2da1){_0x52db2a(_0x3a2da1);});});}function generateNonce(){return crypto['randomBytes'](0x10)[_0x369d('0x6a')](_0x369d('0x6b'));}function generateIssuedAt(){return Math[_0x369d('0x6c')](Date[_0x369d('0x6d')]()/0x3e8)[_0x369d('0x6a')]();}function createJwt(_0x3f9966){var _0x2cf712={'payload':{'iat':_0x3f9966[_0x369d('0x54')],'nonce':_0x3f9966[_0x369d('0x42')]},'options':{'algorithm':'HS512','subject':_0x3f9966['id'][_0x369d('0x6a')](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0x369d('0x3f')]()}};return signJwt(_0x2cf712)[_0x369d('0x38')](function(_0x59544d){return{'iat':_0x3f9966[_0x369d('0x54')],'nonce':_0x3f9966[_0x369d('0x42')],'token':_0x59544d};});}
\ No newline at end of file
+var _0x0e7d=['HS512','../../mysqldb','../../config/environment','../../config/license/hardware','../../config/license/util','lodash','jsonwebtoken','express-jwt','crypto','bluebird','moment','secrets','session','fullname','name','internal','userpic','permissions','mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastLoginAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isAuthenticated','use','user','ChatInteraction','findOne','closed','status','disposition','unmanaged','json','Unmanaged.','Forbidden.','headers','startsWith','authorization','find','then','authenticate','pass','Wrong\x20credentials.','catch','Bearer','Unknown\x20authorization\x20format','query','apikey','User','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blocked','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','getLicense','Forbidden','isMiddleware','setTokenCookie','role','cookie','motion.token','redirect','send','retrieveApiKey','isNil','apiKeyNonce','apiKeyIat','generateApiKey','regenerateApiKey','getUuid','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','ValidationError','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.','Sequelize','decryptString','splice','unshift','join','payload','options','promisify','verify','randomBytes','toString','hex','floor','now'];(function(_0x5230ed,_0x2eb03e){var _0x43bb42=function(_0x407331){while(--_0x407331){_0x5230ed['push'](_0x5230ed['shift']());}};_0x43bb42(++_0x2eb03e);}(_0x0e7d,0x1ed));var _0xd0e7=function(_0x4c440b,_0x3ea627){_0x4c440b=_0x4c440b-0x0;var _0x2d48cf=_0x0e7d[_0x4c440b];return _0x2d48cf;};'use strict';var db=require(_0xd0e7('0x0'))['db'];var config=require(_0xd0e7('0x1'));var hardwareConf=require(_0xd0e7('0x2'));var licenseUtil=require(_0xd0e7('0x3'));var encryptor=require('../encryptor');var _=require(_0xd0e7('0x4'));var jwt=require(_0xd0e7('0x5'));var expressJwt=require(_0xd0e7('0x6'));var compose=require('composable-middleware');var basicAuth=require('basic-auth');var crypto=require(_0xd0e7('0x7'));var BPromise=require(_0xd0e7('0x8'));var util=require('util');var moment=require(_0xd0e7('0x9'));var validateJwt=expressJwt({'secret':config[_0xd0e7('0xa')][_0xd0e7('0xb')]});var userAttributes=['id','role',_0xd0e7('0xc'),_0xd0e7('0xd'),_0xd0e7('0xe'),'email',_0xd0e7('0xf'),_0xd0e7('0x10'),'md5secret','voicePause','chatPause',_0xd0e7('0x11'),_0xd0e7('0x12'),_0xd0e7('0x13'),_0xd0e7('0x14'),_0xd0e7('0x15'),_0xd0e7('0x16'),_0xd0e7('0x17'),'lastPauseAt',_0xd0e7('0x18'),_0xd0e7('0x19'),_0xd0e7('0x1a'),_0xd0e7('0x1b'),'phoneBarAutoAnswer',_0xd0e7('0x1c'),_0xd0e7('0x1d'),_0xd0e7('0x1e'),_0xd0e7('0x1f'),'phoneBarEnableSettings',_0xd0e7('0x20'),_0xd0e7('0x21'),_0xd0e7('0x22'),_0xd0e7('0x23'),_0xd0e7('0x24'),'interface',_0xd0e7('0x25'),_0xd0e7('0x26'),_0xd0e7('0x27'),_0xd0e7('0x28'),_0xd0e7('0x29'),_0xd0e7('0x2a'),_0xd0e7('0x2b')];exports['isChatInteractionAuthorized']=function(){return this[_0xd0e7('0x2c')](!![])[_0xd0e7('0x2d')](function(_0x15fdc8,_0x405c5e,_0x5240f2){if(_0x15fdc8[_0xd0e7('0x2e')]){_0x5240f2();}else{return db[_0xd0e7('0x2f')][_0xd0e7('0x30')]({'where':{'id':_0x15fdc8['params']['id']},'attributes':['id','closed','disposition'],'raw':!![]})['then'](function(_0x5e01fc){if(_0x5e01fc&&_0x5e01fc[_0xd0e7('0x31')]){return _0x405c5e[_0xd0e7('0x32')](_0x5e01fc[_0xd0e7('0x33')]===_0xd0e7('0x34')?0x195:0x193)[_0xd0e7('0x35')]({'message':_0x5e01fc['disposition']===_0xd0e7('0x34')?_0xd0e7('0x36'):_0xd0e7('0x37')});}else{_0x5240f2();}})['catch'](function(_0x5e07dc){_0x5240f2(_0x5e07dc);});}});};exports[_0xd0e7('0x2c')]=function isAuthenticated(_0xcca8){return compose()[_0xd0e7('0x2d')](function(_0x42c0ff,_0x5d0a77,_0x486630){var _0x5d7257;if(_0x42c0ff[_0xd0e7('0x38')]['authorization']){if(_[_0xd0e7('0x39')](_0x42c0ff['headers'][_0xd0e7('0x3a')],'Basic')){var _0x200b76=basicAuth(_0x42c0ff);db['User'][_0xd0e7('0x3b')]({'where':{'name':_0x200b76[_0xd0e7('0xd')]}})[_0xd0e7('0x3c')](function(_0xf7a1fd){if(!_0xf7a1fd||!_0xf7a1fd[_0xd0e7('0x3d')](_0x200b76[_0xd0e7('0x3e')])){return _0x5d0a77['status'](0x191)[_0xd0e7('0x35')]({'message':_0xd0e7('0x3f')});}_0x42c0ff[_0xd0e7('0x2e')]={'id':_0xf7a1fd['id']};_0x486630();})[_0xd0e7('0x40')](function(_0x5f0adb){_0x486630(_0x5f0adb);});}else if(_[_0xd0e7('0x39')](_0x42c0ff[_0xd0e7('0x38')]['authorization'],_0xd0e7('0x41'))){validateJwt(_0x42c0ff,_0x5d0a77,_0x486630);}else{if(_0xcca8){_0x486630();}else{return _0x5d0a77[_0xd0e7('0x32')](0x193)[_0xd0e7('0x35')]({'message':_0xd0e7('0x42')});}}}else if(_0x42c0ff[_0xd0e7('0x43')]['apikey']){try{var _0x1719fe={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x42c0ff[_0xd0e7('0x43')][_0xd0e7('0x44')],_0x1719fe)[_0xd0e7('0x3c')](function(_0x573076){return db[_0xd0e7('0x45')][_0xd0e7('0x3b')]({'where':{'id':_0x573076[_0xd0e7('0x46')]}})[_0xd0e7('0x3c')](function(_0xbf5fff){_0x5d7257=_0xbf5fff;return db[_0xd0e7('0x47')][_0xd0e7('0x30')]({'where':{'id':0x1},'attributes':[_0xd0e7('0x48'),_0xd0e7('0x49')],'raw':!![]});})[_0xd0e7('0x3c')](function(_0x60e919){if(!_0x5d7257||!_[_0xd0e7('0x4a')](_0x5d7257['apiKeyNonce'],_0x573076[_0xd0e7('0x4b')])){return _0x5d0a77[_0xd0e7('0x32')](0x191)[_0xd0e7('0x35')]({'message':_0xd0e7('0x4c')});}if(_0x5d7257[_0xd0e7('0x4d')]){return _0x5d0a77[_0xd0e7('0x32')](0x191)[_0xd0e7('0x35')]({'message':_0xd0e7('0x4e')});}if(_0x5d7257[_0xd0e7('0x4f')]){if(_0x60e919[_0xd0e7('0x49')]>0x0){if(moment(_0x5d7257['blockedAt'])['add'](_0x60e919['blockDuration'],_0xd0e7('0x50'))>moment()){return _0x5d0a77['status'](0x191)['json']({'message':_0xd0e7('0x4e')});}}else{return _0x5d0a77[_0xd0e7('0x32')](0x191)[_0xd0e7('0x35')]({'message':_0xd0e7('0x4e')});}}_0x42c0ff['user']={'id':_0x5d7257['id']};_0x486630();});})['catch'](function(){return _0x5d0a77[_0xd0e7('0x32')](0x191)[_0xd0e7('0x35')]({'message':_0xd0e7('0x4e')});});}catch(_0x2fd22a){_0x486630(_0x2fd22a);}}else if(_0xcca8){_0x486630();}else{return _0x5d0a77[_0xd0e7('0x32')](0x193)['json']({'message':_0xd0e7('0x42')});}})[_0xd0e7('0x2d')](function(_0x1125b8,_0x2c7185,_0x222032){if(_0x1125b8[_0xd0e7('0x2e')]){db[_0xd0e7('0x45')][_0xd0e7('0x3b')]({'where':{'id':_0x1125b8[_0xd0e7('0x2e')]['id']},'attributes':userAttributes})['then'](function(_0x706581){if(!_0x706581){return _0x2c7185[_0xd0e7('0x32')](0x194)['json']({'message':_0xd0e7('0x51')});}_0x1125b8[_0xd0e7('0x2e')]=_0x706581;_0x222032();})['catch'](function(_0x2bdeb7){_0x222032(_0x2bdeb7);});}else if(_0xcca8){_0x222032();}else{return _0x2c7185[_0xd0e7('0x32')](0x194)[_0xd0e7('0x35')]({'message':_0xd0e7('0x52')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0xd0e7('0x2d')](function(_0x4c1f40,_0x49e86e,_0x3fbc72){return licenseUtil[_0xd0e7('0x53')]()[_0xd0e7('0x3c')](function(_0x50d6ce){if(_0x50d6ce['update']){_0x3fbc72();}else{return _0x49e86e[_0xd0e7('0x32')](0x193)[_0xd0e7('0x35')]({'message':_0xd0e7('0x54')});}})[_0xd0e7('0x40')](function(_0x11b186){_0x3fbc72(_0x11b186);});});};exports[_0xd0e7('0x55')]=function(_0x2b2aed,_0x3dc1ff,_0x3cea50){_0x2b2aed['isMiddleware']=!![];return _0x3cea50();};exports['signToken']=function signToken(_0x2bec1c){return signJwt(_0x2bec1c);};exports[_0xd0e7('0x56')]=function(_0x161396,_0x10932c){if(!_0x161396[_0xd0e7('0x2e')]){return _0x10932c[_0xd0e7('0x32')](0x194)[_0xd0e7('0x35')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x1701e7={'payload':{'id':_0x161396[_0xd0e7('0x2e')]['id'],'role':_0x161396['user'][_0xd0e7('0x57')]},'options':{'expiresIn':0x15180}};return signJwt(_0x1701e7)[_0xd0e7('0x3c')](function(_0x5e9d92){_0x10932c[_0xd0e7('0x58')](_0xd0e7('0x59'),_0x5e9d92);_0x10932c[_0xd0e7('0x5a')]('/dashboards/general');})[_0xd0e7('0x40')](function(_0x6fdd05){return _0x10932c[_0xd0e7('0x32')](0x1f4)[_0xd0e7('0x5b')](_0x6fdd05);});};exports[_0xd0e7('0x5c')]=function(_0xcc23f){if(_[_0xd0e7('0x5d')](_0xcc23f[_0xd0e7('0x5e')])||_[_0xd0e7('0x5d')](_0xcc23f[_0xd0e7('0x5f')])){return null;}else{return createJwt(_0xcc23f);}};exports[_0xd0e7('0x60')]=function(_0x5bdea1){_0x5bdea1[_0xd0e7('0x5e')]=generateNonce();_0x5bdea1['apiKeyIat']=generateIssuedAt();return createJwt(_0x5bdea1);};exports[_0xd0e7('0x61')]=function(_0x16ee85,_0x411169){var _0x17306b=_0x16ee85[_0xd0e7('0x43')][_0xd0e7('0x44')];if(_0x17306b){var _0x390641={'nonce':_0x411169[_0xd0e7('0x5e')],'iat':_0x411169['apiKeyIat'],'audience':hardwareConf[_0xd0e7('0x62')](),'issuer':hardwareConf[_0xd0e7('0x62')]()};return verifyJwt(_0x17306b,_0x390641)[_0xd0e7('0x3c')](function(){return generateApiKey(_0x411169);});}else{throw{'message':_0xd0e7('0x63')};}};exports[_0xd0e7('0x64')]=function(_0x14493b){var _0xcda55b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0xcda55b[_0xd0e7('0x65')](_0x14493b))throw new db['Sequelize'][(_0xd0e7('0x66'))]('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(_0x3e9fd4,_0x541ce8,_0x311655){var _0x301c2a=encryptor['decryptString'](_0x541ce8)[_0xd0e7('0x67')](',');for(var _0x5722fc=0x0;_0x5722fc<_0x311655;_0x5722fc++){if(!_0x301c2a[_0x5722fc])break;if(_0x3e9fd4[_0xd0e7('0x68')]()===_0x301c2a[_0x5722fc]['toLowerCase']()){var _0x1e2427=util[_0xd0e7('0x69')](_0xd0e7('0x6a'),_0x311655);if(_0x311655===0x1){_0x1e2427=_0xd0e7('0x6b');}throw new db[(_0xd0e7('0x6c'))][(_0xd0e7('0x66'))](_0x1e2427);}}return;};exports['updatePasswordsHistory']=function(_0x489aab,_0x3a7319){var _0x14cdc1=_0x3a7319?encryptor[_0xd0e7('0x6d')](_0x3a7319)[_0xd0e7('0x67')](','):[];if(_0x14cdc1['length']===0x5){_0x14cdc1[_0xd0e7('0x6e')](-0x1,0x1);}_0x14cdc1[_0xd0e7('0x6f')](_0x489aab);return encryptor['encryptString'](_0x14cdc1[_0xd0e7('0x70')](','));};function signJwt(_0x2415b6){var _0x15145f=BPromise['promisify'](jwt['sign'],{'context':jwt});var _0x490c20=_0x2415b6['secret']||config[_0xd0e7('0xa')][_0xd0e7('0xb')];return new BPromise(function(_0x240cb3,_0x3c6dc1){_0x15145f(_0x2415b6[_0xd0e7('0x71')],_0x490c20,_0x2415b6[_0xd0e7('0x72')])[_0xd0e7('0x3c')](function(_0x23cadd){_0x240cb3(_0x23cadd);})[_0xd0e7('0x40')](function(_0x5e5354){_0x3c6dc1(_0x5e5354);});});}function verifyJwt(_0x17abcf,_0x919e4,_0x1d32b3){var _0x4e5f4e=BPromise[_0xd0e7('0x73')](jwt[_0xd0e7('0x74')],{'context':jwt});var _0x44c44f=_0x1d32b3||config[_0xd0e7('0xa')]['session'];return new BPromise(function(_0x532cbe,_0x5497ec){_0x4e5f4e(_0x17abcf,_0x44c44f,_0x919e4)['then'](function(_0x5be659){_0x532cbe(_0x5be659);})[_0xd0e7('0x40')](function(_0x2c7e6f){_0x5497ec(_0x2c7e6f);});});}function generateNonce(){return crypto[_0xd0e7('0x75')](0x10)[_0xd0e7('0x76')](_0xd0e7('0x77'));}function generateIssuedAt(){return Math[_0xd0e7('0x78')](Date[_0xd0e7('0x79')]()/0x3e8)[_0xd0e7('0x76')]();}function createJwt(_0x276873){var _0x2fc83b={'payload':{'iat':_0x276873['apiKeyIat'],'nonce':_0x276873[_0xd0e7('0x5e')]},'options':{'algorithm':_0xd0e7('0x7a'),'subject':_0x276873['id'][_0xd0e7('0x76')](),'issuer':hardwareConf[_0xd0e7('0x62')](),'audience':hardwareConf[_0xd0e7('0x62')]()}};return signJwt(_0x2fc83b)[_0xd0e7('0x3c')](function(_0x288705){return{'iat':_0x276873['apiKeyIat'],'nonce':_0x276873[_0xd0e7('0x5e')],'token':_0x288705};});}
\ No newline at end of file