Built motion from commit (unavailable).|2.4.4
[motion2.git] / server / components / auth / service.js
index 71ce167..b2cba79 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x8bf4=['apikey','verify','query','getUuid','sub','isEqual','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','catch','Unrecognized\x20API\x20access\x20key','isAuthenticated','../../config/license/util','update','Forbidden','canUpdate','sign','userRoles','indexOf','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','pick','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','randomBytes','now','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','HS512','toString','../../mysqldb','../../config/environment','../../config/license/hardware','lodash','jsonwebtoken','composable-middleware','basic-auth','crypto','ipaddr.js','secrets','session','role','fullname','internal','email','userpic','permissions','voicePause','mailPause','faxPause','smsPause','openchannelPause','pauseType','showWebBar','phoneBarRemoteControlPort','phoneBarRemoteControl','interface','userProfileId','isChatInteractionAuthorized','use','user','params','closed','disposition','then','status','unmanaged','json','Unmanaged.','Forbidden.','headers','authorization','startsWith','Basic','User','find','name','authenticate','pass','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format'];(function(_0x530c6b,_0x5e4932){var _0x4a071e=function(_0x18ecb4){while(--_0x18ecb4){_0x530c6b['push'](_0x530c6b['shift']());}};_0x4a071e(++_0x5e4932);}(_0x8bf4,0x12c));var _0x48bf=function(_0x26d678,_0x273258){_0x26d678=_0x26d678-0x0;var _0x4ad538=_0x8bf4[_0x26d678];return _0x4ad538;};'use strict';var db=require(_0x48bf('0x0'))['db'];var config=require(_0x48bf('0x1'));var hardwareConf=require(_0x48bf('0x2'));var _=require(_0x48bf('0x3'));var jwt=require(_0x48bf('0x4'));var expressJwt=require('express-jwt');var compose=require(_0x48bf('0x5'));var basicAuth=require(_0x48bf('0x6'));var crypto=require(_0x48bf('0x7'));var ipaddr=require(_0x48bf('0x8'));var validateJwt=expressJwt({'secret':config[_0x48bf('0x9')][_0x48bf('0xa')]});var userAttributes=['id',_0x48bf('0xb'),_0x48bf('0xc'),'name',_0x48bf('0xd'),_0x48bf('0xe'),_0x48bf('0xf'),_0x48bf('0x10'),_0x48bf('0x11'),'chatPause',_0x48bf('0x12'),_0x48bf('0x13'),_0x48bf('0x14'),_0x48bf('0x15'),_0x48bf('0x16'),_0x48bf('0x17'),_0x48bf('0x18'),_0x48bf('0x19'),_0x48bf('0x1a'),_0x48bf('0x1b')];exports[_0x48bf('0x1c')]=function(){return isAuthenticated(!![])[_0x48bf('0x1d')](function(_0x5d1ac0,_0x2d4716,_0x51042f){if(_0x5d1ac0[_0x48bf('0x1e')]){_0x51042f();}else{return db['ChatInteraction']['findOne']({'where':{'id':_0x5d1ac0[_0x48bf('0x1f')]['id']},'attributes':['id',_0x48bf('0x20'),_0x48bf('0x21')],'raw':!![]})[_0x48bf('0x22')](function(_0x1b7be1){if(_0x1b7be1&&_0x1b7be1[_0x48bf('0x20')]){return _0x2d4716[_0x48bf('0x23')](_0x1b7be1[_0x48bf('0x21')]===_0x48bf('0x24')?0x195:0x193)[_0x48bf('0x25')]({'message':_0x1b7be1[_0x48bf('0x21')]===_0x48bf('0x24')?_0x48bf('0x26'):_0x48bf('0x27')});}else{_0x51042f();}})['catch'](function(_0x54e80b){_0x51042f(_0x54e80b);});}});};function isAuthenticated(_0x414851){return compose()['use'](function(_0x217a4d,_0x426da7,_0x2a3ba8){if(_0x217a4d[_0x48bf('0x28')][_0x48bf('0x29')]){if(_[_0x48bf('0x2a')](_0x217a4d[_0x48bf('0x28')][_0x48bf('0x29')],_0x48bf('0x2b'))){var _0x47366b=basicAuth(_0x217a4d);db[_0x48bf('0x2c')][_0x48bf('0x2d')]({'where':{'name':_0x47366b[_0x48bf('0x2e')]}})[_0x48bf('0x22')](function(_0x5c8e2a){if(!_0x5c8e2a||!_0x5c8e2a[_0x48bf('0x2f')](_0x47366b[_0x48bf('0x30')])){return _0x426da7['status'](0x191)[_0x48bf('0x25')]({'message':_0x48bf('0x31')});}_0x217a4d[_0x48bf('0x1e')]={'id':_0x5c8e2a['id']};_0x2a3ba8();})['catch'](function(_0x4e1b40){_0x2a3ba8(_0x4e1b40);});}else if(_[_0x48bf('0x2a')](_0x217a4d[_0x48bf('0x28')]['authorization'],_0x48bf('0x32'))){validateJwt(_0x217a4d,_0x426da7,_0x2a3ba8);}else{if(_0x414851){_0x2a3ba8();}else{return _0x426da7[_0x48bf('0x23')](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x33')});}}}else if(_0x217a4d['query'][_0x48bf('0x34')]){try{var _0x1ae637=jwt[_0x48bf('0x35')](_0x217a4d[_0x48bf('0x36')][_0x48bf('0x34')],config['secrets'][_0x48bf('0xa')],{'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x48bf('0x37')]()});db[_0x48bf('0x2c')][_0x48bf('0x2d')]({'where':{'id':_0x1ae637[_0x48bf('0x38')]}})[_0x48bf('0x22')](function(_0x5f05c2){if(!_0x5f05c2||!_[_0x48bf('0x39')](_0x5f05c2[_0x48bf('0x3a')],_0x1ae637[_0x48bf('0x3b')])){return _0x426da7[_0x48bf('0x23')](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x3c')});}_0x217a4d[_0x48bf('0x1e')]={'id':_0x5f05c2['id']};_0x2a3ba8();})[_0x48bf('0x3d')](function(_0x2a13bf){_0x2a3ba8(_0x2a13bf);});}catch(_0x898c5e){console['log'](_0x898c5e);return _0x426da7[_0x48bf('0x23')](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x3e')});}}else if(_0x414851){_0x2a3ba8();}else{return _0x426da7['status'](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x33')});}})['use'](function(_0x33d035,_0x3d8bec,_0x11cb21){if(_0x33d035[_0x48bf('0x1e')]){db['User'][_0x48bf('0x2d')]({'where':{'id':_0x33d035[_0x48bf('0x1e')]['id']},'attributes':userAttributes})[_0x48bf('0x22')](function(_0x181429){if(!_0x181429){return _0x3d8bec[_0x48bf('0x23')](0x194)['json']({'message':'User\x20not\x20found.'});}_0x33d035[_0x48bf('0x1e')]=_0x181429;_0x11cb21();})[_0x48bf('0x3d')](function(_0x193c87){_0x11cb21(_0x193c87);});}else if(_0x414851){_0x11cb21();}else{return _0x3d8bec[_0x48bf('0x23')](0x194)[_0x48bf('0x25')]({'message':'User\x20object\x20not\x20found.'});}});}exports[_0x48bf('0x3f')]=isAuthenticated;function canUpdate(){return compose()['use'](function(_0x429254,_0x1182e3,_0xee352a){return require(_0x48bf('0x40'))['getLicense']()['then'](function(_0x4bf17e){if(_0x4bf17e[_0x48bf('0x41')]){_0xee352a();}else{return _0x1182e3['status'](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x42')});}})['catch'](function(_0x3c8880){_0xee352a(_0x3c8880);});});}exports[_0x48bf('0x43')]=canUpdate;function signToken(_0x4812cb,_0x3ba692){return jwt[_0x48bf('0x44')]({'id':_0x4812cb,'role':_0x3ba692},config['secrets'][_0x48bf('0xa')],{'expiresIn':0x15180});}exports['signToken']=signToken;exports['hasRole']=function(_0x370133){if(!_0x370133){throw new Error('Required\x20role\x20needs\x20to\x20be\x20set');}return compose()['use'](isAuthenticated())[_0x48bf('0x1d')](function meetsRequirements(_0x179497,_0x483359,_0x531e74){if(config[_0x48bf('0x45')][_0x48bf('0x46')](_0x179497[_0x48bf('0x1e')][_0x48bf('0xb')])>=config[_0x48bf('0x45')][_0x48bf('0x46')](_0x370133)){return _0x531e74();}else{return _0x483359[_0x48bf('0x23')](0x193)[_0x48bf('0x25')]({'message':_0x48bf('0x42')});}});};exports[_0x48bf('0x47')]=function(_0x40ce8b,_0x29d656,_0x4449ba){_0x40ce8b[_0x48bf('0x47')]=!![];return _0x4449ba();};exports[_0x48bf('0x48')]=function(_0x28542c,_0x547274){if(!_0x28542c[_0x48bf('0x1e')]){return _0x547274[_0x48bf('0x23')](0x194)['json']({'message':_0x48bf('0x49')});}var _0x583a05=signToken(_0x28542c[_0x48bf('0x1e')]['id'],_0x28542c[_0x48bf('0x1e')][_0x48bf('0xb')]);_0x547274[_0x48bf('0x4a')](_0x48bf('0x4b'),_0x583a05);_0x547274[_0x48bf('0x4a')]('motion.user',JSON['stringify'](_[_0x48bf('0x4c')](_0x28542c[_0x48bf('0x1e')],userAttributes)));_0x547274[_0x48bf('0x4d')](_0x48bf('0x4e'));};exports[_0x48bf('0x4f')]=function(_0x282454){if(_[_0x48bf('0x50')](_0x282454[_0x48bf('0x3a')])||_['isNil'](_0x282454[_0x48bf('0x51')]))return null;else return createJwt(_0x282454);};exports[_0x48bf('0x52')]=function(_0x3ac419){_0x3ac419[_0x48bf('0x3a')]=crypto[_0x48bf('0x53')](0x10)['toString']('hex');_0x3ac419[_0x48bf('0x51')]=Math['floor'](Date[_0x48bf('0x54')]()/0x3e8)['toString']();return createJwt(_0x3ac419);};exports['regenerateApiKey']=function(_0x24aede,_0x3e85df){if(_0x24aede[_0x48bf('0x36')][_0x48bf('0x34')]){jwt[_0x48bf('0x35')](_0x24aede[_0x48bf('0x36')]['apikey'],config[_0x48bf('0x9')][_0x48bf('0xa')],{'nonce':_0x3e85df['apiKeyNonce'],'iat':_0x3e85df[_0x48bf('0x51')],'audience':hardwareConf[_0x48bf('0x37')](),'issuer':hardwareConf['getUuid']()});return generateApiKey(_0x3e85df);}else{throw{'message':_0x48bf('0x55')};}};function createJwt(_0x18d510){return jwt[_0x48bf('0x44')]({'iat':_0x18d510['apiKeyIat'],'nonce':_0x18d510[_0x48bf('0x3a')]},config[_0x48bf('0x9')][_0x48bf('0xa')],{'algorithm':_0x48bf('0x56'),'subject':_0x18d510['id'][_0x48bf('0x57')](),'issuer':hardwareConf[_0x48bf('0x37')](),'audience':hardwareConf[_0x48bf('0x37')]()});}
\ No newline at end of file
+var _0x6507=['Unrecognized\x20API\x20access\x20key','User','isAuthenticated','../../config/license/util','getLicense','update','Forbidden','canUpdate','sign','signToken','hasRole','userRoles','indexOf','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','motion.user','stringify','pick','/dashboards/general','retrieveApiKey','isNil','randomBytes','toString','hex','apiKeyIat','floor','verify','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','../../config/environment','../../config/license/hardware','lodash','express-jwt','basic-auth','ipaddr.js','secrets','role','fullname','name','internal','permissions','voicePause','chatPause','mailPause','faxPause','openchannelPause','phoneBarRemoteControl','interface','userProfileId','use','user','findOne','params','then','disposition','unmanaged','json','Forbidden.','catch','headers','authorization','startsWith','authenticate','status','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','query','apikey','session','getUuid','find','sub','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore'];(function(_0x8de54f,_0x271987){var _0x14cba4=function(_0x58ed41){while(--_0x58ed41){_0x8de54f['push'](_0x8de54f['shift']());}};_0x14cba4(++_0x271987);}(_0x6507,0x1f3));var _0x7650=function(_0x4ecf18,_0xd6f0fc){_0x4ecf18=_0x4ecf18-0x0;var _0x51a86f=_0x6507[_0x4ecf18];return _0x51a86f;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0x7650('0x0'));var hardwareConf=require(_0x7650('0x1'));var _=require(_0x7650('0x2'));var jwt=require('jsonwebtoken');var expressJwt=require(_0x7650('0x3'));var compose=require('composable-middleware');var basicAuth=require(_0x7650('0x4'));var crypto=require('crypto');var ipaddr=require(_0x7650('0x5'));var validateJwt=expressJwt({'secret':config[_0x7650('0x6')]['session']});var userAttributes=['id',_0x7650('0x7'),_0x7650('0x8'),_0x7650('0x9'),_0x7650('0xa'),'email','userpic',_0x7650('0xb'),_0x7650('0xc'),_0x7650('0xd'),_0x7650('0xe'),_0x7650('0xf'),'smsPause',_0x7650('0x10'),'pauseType','showWebBar','phoneBarRemoteControlPort',_0x7650('0x11'),_0x7650('0x12'),_0x7650('0x13')];exports['isChatInteractionAuthorized']=function(){return isAuthenticated(!![])[_0x7650('0x14')](function(_0x5eaad3,_0x43e62d,_0x4b4f9d){if(_0x5eaad3[_0x7650('0x15')]){_0x4b4f9d();}else{return db['ChatInteraction'][_0x7650('0x16')]({'where':{'id':_0x5eaad3[_0x7650('0x17')]['id']},'attributes':['id','closed','disposition'],'raw':!![]})[_0x7650('0x18')](function(_0x2f98df){if(_0x2f98df&&_0x2f98df['closed']){return _0x43e62d['status'](_0x2f98df[_0x7650('0x19')]===_0x7650('0x1a')?0x195:0x193)[_0x7650('0x1b')]({'message':_0x2f98df[_0x7650('0x19')]===_0x7650('0x1a')?'Unmanaged.':_0x7650('0x1c')});}else{_0x4b4f9d();}})[_0x7650('0x1d')](function(_0x501906){_0x4b4f9d(_0x501906);});}});};function isAuthenticated(_0x597383){return compose()[_0x7650('0x14')](function(_0x2274f6,_0x4b452f,_0x2fd514){if(_0x2274f6[_0x7650('0x1e')][_0x7650('0x1f')]){if(_[_0x7650('0x20')](_0x2274f6[_0x7650('0x1e')]['authorization'],'Basic')){var _0x12f478=basicAuth(_0x2274f6);db['User']['find']({'where':{'name':_0x12f478[_0x7650('0x9')]}})['then'](function(_0x5d7af8){if(!_0x5d7af8||!_0x5d7af8[_0x7650('0x21')](_0x12f478['pass'])){return _0x4b452f[_0x7650('0x22')](0x191)[_0x7650('0x1b')]({'message':_0x7650('0x23')});}_0x2274f6[_0x7650('0x15')]={'id':_0x5d7af8['id']};_0x2fd514();})[_0x7650('0x1d')](function(_0x127895){_0x2fd514(_0x127895);});}else if(_[_0x7650('0x20')](_0x2274f6[_0x7650('0x1e')][_0x7650('0x1f')],_0x7650('0x24'))){validateJwt(_0x2274f6,_0x4b452f,_0x2fd514);}else{if(_0x597383){_0x2fd514();}else{return _0x4b452f[_0x7650('0x22')](0x193)['json']({'message':_0x7650('0x25')});}}}else if(_0x2274f6[_0x7650('0x26')]['apikey']){try{var _0x866fb0=jwt['verify'](_0x2274f6[_0x7650('0x26')][_0x7650('0x27')],config['secrets'][_0x7650('0x28')],{'audience':hardwareConf[_0x7650('0x29')](),'issuer':hardwareConf[_0x7650('0x29')]()});db['User'][_0x7650('0x2a')]({'where':{'id':_0x866fb0[_0x7650('0x2b')]}})[_0x7650('0x18')](function(_0x2b709f){if(!_0x2b709f||!_['isEqual'](_0x2b709f[_0x7650('0x2c')],_0x866fb0[_0x7650('0x2d')])){return _0x4b452f[_0x7650('0x22')](0x193)[_0x7650('0x1b')]({'message':_0x7650('0x2e')});}_0x2274f6[_0x7650('0x15')]={'id':_0x2b709f['id']};_0x2fd514();})[_0x7650('0x1d')](function(_0x53c620){_0x2fd514(_0x53c620);});}catch(_0x35a3da){console['log'](_0x35a3da);return _0x4b452f[_0x7650('0x22')](0x193)[_0x7650('0x1b')]({'message':_0x7650('0x2f')});}}else if(_0x597383){_0x2fd514();}else{return _0x4b452f[_0x7650('0x22')](0x193)[_0x7650('0x1b')]({'message':_0x7650('0x25')});}})[_0x7650('0x14')](function(_0x5d8df5,_0x18dbd9,_0x4d06e2){if(_0x5d8df5[_0x7650('0x15')]){db[_0x7650('0x30')]['find']({'where':{'id':_0x5d8df5[_0x7650('0x15')]['id']},'attributes':userAttributes})['then'](function(_0x59ae00){if(!_0x59ae00){return _0x18dbd9[_0x7650('0x22')](0x194)['json']({'message':'User\x20not\x20found.'});}_0x5d8df5[_0x7650('0x15')]=_0x59ae00;_0x4d06e2();})['catch'](function(_0x154550){_0x4d06e2(_0x154550);});}else if(_0x597383){_0x4d06e2();}else{return _0x18dbd9[_0x7650('0x22')](0x194)['json']({'message':'User\x20object\x20not\x20found.'});}});}exports[_0x7650('0x31')]=isAuthenticated;function canUpdate(){return compose()[_0x7650('0x14')](function(_0x57ef0f,_0xcbaa39,_0xc3c107){return require(_0x7650('0x32'))[_0x7650('0x33')]()[_0x7650('0x18')](function(_0x37bae6){if(_0x37bae6[_0x7650('0x34')]){_0xc3c107();}else{return _0xcbaa39['status'](0x193)[_0x7650('0x1b')]({'message':_0x7650('0x35')});}})[_0x7650('0x1d')](function(_0x8f4bb){_0xc3c107(_0x8f4bb);});});}exports[_0x7650('0x36')]=canUpdate;function signToken(_0x1d2290,_0x126141){return jwt[_0x7650('0x37')]({'id':_0x1d2290,'role':_0x126141},config['secrets']['session'],{'expiresIn':0x15180});}exports[_0x7650('0x38')]=signToken;exports[_0x7650('0x39')]=function(_0x1bf105){if(!_0x1bf105){throw new Error('Required\x20role\x20needs\x20to\x20be\x20set');}return compose()['use'](isAuthenticated())['use'](function meetsRequirements(_0x1145cb,_0x2e8d1d,_0x5ee489){if(config[_0x7650('0x3a')][_0x7650('0x3b')](_0x1145cb[_0x7650('0x15')]['role'])>=config[_0x7650('0x3a')][_0x7650('0x3b')](_0x1bf105)){return _0x5ee489();}else{return _0x2e8d1d[_0x7650('0x22')](0x193)[_0x7650('0x1b')]({'message':_0x7650('0x35')});}});};exports['isMiddleware']=function(_0x166e8e,_0x49fec9,_0x8a6c7d){_0x166e8e[_0x7650('0x3c')]=!![];return _0x8a6c7d();};exports[_0x7650('0x3d')]=function(_0x5a82e1,_0x4ee0aa){if(!_0x5a82e1[_0x7650('0x15')]){return _0x4ee0aa[_0x7650('0x22')](0x194)['json']({'message':_0x7650('0x3e')});}var _0x2a5e90=signToken(_0x5a82e1[_0x7650('0x15')]['id'],_0x5a82e1[_0x7650('0x15')][_0x7650('0x7')]);_0x4ee0aa[_0x7650('0x3f')](_0x7650('0x40'),_0x2a5e90);_0x4ee0aa[_0x7650('0x3f')](_0x7650('0x41'),JSON[_0x7650('0x42')](_[_0x7650('0x43')](_0x5a82e1[_0x7650('0x15')],userAttributes)));_0x4ee0aa['redirect'](_0x7650('0x44'));};exports[_0x7650('0x45')]=function(_0x5338e8){if(_['isNil'](_0x5338e8['apiKeyNonce'])||_[_0x7650('0x46')](_0x5338e8['apiKeyIat']))return null;else return createJwt(_0x5338e8);};exports['generateApiKey']=function(_0x116d3b){_0x116d3b[_0x7650('0x2c')]=crypto[_0x7650('0x47')](0x10)[_0x7650('0x48')](_0x7650('0x49'));_0x116d3b[_0x7650('0x4a')]=Math[_0x7650('0x4b')](Date['now']()/0x3e8)[_0x7650('0x48')]();return createJwt(_0x116d3b);};exports['regenerateApiKey']=function(_0x323ec5,_0xc110db){if(_0x323ec5[_0x7650('0x26')]['apikey']){jwt[_0x7650('0x4c')](_0x323ec5[_0x7650('0x26')][_0x7650('0x27')],config[_0x7650('0x6')][_0x7650('0x28')],{'nonce':_0xc110db[_0x7650('0x2c')],'iat':_0xc110db[_0x7650('0x4a')],'audience':hardwareConf[_0x7650('0x29')](),'issuer':hardwareConf['getUuid']()});return generateApiKey(_0xc110db);}else{throw{'message':_0x7650('0x4d')};}};function createJwt(_0x113a67){return jwt['sign']({'iat':_0x113a67['apiKeyIat'],'nonce':_0x113a67['apiKeyNonce']},config[_0x7650('0x6')]['session'],{'algorithm':'HS512','subject':_0x113a67['id'][_0x7650('0x48')](),'issuer':hardwareConf[_0x7650('0x29')](),'audience':hardwareConf[_0x7650('0x29')]()});}
\ No newline at end of file