Built motion from commit (unavailable).|2.3.94
[motion2.git] / server / components / auth / service.js
index 4ec4450..4809088 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xb0ca=['motion.token','cookie','motion.user','stringify','pick','/dashboards/general','retrieveApiKey','isNil','apiKeyNonce','apiKeyIat','generateApiKey','randomBytes','toString','hex','floor','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','HS512','../../mysqldb','../../config/environment','../../config/license/hardware','jsonwebtoken','express-jwt','composable-middleware','crypto','ipaddr.js','secrets','fullname','name','internal','permissions','chatPause','mailPause','faxPause','smsPause','pauseType','phoneBarRemoteControlPort','phoneBarRemoteControl','isChatInteractionAuthorized','use','ChatInteraction','findOne','params','closed','disposition','unmanaged','json','Unmanaged.','Forbidden.','catch','authorization','startsWith','headers','Basic','User','find','authenticate','status','Wrong\x20credentials.','Bearer','Unknown\x20authorization\x20format','query','apikey','verify','getUuid','isEqual','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','log','Unrecognized\x20API\x20access\x20key','user','then','User\x20not\x20found.','User\x20object\x20not\x20found.','../../config/license/util','getLicense','update','Forbidden','canUpdate','sign','session','signToken','hasRole','Required\x20role\x20needs\x20to\x20be\x20set','userRoles','indexOf','role','setTokenCookie'];(function(_0x7193e5,_0x5d398b){var _0x54b63c=function(_0x571e6d){while(--_0x571e6d){_0x7193e5['push'](_0x7193e5['shift']());}};_0x54b63c(++_0x5d398b);}(_0xb0ca,0xc0));var _0xab0c=function(_0x49f7e0,_0x15a064){_0x49f7e0=_0x49f7e0-0x0;var _0x556090=_0xb0ca[_0x49f7e0];return _0x556090;};'use strict';var db=require(_0xab0c('0x0'))['db'];var config=require(_0xab0c('0x1'));var hardwareConf=require(_0xab0c('0x2'));var _=require('lodash');var jwt=require(_0xab0c('0x3'));var expressJwt=require(_0xab0c('0x4'));var compose=require(_0xab0c('0x5'));var basicAuth=require('basic-auth');var crypto=require(_0xab0c('0x6'));var ipaddr=require(_0xab0c('0x7'));var validateJwt=expressJwt({'secret':config[_0xab0c('0x8')]['session']});var userAttributes=['id','role',_0xab0c('0x9'),_0xab0c('0xa'),_0xab0c('0xb'),'email','userpic',_0xab0c('0xc'),'voicePause',_0xab0c('0xd'),_0xab0c('0xe'),_0xab0c('0xf'),_0xab0c('0x10'),'openchannelPause',_0xab0c('0x11'),'showWebBar',_0xab0c('0x12'),_0xab0c('0x13'),'interface','userProfileId'];exports[_0xab0c('0x14')]=function(){return isAuthenticated(!![])[_0xab0c('0x15')](function(_0x300970,_0xb9438a,_0x950323){if(_0x300970['user']){_0x950323();}else{return db[_0xab0c('0x16')][_0xab0c('0x17')]({'where':{'id':_0x300970[_0xab0c('0x18')]['id']},'attributes':['id',_0xab0c('0x19'),_0xab0c('0x1a')],'raw':!![]})['then'](function(_0x1b034b){if(_0x1b034b&&_0x1b034b[_0xab0c('0x19')]){return _0xb9438a['status'](_0x1b034b[_0xab0c('0x1a')]===_0xab0c('0x1b')?0x195:0x193)[_0xab0c('0x1c')]({'message':_0x1b034b[_0xab0c('0x1a')]===_0xab0c('0x1b')?_0xab0c('0x1d'):_0xab0c('0x1e')});}else{_0x950323();}})[_0xab0c('0x1f')](function(_0x3cc615){_0x950323(_0x3cc615);});}});};function isAuthenticated(_0x2890ef){return compose()['use'](function(_0x2c02a4,_0x11d58a,_0x28c3f4){if(_0x2c02a4['headers'][_0xab0c('0x20')]){if(_[_0xab0c('0x21')](_0x2c02a4[_0xab0c('0x22')][_0xab0c('0x20')],_0xab0c('0x23'))){var _0x380123=basicAuth(_0x2c02a4);db[_0xab0c('0x24')][_0xab0c('0x25')]({'where':{'name':_0x380123[_0xab0c('0xa')]}})['then'](function(_0x511439){if(!_0x511439||!_0x511439[_0xab0c('0x26')](_0x380123['pass'])){return _0x11d58a[_0xab0c('0x27')](0x191)[_0xab0c('0x1c')]({'message':_0xab0c('0x28')});}_0x2c02a4['user']={'id':_0x511439['id']};_0x28c3f4();})['catch'](function(_0x4424be){_0x28c3f4(_0x4424be);});}else if(_[_0xab0c('0x21')](_0x2c02a4['headers'][_0xab0c('0x20')],_0xab0c('0x29'))){validateJwt(_0x2c02a4,_0x11d58a,_0x28c3f4);}else{if(_0x2890ef){_0x28c3f4();}else{return _0x11d58a['status'](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x2a')});}}}else if(_0x2c02a4[_0xab0c('0x2b')][_0xab0c('0x2c')]){try{var _0xcab183=jwt[_0xab0c('0x2d')](_0x2c02a4[_0xab0c('0x2b')]['apikey'],config[_0xab0c('0x8')]['session'],{'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0xab0c('0x2e')]()});db[_0xab0c('0x24')][_0xab0c('0x25')]({'where':{'id':_0xcab183['sub']}})['then'](function(_0x34b59e){if(!_0x34b59e||!_[_0xab0c('0x2f')](_0x34b59e['apiKeyNonce'],_0xcab183['nonce'])){return _0x11d58a[_0xab0c('0x27')](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x30')});}_0x2c02a4['user']={'id':_0x34b59e['id']};_0x28c3f4();})[_0xab0c('0x1f')](function(_0x62ebe8){_0x28c3f4(_0x62ebe8);});}catch(_0x369c01){console[_0xab0c('0x31')](_0x369c01);return _0x11d58a[_0xab0c('0x27')](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x32')});}}else if(_0x2890ef){_0x28c3f4();}else{return _0x11d58a[_0xab0c('0x27')](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x2a')});}})[_0xab0c('0x15')](function(_0x25f771,_0x56ccb9,_0x366769){if(_0x25f771[_0xab0c('0x33')]){db['User'][_0xab0c('0x25')]({'where':{'id':_0x25f771[_0xab0c('0x33')]['id']},'attributes':userAttributes})[_0xab0c('0x34')](function(_0xa02b83){if(!_0xa02b83){return _0x56ccb9[_0xab0c('0x27')](0x194)[_0xab0c('0x1c')]({'message':_0xab0c('0x35')});}_0x25f771['user']=_0xa02b83;_0x366769();})[_0xab0c('0x1f')](function(_0x3828fa){_0x366769(_0x3828fa);});}else if(_0x2890ef){_0x366769();}else{return _0x56ccb9[_0xab0c('0x27')](0x194)[_0xab0c('0x1c')]({'message':_0xab0c('0x36')});}});}exports['isAuthenticated']=isAuthenticated;function canUpdate(){return compose()[_0xab0c('0x15')](function(_0x4e97aa,_0x8d3130,_0x58aaad){return require(_0xab0c('0x37'))[_0xab0c('0x38')]()[_0xab0c('0x34')](function(_0x3e0851){if(_0x3e0851[_0xab0c('0x39')]){_0x58aaad();}else{return _0x8d3130[_0xab0c('0x27')](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x3a')});}})[_0xab0c('0x1f')](function(_0x1629dc){_0x58aaad(_0x1629dc);});});}exports[_0xab0c('0x3b')]=canUpdate;function signToken(_0x4fd1a5,_0x2ec21a){return jwt[_0xab0c('0x3c')]({'id':_0x4fd1a5,'role':_0x2ec21a},config[_0xab0c('0x8')][_0xab0c('0x3d')],{'expiresIn':0x15180});}exports[_0xab0c('0x3e')]=signToken;exports[_0xab0c('0x3f')]=function(_0x481f2d){if(!_0x481f2d){throw new Error(_0xab0c('0x40'));}return compose()['use'](isAuthenticated())['use'](function meetsRequirements(_0x28366b,_0x6959a5,_0x42cea1){if(config[_0xab0c('0x41')][_0xab0c('0x42')](_0x28366b['user'][_0xab0c('0x43')])>=config[_0xab0c('0x41')][_0xab0c('0x42')](_0x481f2d)){return _0x42cea1();}else{return _0x6959a5['status'](0x193)[_0xab0c('0x1c')]({'message':_0xab0c('0x3a')});}});};exports[_0xab0c('0x44')]=function(_0x1656eb,_0x1d7917){if(!_0x1656eb[_0xab0c('0x33')]){return _0x1d7917[_0xab0c('0x27')](0x194)[_0xab0c('0x1c')]({'message':'It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.'});}var _0x4c135e=signToken(_0x1656eb[_0xab0c('0x33')]['id'],_0x1656eb[_0xab0c('0x33')]['role']);_0x1d7917['cookie'](_0xab0c('0x45'),_0x4c135e);_0x1d7917[_0xab0c('0x46')](_0xab0c('0x47'),JSON[_0xab0c('0x48')](_[_0xab0c('0x49')](_0x1656eb[_0xab0c('0x33')],userAttributes)));_0x1d7917['redirect'](_0xab0c('0x4a'));};exports[_0xab0c('0x4b')]=function(_0xa89937){if(_[_0xab0c('0x4c')](_0xa89937[_0xab0c('0x4d')])||_[_0xab0c('0x4c')](_0xa89937[_0xab0c('0x4e')]))return null;else return createJwt(_0xa89937);};exports[_0xab0c('0x4f')]=function(_0x505805){_0x505805['apiKeyNonce']=crypto[_0xab0c('0x50')](0x10)[_0xab0c('0x51')](_0xab0c('0x52'));_0x505805[_0xab0c('0x4e')]=Math[_0xab0c('0x53')](Date['now']()/0x3e8)[_0xab0c('0x51')]();return createJwt(_0x505805);};exports[_0xab0c('0x54')]=function(_0x2b09a3,_0x37d524){if(_0x2b09a3[_0xab0c('0x2b')][_0xab0c('0x2c')]){jwt[_0xab0c('0x2d')](_0x2b09a3[_0xab0c('0x2b')][_0xab0c('0x2c')],config['secrets'][_0xab0c('0x3d')],{'nonce':_0x37d524[_0xab0c('0x4d')],'iat':_0x37d524[_0xab0c('0x4e')],'audience':hardwareConf[_0xab0c('0x2e')](),'issuer':hardwareConf['getUuid']()});return generateApiKey(_0x37d524);}else{throw{'message':_0xab0c('0x55')};}};function createJwt(_0x5172fd){return jwt[_0xab0c('0x3c')]({'iat':_0x5172fd[_0xab0c('0x4e')],'nonce':_0x5172fd[_0xab0c('0x4d')]},config[_0xab0c('0x8')][_0xab0c('0x3d')],{'algorithm':_0xab0c('0x56'),'subject':_0x5172fd['id']['toString'](),'issuer':hardwareConf['getUuid'](),'audience':hardwareConf[_0xab0c('0x2e')]()});}
\ No newline at end of file
+var _0x34ab=['It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.user','stringify','pick','redirect','/dashboards/general','retrieveApiKey','isNil','generateApiKey','randomBytes','toString','hex','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','sign','HS512','../../mysqldb','../../config/environment','lodash','jsonwebtoken','basic-auth','crypto','secrets','session','role','fullname','name','internal','userpic','permissions','voicePause','chatPause','mailPause','smsPause','openchannelPause','pauseType','showWebBar','phoneBarRemoteControlPort','phoneBarRemoteControl','interface','userProfileId','isChatInteractionAuthorized','use','user','ChatInteraction','findOne','params','closed','disposition','then','status','unmanaged','json','Unmanaged.','Forbidden.','catch','authorization','startsWith','headers','Basic','find','authenticate','pass','Wrong\x20credentials.','Unknown\x20authorization\x20format','apikey','verify','query','getUuid','User','sub','isEqual','apiKeyNonce','nonce','log','Unrecognized\x20API\x20access\x20key','User\x20object\x20not\x20found.','../../config/license/util','getLicense','update','Forbidden','canUpdate','signToken','hasRole','Required\x20role\x20needs\x20to\x20be\x20set','userRoles','indexOf','setTokenCookie'];(function(_0x4f4aae,_0x128fff){var _0x907cdc=function(_0x159161){while(--_0x159161){_0x4f4aae['push'](_0x4f4aae['shift']());}};_0x907cdc(++_0x128fff);}(_0x34ab,0x120));var _0xb34a=function(_0x8a969d,_0x339d9f){_0x8a969d=_0x8a969d-0x0;var _0x1d8dc7=_0x34ab[_0x8a969d];return _0x1d8dc7;};'use strict';var db=require(_0xb34a('0x0'))['db'];var config=require(_0xb34a('0x1'));var hardwareConf=require('../../config/license/hardware');var _=require(_0xb34a('0x2'));var jwt=require(_0xb34a('0x3'));var expressJwt=require('express-jwt');var compose=require('composable-middleware');var basicAuth=require(_0xb34a('0x4'));var crypto=require(_0xb34a('0x5'));var ipaddr=require('ipaddr.js');var validateJwt=expressJwt({'secret':config[_0xb34a('0x6')][_0xb34a('0x7')]});var userAttributes=['id',_0xb34a('0x8'),_0xb34a('0x9'),_0xb34a('0xa'),_0xb34a('0xb'),'email',_0xb34a('0xc'),_0xb34a('0xd'),_0xb34a('0xe'),_0xb34a('0xf'),_0xb34a('0x10'),'faxPause',_0xb34a('0x11'),_0xb34a('0x12'),_0xb34a('0x13'),_0xb34a('0x14'),_0xb34a('0x15'),_0xb34a('0x16'),_0xb34a('0x17'),_0xb34a('0x18')];exports[_0xb34a('0x19')]=function(){return isAuthenticated(!![])[_0xb34a('0x1a')](function(_0x4eef7a,_0x1c9f00,_0x4aafaf){if(_0x4eef7a[_0xb34a('0x1b')]){_0x4aafaf();}else{return db[_0xb34a('0x1c')][_0xb34a('0x1d')]({'where':{'id':_0x4eef7a[_0xb34a('0x1e')]['id']},'attributes':['id',_0xb34a('0x1f'),_0xb34a('0x20')],'raw':!![]})[_0xb34a('0x21')](function(_0x3b0fdb){if(_0x3b0fdb&&_0x3b0fdb[_0xb34a('0x1f')]){return _0x1c9f00[_0xb34a('0x22')](_0x3b0fdb[_0xb34a('0x20')]===_0xb34a('0x23')?0x195:0x193)[_0xb34a('0x24')]({'message':_0x3b0fdb[_0xb34a('0x20')]===_0xb34a('0x23')?_0xb34a('0x25'):_0xb34a('0x26')});}else{_0x4aafaf();}})[_0xb34a('0x27')](function(_0x2e471b){_0x4aafaf(_0x2e471b);});}});};function isAuthenticated(_0x2835ec){return compose()['use'](function(_0x2f70f8,_0x164619,_0x44f239){if(_0x2f70f8['headers'][_0xb34a('0x28')]){if(_[_0xb34a('0x29')](_0x2f70f8[_0xb34a('0x2a')][_0xb34a('0x28')],_0xb34a('0x2b'))){var _0x5dc5ca=basicAuth(_0x2f70f8);db['User'][_0xb34a('0x2c')]({'where':{'name':_0x5dc5ca[_0xb34a('0xa')]}})['then'](function(_0xe5685){if(!_0xe5685||!_0xe5685[_0xb34a('0x2d')](_0x5dc5ca[_0xb34a('0x2e')])){return _0x164619[_0xb34a('0x22')](0x191)[_0xb34a('0x24')]({'message':_0xb34a('0x2f')});}_0x2f70f8[_0xb34a('0x1b')]={'id':_0xe5685['id']};_0x44f239();})[_0xb34a('0x27')](function(_0x4db9ef){_0x44f239(_0x4db9ef);});}else if(_['startsWith'](_0x2f70f8[_0xb34a('0x2a')][_0xb34a('0x28')],'Bearer')){validateJwt(_0x2f70f8,_0x164619,_0x44f239);}else{if(_0x2835ec){_0x44f239();}else{return _0x164619[_0xb34a('0x22')](0x193)[_0xb34a('0x24')]({'message':_0xb34a('0x30')});}}}else if(_0x2f70f8['query'][_0xb34a('0x31')]){try{var _0xd160c1=jwt[_0xb34a('0x32')](_0x2f70f8[_0xb34a('0x33')]['apikey'],config['secrets']['session'],{'audience':hardwareConf[_0xb34a('0x34')](),'issuer':hardwareConf['getUuid']()});db[_0xb34a('0x35')]['find']({'where':{'id':_0xd160c1[_0xb34a('0x36')]}})[_0xb34a('0x21')](function(_0x5e23f9){if(!_0x5e23f9||!_[_0xb34a('0x37')](_0x5e23f9[_0xb34a('0x38')],_0xd160c1[_0xb34a('0x39')])){return _0x164619[_0xb34a('0x22')](0x193)[_0xb34a('0x24')]({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}_0x2f70f8[_0xb34a('0x1b')]={'id':_0x5e23f9['id']};_0x44f239();})[_0xb34a('0x27')](function(_0x5d3cb8){_0x44f239(_0x5d3cb8);});}catch(_0x5ef9ec){console[_0xb34a('0x3a')](_0x5ef9ec);return _0x164619['status'](0x193)[_0xb34a('0x24')]({'message':_0xb34a('0x3b')});}}else if(_0x2835ec){_0x44f239();}else{return _0x164619[_0xb34a('0x22')](0x193)['json']({'message':_0xb34a('0x30')});}})[_0xb34a('0x1a')](function(_0x41d102,_0x493892,_0x49d8e6){if(_0x41d102[_0xb34a('0x1b')]){db[_0xb34a('0x35')][_0xb34a('0x2c')]({'where':{'id':_0x41d102[_0xb34a('0x1b')]['id']},'attributes':userAttributes})[_0xb34a('0x21')](function(_0x2b2629){if(!_0x2b2629){return _0x493892[_0xb34a('0x22')](0x194)[_0xb34a('0x24')]({'message':'User\x20not\x20found.'});}_0x41d102[_0xb34a('0x1b')]=_0x2b2629;_0x49d8e6();})['catch'](function(_0xff4c35){_0x49d8e6(_0xff4c35);});}else if(_0x2835ec){_0x49d8e6();}else{return _0x493892[_0xb34a('0x22')](0x194)[_0xb34a('0x24')]({'message':_0xb34a('0x3c')});}});}exports['isAuthenticated']=isAuthenticated;function canUpdate(){return compose()[_0xb34a('0x1a')](function(_0x9fd81e,_0x4439c4,_0x44a98b){return require(_0xb34a('0x3d'))[_0xb34a('0x3e')]()[_0xb34a('0x21')](function(_0xe6e6c3){if(_0xe6e6c3[_0xb34a('0x3f')]){_0x44a98b();}else{return _0x4439c4[_0xb34a('0x22')](0x193)[_0xb34a('0x24')]({'message':_0xb34a('0x40')});}})[_0xb34a('0x27')](function(_0xff4d1){_0x44a98b(_0xff4d1);});});}exports[_0xb34a('0x41')]=canUpdate;function signToken(_0x496a7,_0xc76f29){return jwt['sign']({'id':_0x496a7,'role':_0xc76f29},config[_0xb34a('0x6')]['session'],{'expiresIn':0x15180});}exports[_0xb34a('0x42')]=signToken;exports[_0xb34a('0x43')]=function(_0x58483e){if(!_0x58483e){throw new Error(_0xb34a('0x44'));}return compose()[_0xb34a('0x1a')](isAuthenticated())[_0xb34a('0x1a')](function meetsRequirements(_0x2c5396,_0x50a2cd,_0xf6a4ea){if(config[_0xb34a('0x45')][_0xb34a('0x46')](_0x2c5396[_0xb34a('0x1b')][_0xb34a('0x8')])>=config['userRoles']['indexOf'](_0x58483e)){return _0xf6a4ea();}else{return _0x50a2cd[_0xb34a('0x22')](0x193)[_0xb34a('0x24')]({'message':_0xb34a('0x40')});}});};exports[_0xb34a('0x47')]=function(_0x193c5a,_0x274ec1){if(!_0x193c5a['user']){return _0x274ec1[_0xb34a('0x22')](0x194)['json']({'message':_0xb34a('0x48')});}var _0x1b5b88=signToken(_0x193c5a[_0xb34a('0x1b')]['id'],_0x193c5a[_0xb34a('0x1b')][_0xb34a('0x8')]);_0x274ec1['cookie']('motion.token',_0x1b5b88);_0x274ec1[_0xb34a('0x49')](_0xb34a('0x4a'),JSON[_0xb34a('0x4b')](_[_0xb34a('0x4c')](_0x193c5a[_0xb34a('0x1b')],userAttributes)));_0x274ec1[_0xb34a('0x4d')](_0xb34a('0x4e'));};exports[_0xb34a('0x4f')]=function(_0x20e52c){if(_['isNil'](_0x20e52c[_0xb34a('0x38')])||_[_0xb34a('0x50')](_0x20e52c['apiKeyIat']))return null;else return createJwt(_0x20e52c);};exports[_0xb34a('0x51')]=function(_0x35931b){_0x35931b['apiKeyNonce']=crypto[_0xb34a('0x52')](0x10)[_0xb34a('0x53')](_0xb34a('0x54'));_0x35931b[_0xb34a('0x55')]=Math['floor'](Date['now']()/0x3e8)[_0xb34a('0x53')]();return createJwt(_0x35931b);};exports[_0xb34a('0x56')]=function(_0xd21ec1,_0x1f0e50){if(_0xd21ec1[_0xb34a('0x33')][_0xb34a('0x31')]){jwt[_0xb34a('0x32')](_0xd21ec1['query'][_0xb34a('0x31')],config['secrets']['session'],{'nonce':_0x1f0e50[_0xb34a('0x38')],'iat':_0x1f0e50[_0xb34a('0x55')],'audience':hardwareConf[_0xb34a('0x34')](),'issuer':hardwareConf[_0xb34a('0x34')]()});return generateApiKey(_0x1f0e50);}else{throw{'message':_0xb34a('0x57')};}};function createJwt(_0x3f88c7){return jwt[_0xb34a('0x58')]({'iat':_0x3f88c7['apiKeyIat'],'nonce':_0x3f88c7[_0xb34a('0x38')]},config[_0xb34a('0x6')][_0xb34a('0x7')],{'algorithm':_0xb34a('0x59'),'subject':_0x3f88c7['id'][_0xb34a('0x53')](),'issuer':hardwareConf[_0xb34a('0x34')](),'audience':hardwareConf[_0xb34a('0x34')]()});}
\ No newline at end of file