Built motion from commit d13fb11b.|2.6.34
[motion2.git] / server / config / license / util.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x2b2c=['%s:%s:%s','parse','machineUuid','gray','days','format','grayReason','changed','message','then','User','findAll','role','sequelize','COUNT','col','count','admin','telephone','telephones','forEach','user','pick','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','lodash','../../components/encryptor','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','Breaking\x20license','License','find','catch','uuid','data1','license','isEmpty','split','decryptString'];(function(_0x3aa220,_0x58c85f){var _0x17bf15=function(_0x226bb3){while(--_0x226bb3){_0x3aa220['push'](_0x3aa220['shift']());}};_0x17bf15(++_0x58c85f);}(_0x2b2c,0x162));var _0xc2b2=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x2b2c[_0x321bb2];return _0x9c12ed;};'use strict';var util=require('util');var _=require(_0xc2b2('0x0'));var moment=require('moment');var BPromise=require('bluebird');var hardware=require('./hardware');var encryptor=require(_0xc2b2('0x1'));var db=require('../../mysqldb')['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xc2b2('0x2'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xc2b2('0x3'),'machineUuid':hardware[_0xc2b2('0x4')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xc2b2('0x2'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xc2b2('0x5'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x1d9930){return new BPromise(function(_0x33b80f,_0xc67e9e){return db[_0xc2b2('0x6')][_0xc2b2('0x7')](_['defaults'](_0x1d9930,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x42a796){return checkLicense(_0x42a796,null);})['then'](function(_0x4d3253){_0x33b80f(_0x4d3253);return;})[_0xc2b2('0x8')](function(_0x1b72d3){_0xc67e9e(_0x1b72d3);});});}function checkLicense(_0x2e3848,_0x1da011){if(!_0x2e3848){demoLicense[_0xc2b2('0x9')]=_0x2e3848[_0xc2b2('0xa')];return demoLicense;}try{var _0x44e497=_0x1da011||_0x2e3848[_0xc2b2('0xb')];if(_[_0xc2b2('0xc')](_0x44e497)){throw new Error('License\x20key\x20value\x20not\x20found');}var _0x56ae51=_0x2e3848[_0xc2b2('0xa')];var _0x4dfa98=_0x2e3848['data2'];var _0x2c034c=_0x56ae51[_0xc2b2('0xd')]('-')[0x4];var _0x303fc6=_0x56ae51['split']('-')[0x0];var _0x50cba3=encryptor[_0xc2b2('0xe')](_0x44e497,util['format'](_0xc2b2('0xf'),_0x2c034c,_0x56ae51,_0x303fc6));var _0x24c429=JSON[_0xc2b2('0x10')](_0x50cba3);_0x24c429['demo']=![];_0x24c429['uuid']=_0x56ae51;_0x24c429[_0xc2b2('0x11')]=hardware['getUuid']();if(_0x4dfa98){var _0x4c5f14=encryptor['decryptString'](_0x4dfa98);_0x24c429[_0xc2b2('0x12')]=_0x4c5f14;_0x24c429['deadline']=moment(_0x4c5f14)['add'](0x7,_0xc2b2('0x13'))[_0xc2b2('0x14')]();_0x24c429[_0xc2b2('0x15')]=_0x24c429[_0xc2b2('0x9')]!=_0x24c429[_0xc2b2('0x11')]?_0xc2b2('0x16'):'disabled';}return _0x24c429;}catch(_0x2b05b5){breakingLicense[_0xc2b2('0x9')]=_0x2e3848[_0xc2b2('0xa')];breakingLicense[_0xc2b2('0x17')]=_0x2b05b5[_0xc2b2('0x17')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x1d617c,_0x2bf71b){getLicense()[_0xc2b2('0x18')](function(_0x5e8c31){return db[_0xc2b2('0x19')][_0xc2b2('0x1a')]({'attributes':[_0xc2b2('0x1b'),[db[_0xc2b2('0x1c')]['fn'](_0xc2b2('0x1d'),db['sequelize'][_0xc2b2('0x1e')](_0xc2b2('0x1b'))),_0xc2b2('0x1f')]],'group':_0xc2b2('0x1b'),'where':{'role':{'$or':[_0xc2b2('0x20'),'user',_0xc2b2('0x21')]}},'raw':!![]})['then'](function(_0x3886f3){var _0x423fee={'user':_0x5e8c31['users']||0x0,'telephone':_0x5e8c31[_0xc2b2('0x22')]||0x0};_0x3886f3[_0xc2b2('0x23')](function(_0x4015fa){var _0x396833=_0x4015fa[_0xc2b2('0x1b')]===_0xc2b2('0x20')?_0xc2b2('0x24'):_0x4015fa[_0xc2b2('0x1b')];_0x423fee[_0x396833]-=_0x4015fa[_0xc2b2('0x1f')];if(_0x423fee[_0x396833]<0x0)_0x423fee[_0x396833]=0x0;});_0x1d617c(_0x423fee);return;});})['catch'](function(_0x253ca7){_0x2bf71b(_0x253ca7);});});}function checkUserLimits(_0x278e72){return new BPromise(function(_0x361a01,_0x2c9ab1){getLimits()[_0xc2b2('0x18')](function(_0x536c24){var _0x4ada3a=_[_0xc2b2('0x25')](_[_0xc2b2('0x26')](_0x278e72,_0xc2b2('0x1b')),[_0xc2b2('0x20'),'user',_0xc2b2('0x21')]);var _0x5444e8=(_0x4ada3a['admin']||0x0)+(_0x4ada3a['user']||0x0);var _0x283e03=_0x4ada3a[_0xc2b2('0x21')]||0x0;if(_0x5444e8>_0x536c24[_0xc2b2('0x24')])return _0x2c9ab1(_0xc2b2('0x27'));if(_0x283e03>_0x536c24[_0xc2b2('0x21')])return _0x2c9ab1(_0xc2b2('0x28'));return _0x361a01();})['catch'](function(_0x25ce69){_0x2c9ab1(_0x25ce69);});});}module['exports']={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};