Built motion from commit 497d3d92.|2.5.43
[motion2.git] / server / components / auth / service.js
index 3e2f813..20caac6 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x9380=['ChatInteraction','findOne','disposition','status','unmanaged','Unmanaged.','Forbidden.','catch','use','headers','authorization','startsWith','Basic','User','then','authenticate','Wrong\x20credentials.','Bearer','json','Unknown\x20authorization\x20format','apikey','getUuid','find','sub','Setting','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','add','minutes','Invalid\x20API\x20access\x20key','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isWebrtcLicence','webrtc','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','role','cookie','redirect','/dashboards/general','isNil','apiKeyIat','generateApiKey','regenerateApiKey','query','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','ValidationError','decryptString','length','splice','join','promisify','sign','payload','options','verify','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/license/util','../encryptor','lodash','jsonwebtoken','basic-auth','crypto','bluebird','util','moment','secrets','session','fullname','name','internal','email','userpic','permissions','md5secret','voicePause','openchannelPause','showWebBar','lastLoginAt','crudPermissions','allowmessenger','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','isChatInteractionAuthorized','isAuthenticated','user'];(function(_0x5cc02d,_0x17316b){var _0x14b33d=function(_0x3ed59b){while(--_0x3ed59b){_0x5cc02d['push'](_0x5cc02d['shift']());}};_0x14b33d(++_0x17316b);}(_0x9380,0x14a));var _0x0938=function(_0x1203f,_0x554bbc){_0x1203f=_0x1203f-0x0;var _0x365f0a=_0x9380[_0x1203f];return _0x365f0a;};'use strict';var db=require(_0x0938('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x0938('0x1'));var encryptor=require(_0x0938('0x2'));var _=require(_0x0938('0x3'));var jwt=require(_0x0938('0x4'));var expressJwt=require('express-jwt');var compose=require('composable-middleware');var basicAuth=require(_0x0938('0x5'));var crypto=require(_0x0938('0x6'));var BPromise=require(_0x0938('0x7'));var util=require(_0x0938('0x8'));var moment=require(_0x0938('0x9'));var validateJwt=expressJwt({'secret':config[_0x0938('0xa')][_0x0938('0xb')]});var userAttributes=['id','role',_0x0938('0xc'),_0x0938('0xd'),_0x0938('0xe'),_0x0938('0xf'),_0x0938('0x10'),_0x0938('0x11'),_0x0938('0x12'),_0x0938('0x13'),'chatPause','mailPause','faxPause','smsPause',_0x0938('0x14'),'pauseType',_0x0938('0x15'),_0x0938('0x16'),'lastPauseAt',_0x0938('0x17'),_0x0938('0x18'),'passwordResetAt',_0x0938('0x19'),_0x0938('0x1a'),_0x0938('0x1b'),_0x0938('0x1c'),_0x0938('0x1d'),_0x0938('0x1e'),'phoneBarEnableSettings',_0x0938('0x1f'),_0x0938('0x20'),_0x0938('0x21'),'phoneBarRemoteControlPort','hotdesk',_0x0938('0x22'),_0x0938('0x23'),_0x0938('0x24'),_0x0938('0x25'),_0x0938('0x26'),_0x0938('0x27'),_0x0938('0x28'),'downloadAttachments',_0x0938('0x29'),'selectRecallMeCampaign'];exports[_0x0938('0x2a')]=function(){return this[_0x0938('0x2b')](!![])['use'](function(_0x83ed5b,_0x36d735,_0x53f285){if(_0x83ed5b[_0x0938('0x2c')]){_0x53f285();}else{return db[_0x0938('0x2d')][_0x0938('0x2e')]({'where':{'id':_0x83ed5b['params']['id']},'attributes':['id','closed',_0x0938('0x2f')],'raw':!![]})['then'](function(_0x29cd18){if(_0x29cd18&&_0x29cd18['closed']){return _0x36d735[_0x0938('0x30')](_0x29cd18['disposition']===_0x0938('0x31')?0x195:0x193)['json']({'message':_0x29cd18[_0x0938('0x2f')]===_0x0938('0x31')?_0x0938('0x32'):_0x0938('0x33')});}else{_0x53f285();}})[_0x0938('0x34')](function(_0x363a8f){_0x53f285(_0x363a8f);});}});};exports['isAuthenticated']=function isAuthenticated(_0x55fc81){return compose()[_0x0938('0x35')](function(_0x1e4570,_0x13f7ad,_0x351ff3){var _0x32084a;if(_0x1e4570[_0x0938('0x36')][_0x0938('0x37')]){if(_[_0x0938('0x38')](_0x1e4570['headers'][_0x0938('0x37')],_0x0938('0x39'))){var _0x4c4ebd=basicAuth(_0x1e4570);db[_0x0938('0x3a')]['find']({'where':{'name':_0x4c4ebd[_0x0938('0xd')]}})[_0x0938('0x3b')](function(_0x2d9333){if(!_0x2d9333||!_0x2d9333[_0x0938('0x3c')](_0x4c4ebd['pass'])){return _0x13f7ad['status'](0x191)['json']({'message':_0x0938('0x3d')});}_0x1e4570[_0x0938('0x2c')]={'id':_0x2d9333['id']};_0x351ff3();})['catch'](function(_0x5c399f){_0x351ff3(_0x5c399f);});}else if(_[_0x0938('0x38')](_0x1e4570['headers'][_0x0938('0x37')],_0x0938('0x3e'))){validateJwt(_0x1e4570,_0x13f7ad,_0x351ff3);}else{if(_0x55fc81){_0x351ff3();}else{return _0x13f7ad['status'](0x193)[_0x0938('0x3f')]({'message':_0x0938('0x40')});}}}else if(_0x1e4570['query'][_0x0938('0x41')]){try{var _0x56e1b0={'audience':hardwareConf[_0x0938('0x42')](),'issuer':hardwareConf[_0x0938('0x42')]()};verifyJwt(_0x1e4570['query']['apikey'],_0x56e1b0)['then'](function(_0x386e3c){return db[_0x0938('0x3a')][_0x0938('0x43')]({'where':{'id':_0x386e3c[_0x0938('0x44')]}})['then'](function(_0x338f2c){_0x32084a=_0x338f2c;return db[_0x0938('0x45')][_0x0938('0x2e')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x0938('0x46')],'raw':!![]});})[_0x0938('0x3b')](function(_0x51b815){if(!_0x32084a||!_[_0x0938('0x47')](_0x32084a[_0x0938('0x48')],_0x386e3c[_0x0938('0x49')])){return _0x13f7ad[_0x0938('0x30')](0x191)[_0x0938('0x3f')]({'message':_0x0938('0x4a')});}if(_0x32084a[_0x0938('0x4b')]){return _0x13f7ad[_0x0938('0x30')](0x191)[_0x0938('0x3f')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x32084a[_0x0938('0x4c')]){if(_0x51b815[_0x0938('0x46')]>0x0){if(moment(_0x32084a['blockedAt'])[_0x0938('0x4d')](_0x51b815[_0x0938('0x46')],_0x0938('0x4e'))>moment()){return _0x13f7ad[_0x0938('0x30')](0x191)[_0x0938('0x3f')]({'message':_0x0938('0x4f')});}}else{return _0x13f7ad[_0x0938('0x30')](0x191)['json']({'message':_0x0938('0x4f')});}}_0x1e4570[_0x0938('0x2c')]={'id':_0x32084a['id']};_0x351ff3();});})[_0x0938('0x34')](function(){return _0x13f7ad[_0x0938('0x30')](0x191)[_0x0938('0x3f')]({'message':_0x0938('0x4f')});});}catch(_0x139022){_0x351ff3(_0x139022);}}else if(_0x55fc81){_0x351ff3();}else{return _0x13f7ad[_0x0938('0x30')](0x193)[_0x0938('0x3f')]({'message':'Unknown\x20authorization\x20format'});}})[_0x0938('0x35')](function(_0x78e0f0,_0xc9b790,_0x370144){if(_0x78e0f0['user']){db[_0x0938('0x3a')][_0x0938('0x43')]({'where':{'id':_0x78e0f0[_0x0938('0x2c')]['id']},'attributes':userAttributes})[_0x0938('0x3b')](function(_0x270b15){if(!_0x270b15){return _0xc9b790[_0x0938('0x30')](0x194)[_0x0938('0x3f')]({'message':_0x0938('0x50')});}_0x78e0f0[_0x0938('0x2c')]=_0x270b15;_0x370144();})[_0x0938('0x34')](function(_0x3d9c06){_0x370144(_0x3d9c06);});}else if(_0x55fc81){_0x370144();}else{return _0xc9b790[_0x0938('0x30')](0x194)[_0x0938('0x3f')]({'message':_0x0938('0x51')});}});};exports[_0x0938('0x52')]=function canUpdate(){return compose()['use'](function(_0x5a5e3e,_0x4fad0e,_0x105d79){return licenseUtil[_0x0938('0x53')]()[_0x0938('0x3b')](function(_0x2439fc){if(_0x2439fc[_0x0938('0x54')]){_0x105d79();}else{return _0x4fad0e['status'](0x193)[_0x0938('0x3f')]({'message':_0x0938('0x55')});}})['catch'](function(_0x31cebd){_0x105d79(_0x31cebd);});});};exports[_0x0938('0x56')]=function isWebrtcLicence(){return compose()[_0x0938('0x35')](function(_0x50138e,_0x2bb176,_0x2789c6){return licenseUtil[_0x0938('0x53')]()[_0x0938('0x3b')](function(_0x4f8a92){if(_0x4f8a92[_0x0938('0x57')]){_0x2789c6();}else{return _0x2bb176[_0x0938('0x30')](0x193)[_0x0938('0x3f')]({'message':_0x0938('0x55')});}})[_0x0938('0x34')](function(_0x3f4cde){_0x2789c6(_0x3f4cde);});});};exports['isMiddleware']=function(_0x584de0,_0x1bfe75,_0x57c2f8){_0x584de0['isMiddleware']=!![];return _0x57c2f8();};exports['signToken']=function signToken(_0x37d126){return signJwt(_0x37d126);};exports['setTokenCookie']=function(_0x4aa11a,_0x123228){if(!_0x4aa11a[_0x0938('0x2c')]){return _0x123228[_0x0938('0x30')](0x194)[_0x0938('0x3f')]({'message':_0x0938('0x58')});}var _0x132de7={'payload':{'id':_0x4aa11a[_0x0938('0x2c')]['id'],'role':_0x4aa11a[_0x0938('0x2c')][_0x0938('0x59')]},'options':{'expiresIn':0x15180}};return signJwt(_0x132de7)[_0x0938('0x3b')](function(_0x1eacca){_0x123228[_0x0938('0x5a')]('motion.token',_0x1eacca);_0x123228[_0x0938('0x5b')](_0x0938('0x5c'));})[_0x0938('0x34')](function(_0x523300){return _0x123228[_0x0938('0x30')](0x1f4)['send'](_0x523300);});};exports['retrieveApiKey']=function(_0x3af777){if(_[_0x0938('0x5d')](_0x3af777[_0x0938('0x48')])||_['isNil'](_0x3af777[_0x0938('0x5e')])){return null;}else{return createJwt(_0x3af777);}};exports[_0x0938('0x5f')]=function(_0x4c7f48){_0x4c7f48['apiKeyNonce']=generateNonce();_0x4c7f48[_0x0938('0x5e')]=generateIssuedAt();return createJwt(_0x4c7f48);};exports[_0x0938('0x60')]=function(_0x5a19df,_0xf5ea39){var _0x151c4d=_0x5a19df[_0x0938('0x61')][_0x0938('0x41')];if(_0x151c4d){var _0x2da5e3={'nonce':_0xf5ea39[_0x0938('0x48')],'iat':_0xf5ea39['apiKeyIat'],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf['getUuid']()};return verifyJwt(_0x151c4d,_0x2da5e3)[_0x0938('0x3b')](function(){return generateApiKey(_0xf5ea39);});}else{throw{'message':_0x0938('0x62')};}};exports[_0x0938('0x63')]=function(_0x55b10d){var _0x3e0e2d=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3e0e2d[_0x0938('0x64')](_0x55b10d))throw new db[(_0x0938('0x65'))]['ValidationError'](_0x0938('0x66'));return;};exports[_0x0938('0x67')]=function(_0xc28df7,_0x3457c4,_0x5c3e18){var _0x176ab9=encryptor['decryptString'](_0x3457c4)[_0x0938('0x68')](',');for(var _0x4fb5f7=0x0;_0x4fb5f7<_0x5c3e18;_0x4fb5f7++){if(!_0x176ab9[_0x4fb5f7])break;if(_0xc28df7[_0x0938('0x69')]()===_0x176ab9[_0x4fb5f7][_0x0938('0x69')]()){var _0x3748d7=util[_0x0938('0x6a')](_0x0938('0x6b'),_0x5c3e18);if(_0x5c3e18===0x1){_0x3748d7=_0x0938('0x6c');}throw new db[(_0x0938('0x65'))][(_0x0938('0x6d'))](_0x3748d7);}}return;};exports['updatePasswordsHistory']=function(_0x23b21d,_0x110678){var _0x3a026e=_0x110678?encryptor[_0x0938('0x6e')](_0x110678)[_0x0938('0x68')](','):[];if(_0x3a026e[_0x0938('0x6f')]===0x5){_0x3a026e[_0x0938('0x70')](-0x1,0x1);}_0x3a026e['unshift'](_0x23b21d);return encryptor['encryptString'](_0x3a026e[_0x0938('0x71')](','));};function signJwt(_0x1d41da){var _0x1483d1=BPromise[_0x0938('0x72')](jwt[_0x0938('0x73')],{'context':jwt});var _0x1c66ec=_0x1d41da['secret']||config['secrets'][_0x0938('0xb')];return new BPromise(function(_0x92281d,_0x55031f){_0x1483d1(_0x1d41da[_0x0938('0x74')],_0x1c66ec,_0x1d41da[_0x0938('0x75')])[_0x0938('0x3b')](function(_0x319a4d){_0x92281d(_0x319a4d);})[_0x0938('0x34')](function(_0x392dea){_0x55031f(_0x392dea);});});}function verifyJwt(_0x295f9e,_0x3a1cc7,_0x2294ac){var _0xece011=BPromise[_0x0938('0x72')](jwt[_0x0938('0x76')],{'context':jwt});var _0x5bf2d8=_0x2294ac||config[_0x0938('0xa')][_0x0938('0xb')];return new BPromise(function(_0x5e9dba,_0x3e5dd3){_0xece011(_0x295f9e,_0x5bf2d8,_0x3a1cc7)[_0x0938('0x3b')](function(_0x59fe8f){_0x5e9dba(_0x59fe8f);})['catch'](function(_0x54a665){_0x3e5dd3(_0x54a665);});});}function generateNonce(){return crypto[_0x0938('0x77')](0x10)[_0x0938('0x78')](_0x0938('0x79'));}function generateIssuedAt(){return Math[_0x0938('0x7a')](Date[_0x0938('0x7b')]()/0x3e8)[_0x0938('0x78')]();}function createJwt(_0x1f7c10){var _0x1aa17c={'payload':{'iat':_0x1f7c10['apiKeyIat'],'nonce':_0x1f7c10[_0x0938('0x48')]},'options':{'algorithm':_0x0938('0x7c'),'subject':_0x1f7c10['id'][_0x0938('0x78')](),'issuer':hardwareConf[_0x0938('0x42')](),'audience':hardwareConf[_0x0938('0x42')]()}};return signJwt(_0x1aa17c)[_0x0938('0x3b')](function(_0x57eda4){return{'iat':_0x1f7c10['apiKeyIat'],'nonce':_0x1f7c10[_0x0938('0x48')],'token':_0x57eda4};});}
\ No newline at end of file
+var _0xa9e5=['encryptString','join','secret','payload','options','randomBytes','toString','hex','HS512','../../mysqldb','../../config/environment','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','secrets','session','role','name','internal','email','userpic','md5secret','chatPause','mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','lastLoginAt','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','disposition','then','status','unmanaged','Unmanaged.','Forbidden.','catch','headers','startsWith','authorization','Basic','User','find','authenticate','pass','json','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','Invalid\x20API\x20access\x20key','blockedAt','add','minutes','User\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isWebrtcLicence','isMiddleware','signToken','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','retrieveApiKey','isNil','generateApiKey','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','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','length','splice','unshift'];(function(_0x175e89,_0x20835f){var _0x2ed996=function(_0x56239f){while(--_0x56239f){_0x175e89['push'](_0x175e89['shift']());}};_0x2ed996(++_0x20835f);}(_0xa9e5,0x8a));var _0x5a9e=function(_0x596ef5,_0x32d6c4){_0x596ef5=_0x596ef5-0x0;var _0x404a54=_0xa9e5[_0x596ef5];return _0x404a54;};'use strict';var db=require(_0x5a9e('0x0'))['db'];var config=require(_0x5a9e('0x1'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x5a9e('0x2'));var encryptor=require(_0x5a9e('0x3'));var _=require(_0x5a9e('0x4'));var jwt=require(_0x5a9e('0x5'));var expressJwt=require(_0x5a9e('0x6'));var compose=require(_0x5a9e('0x7'));var basicAuth=require(_0x5a9e('0x8'));var crypto=require(_0x5a9e('0x9'));var BPromise=require(_0x5a9e('0xa'));var util=require(_0x5a9e('0xb'));var moment=require(_0x5a9e('0xc'));var validateJwt=expressJwt({'secret':config[_0x5a9e('0xd')][_0x5a9e('0xe')]});var userAttributes=['id',_0x5a9e('0xf'),'fullname',_0x5a9e('0x10'),_0x5a9e('0x11'),_0x5a9e('0x12'),_0x5a9e('0x13'),'permissions',_0x5a9e('0x14'),'voicePause',_0x5a9e('0x15'),_0x5a9e('0x16'),_0x5a9e('0x17'),_0x5a9e('0x18'),_0x5a9e('0x19'),_0x5a9e('0x1a'),_0x5a9e('0x1b'),_0x5a9e('0x1c'),'lastPauseAt','crudPermissions',_0x5a9e('0x1d'),_0x5a9e('0x1e'),_0x5a9e('0x1f'),_0x5a9e('0x20'),'phoneBarAutoAnswerDelay',_0x5a9e('0x21'),'phoneBarEnableRecording',_0x5a9e('0x22'),_0x5a9e('0x23'),'phoneBarExpires',_0x5a9e('0x24'),_0x5a9e('0x25'),_0x5a9e('0x26'),_0x5a9e('0x27'),_0x5a9e('0x28'),_0x5a9e('0x29'),_0x5a9e('0x2a'),_0x5a9e('0x2b'),'wssPort','downloadVoiceRecordings',_0x5a9e('0x2c'),_0x5a9e('0x2d'),_0x5a9e('0x2e'),'selectRecallMeCampaign'];exports[_0x5a9e('0x2f')]=function(){return this[_0x5a9e('0x30')](!![])[_0x5a9e('0x31')](function(_0x46df02,_0x17e435,_0x5473bb){if(_0x46df02[_0x5a9e('0x32')]){_0x5473bb();}else{return db[_0x5a9e('0x33')][_0x5a9e('0x34')]({'where':{'id':_0x46df02[_0x5a9e('0x35')]['id']},'attributes':['id','closed',_0x5a9e('0x36')],'raw':!![]})[_0x5a9e('0x37')](function(_0x1c7676){if(_0x1c7676&&_0x1c7676['closed']){return _0x17e435[_0x5a9e('0x38')](_0x1c7676[_0x5a9e('0x36')]===_0x5a9e('0x39')?0x195:0x193)['json']({'message':_0x1c7676['disposition']===_0x5a9e('0x39')?_0x5a9e('0x3a'):_0x5a9e('0x3b')});}else{_0x5473bb();}})[_0x5a9e('0x3c')](function(_0x207d7c){_0x5473bb(_0x207d7c);});}});};exports[_0x5a9e('0x30')]=function isAuthenticated(_0x4f5c58){return compose()[_0x5a9e('0x31')](function(_0x1d3807,_0x4b1253,_0x58337f){var _0x9fbd79;if(_0x1d3807[_0x5a9e('0x3d')]['authorization']){if(_[_0x5a9e('0x3e')](_0x1d3807[_0x5a9e('0x3d')][_0x5a9e('0x3f')],_0x5a9e('0x40'))){var _0x3163ae=basicAuth(_0x1d3807);db[_0x5a9e('0x41')][_0x5a9e('0x42')]({'where':{'name':_0x3163ae[_0x5a9e('0x10')]}})[_0x5a9e('0x37')](function(_0x4e3e9e){if(!_0x4e3e9e||!_0x4e3e9e[_0x5a9e('0x43')](_0x3163ae[_0x5a9e('0x44')])){return _0x4b1253[_0x5a9e('0x38')](0x191)[_0x5a9e('0x45')]({'message':_0x5a9e('0x46')});}_0x1d3807[_0x5a9e('0x32')]={'id':_0x4e3e9e['id']};_0x58337f();})[_0x5a9e('0x3c')](function(_0x531f33){_0x58337f(_0x531f33);});}else if(_[_0x5a9e('0x3e')](_0x1d3807[_0x5a9e('0x3d')]['authorization'],_0x5a9e('0x47'))){validateJwt(_0x1d3807,_0x4b1253,_0x58337f);}else{if(_0x4f5c58){_0x58337f();}else{return _0x4b1253['status'](0x193)[_0x5a9e('0x45')]({'message':_0x5a9e('0x48')});}}}else if(_0x1d3807[_0x5a9e('0x49')][_0x5a9e('0x4a')]){try{var _0x458691={'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x5a9e('0x4b')]()};verifyJwt(_0x1d3807[_0x5a9e('0x49')][_0x5a9e('0x4a')],_0x458691)[_0x5a9e('0x37')](function(_0x57de30){return db[_0x5a9e('0x41')][_0x5a9e('0x42')]({'where':{'id':_0x57de30[_0x5a9e('0x4c')]}})[_0x5a9e('0x37')](function(_0x2e7833){_0x9fbd79=_0x2e7833;return db[_0x5a9e('0x4d')][_0x5a9e('0x34')]({'where':{'id':0x1},'attributes':[_0x5a9e('0x4e'),_0x5a9e('0x4f')],'raw':!![]});})[_0x5a9e('0x37')](function(_0x1c6e7a){if(!_0x9fbd79||!_[_0x5a9e('0x50')](_0x9fbd79[_0x5a9e('0x51')],_0x57de30[_0x5a9e('0x52')])){return _0x4b1253[_0x5a9e('0x38')](0x191)['json']({'message':_0x5a9e('0x53')});}if(_0x9fbd79[_0x5a9e('0x54')]){return _0x4b1253[_0x5a9e('0x38')](0x191)[_0x5a9e('0x45')]({'message':_0x5a9e('0x55')});}if(_0x9fbd79['blocked']){if(_0x1c6e7a['blockDuration']>0x0){if(moment(_0x9fbd79[_0x5a9e('0x56')])[_0x5a9e('0x57')](_0x1c6e7a['blockDuration'],_0x5a9e('0x58'))>moment()){return _0x4b1253[_0x5a9e('0x38')](0x191)[_0x5a9e('0x45')]({'message':_0x5a9e('0x55')});}}else{return _0x4b1253[_0x5a9e('0x38')](0x191)[_0x5a9e('0x45')]({'message':_0x5a9e('0x55')});}}_0x1d3807[_0x5a9e('0x32')]={'id':_0x9fbd79['id']};_0x58337f();});})[_0x5a9e('0x3c')](function(){return _0x4b1253[_0x5a9e('0x38')](0x191)['json']({'message':_0x5a9e('0x55')});});}catch(_0x14ec4f){_0x58337f(_0x14ec4f);}}else if(_0x4f5c58){_0x58337f();}else{return _0x4b1253[_0x5a9e('0x38')](0x193)[_0x5a9e('0x45')]({'message':_0x5a9e('0x48')});}})[_0x5a9e('0x31')](function(_0x54fd02,_0x5c8e31,_0x4c3a59){if(_0x54fd02[_0x5a9e('0x32')]){db[_0x5a9e('0x41')][_0x5a9e('0x42')]({'where':{'id':_0x54fd02[_0x5a9e('0x32')]['id']},'attributes':userAttributes})['then'](function(_0x254878){if(!_0x254878){return _0x5c8e31[_0x5a9e('0x38')](0x194)[_0x5a9e('0x45')]({'message':_0x5a9e('0x59')});}_0x54fd02['user']=_0x254878;_0x4c3a59();})[_0x5a9e('0x3c')](function(_0x891d79){_0x4c3a59(_0x891d79);});}else if(_0x4f5c58){_0x4c3a59();}else{return _0x5c8e31[_0x5a9e('0x38')](0x194)['json']({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x5a9e('0x5a')]=function canUpdate(){return compose()[_0x5a9e('0x31')](function(_0x14170a,_0x20a808,_0x318e8f){return licenseUtil[_0x5a9e('0x5b')]()[_0x5a9e('0x37')](function(_0x52b8d7){if(_0x52b8d7[_0x5a9e('0x5c')]){_0x318e8f();}else{return _0x20a808[_0x5a9e('0x38')](0x193)[_0x5a9e('0x45')]({'message':_0x5a9e('0x5d')});}})['catch'](function(_0x380dd8){_0x318e8f(_0x380dd8);});});};exports[_0x5a9e('0x5e')]=function isWebrtcLicence(){return compose()[_0x5a9e('0x31')](function(_0x23a026,_0x5ea30b,_0x314431){return licenseUtil['getLicense']()[_0x5a9e('0x37')](function(_0x5019ba){if(_0x5019ba['webrtc']){_0x314431();}else{return _0x5ea30b[_0x5a9e('0x38')](0x193)[_0x5a9e('0x45')]({'message':_0x5a9e('0x5d')});}})['catch'](function(_0x9c63f){_0x314431(_0x9c63f);});});};exports[_0x5a9e('0x5f')]=function(_0x403883,_0x450271,_0x559869){_0x403883[_0x5a9e('0x5f')]=!![];return _0x559869();};exports[_0x5a9e('0x60')]=function signToken(_0x989764){return signJwt(_0x989764);};exports['setTokenCookie']=function(_0xcc2a0,_0x473b31){if(!_0xcc2a0[_0x5a9e('0x32')]){return _0x473b31['status'](0x194)[_0x5a9e('0x45')]({'message':_0x5a9e('0x61')});}var _0x268f4a={'payload':{'id':_0xcc2a0['user']['id'],'role':_0xcc2a0[_0x5a9e('0x32')][_0x5a9e('0xf')]},'options':{'expiresIn':0x15180}};return signJwt(_0x268f4a)['then'](function(_0x29e9be){_0x473b31['cookie']('motion.token',_0x29e9be);_0x473b31['redirect']('/dashboards/general');})[_0x5a9e('0x3c')](function(_0xa95c14){return _0x473b31[_0x5a9e('0x38')](0x1f4)['send'](_0xa95c14);});};exports[_0x5a9e('0x62')]=function(_0x493e8a){if(_['isNil'](_0x493e8a[_0x5a9e('0x51')])||_[_0x5a9e('0x63')](_0x493e8a['apiKeyIat'])){return null;}else{return createJwt(_0x493e8a);}};exports[_0x5a9e('0x64')]=function(_0x129015){_0x129015[_0x5a9e('0x51')]=generateNonce();_0x129015[_0x5a9e('0x65')]=generateIssuedAt();return createJwt(_0x129015);};exports[_0x5a9e('0x66')]=function(_0x83f42a,_0x3078eb){var _0x55ef59=_0x83f42a['query']['apikey'];if(_0x55ef59){var _0x2bbf97={'nonce':_0x3078eb['apiKeyNonce'],'iat':_0x3078eb[_0x5a9e('0x65')],'audience':hardwareConf[_0x5a9e('0x4b')](),'issuer':hardwareConf[_0x5a9e('0x4b')]()};return verifyJwt(_0x55ef59,_0x2bbf97)[_0x5a9e('0x37')](function(){return generateApiKey(_0x3078eb);});}else{throw{'message':_0x5a9e('0x67')};}};exports[_0x5a9e('0x68')]=function(_0xfa6cc5){var _0x3a33c2=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3a33c2[_0x5a9e('0x69')](_0xfa6cc5))throw new db[(_0x5a9e('0x6a'))][(_0x5a9e('0x6b'))](_0x5a9e('0x6c'));return;};exports[_0x5a9e('0x6d')]=function(_0x5327a8,_0x327b19,_0x8e9d29){var _0x85c841=encryptor[_0x5a9e('0x6e')](_0x327b19)[_0x5a9e('0x6f')](',');for(var _0x339786=0x0;_0x339786<_0x8e9d29;_0x339786++){if(!_0x85c841[_0x339786])break;if(_0x5327a8[_0x5a9e('0x70')]()===_0x85c841[_0x339786]['toLowerCase']()){var _0x4d16ba=util[_0x5a9e('0x71')](_0x5a9e('0x72'),_0x8e9d29);if(_0x8e9d29===0x1){_0x4d16ba=_0x5a9e('0x73');}throw new db[(_0x5a9e('0x6a'))]['ValidationError'](_0x4d16ba);}}return;};exports[_0x5a9e('0x74')]=function(_0x1683cd,_0x33435a){var _0x43cbd7=_0x33435a?encryptor[_0x5a9e('0x6e')](_0x33435a)['split'](','):[];if(_0x43cbd7[_0x5a9e('0x75')]===0x5){_0x43cbd7[_0x5a9e('0x76')](-0x1,0x1);}_0x43cbd7[_0x5a9e('0x77')](_0x1683cd);return encryptor[_0x5a9e('0x78')](_0x43cbd7[_0x5a9e('0x79')](','));};function signJwt(_0x3290be){var _0x18cc3b=BPromise['promisify'](jwt['sign'],{'context':jwt});var _0x35c343=_0x3290be[_0x5a9e('0x7a')]||config['secrets']['session'];return new BPromise(function(_0x2abdac,_0x3ea903){_0x18cc3b(_0x3290be[_0x5a9e('0x7b')],_0x35c343,_0x3290be[_0x5a9e('0x7c')])['then'](function(_0x1233e0){_0x2abdac(_0x1233e0);})[_0x5a9e('0x3c')](function(_0x36967f){_0x3ea903(_0x36967f);});});}function verifyJwt(_0x4cab03,_0x121677,_0x76195c){var _0x52230d=BPromise['promisify'](jwt['verify'],{'context':jwt});var _0x511ac9=_0x76195c||config[_0x5a9e('0xd')][_0x5a9e('0xe')];return new BPromise(function(_0x302b81,_0x131c2c){_0x52230d(_0x4cab03,_0x511ac9,_0x121677)[_0x5a9e('0x37')](function(_0x126013){_0x302b81(_0x126013);})[_0x5a9e('0x3c')](function(_0x11bed6){_0x131c2c(_0x11bed6);});});}function generateNonce(){return crypto[_0x5a9e('0x7d')](0x10)[_0x5a9e('0x7e')](_0x5a9e('0x7f'));}function generateIssuedAt(){return Math['floor'](Date['now']()/0x3e8)[_0x5a9e('0x7e')]();}function createJwt(_0x256309){var _0x1c66c9={'payload':{'iat':_0x256309[_0x5a9e('0x65')],'nonce':_0x256309[_0x5a9e('0x51')]},'options':{'algorithm':_0x5a9e('0x80'),'subject':_0x256309['id'][_0x5a9e('0x7e')](),'issuer':hardwareConf[_0x5a9e('0x4b')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x1c66c9)[_0x5a9e('0x37')](function(_0x5295dd){return{'iat':_0x256309[_0x5a9e('0x65')],'nonce':_0x256309[_0x5a9e('0x51')],'token':_0x5295dd};});}
\ No newline at end of file