193340a169ec8c72e8a27dbe4d0a00cc6a0ede89
[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 _0x047a=['telephone','forEach','user','count','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','util','lodash','bluebird','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','Breaking\x20license','getUuid','License','then','catch','uuid','data1','license','isEmpty','License\x20key\x20value\x20not\x20found','data2','split','format','%s:%s:%s','demo','machineUuid','decryptString','days','grayReason','changed','disabled','message','User','findAll','role','sequelize','col','admin'];(function(_0x5c58f5,_0x1f5151){var _0xe6db57=function(_0x1d1065){while(--_0x1d1065){_0x5c58f5['push'](_0x5c58f5['shift']());}};_0xe6db57(++_0x1f5151);}(_0x047a,0xe4));var _0xa047=function(_0x51aee3,_0x30c7e4){_0x51aee3=_0x51aee3-0x0;var _0x346280=_0x047a[_0x51aee3];return _0x346280;};'use strict';var util=require(_0xa047('0x0'));var _=require(_0xa047('0x1'));var moment=require('moment');var BPromise=require(_0xa047('0x2'));var hardware=require(_0xa047('0x3'));var encryptor=require(_0xa047('0x4'));var db=require(_0xa047('0x5'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xa047('0x6'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xa047('0x7'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xa047('0x8'),'machineUuid':hardware[_0xa047('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x205ed8){return new BPromise(function(_0x4bcdf4,_0x171c97){return db[_0xa047('0xa')]['find'](_['defaults'](_0x205ed8,{'raw':!![],'where':{'id':0x1}}))[_0xa047('0xb')](function(_0x2bb933){return checkLicense(_0x2bb933,null);})[_0xa047('0xb')](function(_0x534ad5){_0x4bcdf4(_0x534ad5);return;})[_0xa047('0xc')](function(_0x147e7d){_0x171c97(_0x147e7d);});});}function checkLicense(_0x4dd044,_0x2ae234){if(!_0x4dd044){demoLicense[_0xa047('0xd')]=_0x4dd044[_0xa047('0xe')];return demoLicense;}try{var _0x56a252=_0x2ae234||_0x4dd044[_0xa047('0xf')];if(_[_0xa047('0x10')](_0x56a252)){throw new Error(_0xa047('0x11'));}var _0x5cc345=_0x4dd044[_0xa047('0xe')];var _0x292fb3=_0x4dd044[_0xa047('0x12')];var _0x1cde23=_0x5cc345[_0xa047('0x13')]('-')[0x4];var _0x48bc53=_0x5cc345['split']('-')[0x0];var _0x56bf6d=encryptor['decryptString'](_0x56a252,util[_0xa047('0x14')](_0xa047('0x15'),_0x1cde23,_0x5cc345,_0x48bc53));var _0x29edba=JSON['parse'](_0x56bf6d);_0x29edba[_0xa047('0x16')]=![];_0x29edba['uuid']=_0x5cc345;_0x29edba[_0xa047('0x17')]=hardware['getUuid']();if(_0x292fb3){var _0x4062e0=encryptor[_0xa047('0x18')](_0x292fb3);_0x29edba['gray']=_0x4062e0;_0x29edba['deadline']=moment(_0x4062e0)['add'](0x7,_0xa047('0x19'))[_0xa047('0x14')]();_0x29edba[_0xa047('0x1a')]=_0x29edba[_0xa047('0xd')]!=_0x29edba['machineUuid']?_0xa047('0x1b'):_0xa047('0x1c');}return _0x29edba;}catch(_0x55fcce){breakingLicense[_0xa047('0xd')]=_0x4dd044['data1'];breakingLicense[_0xa047('0x1d')]=_0x55fcce['message'];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x630960,_0x291006){getLicense()['then'](function(_0x4ff176){return db[_0xa047('0x1e')][_0xa047('0x1f')]({'attributes':[_0xa047('0x20'),[db[_0xa047('0x21')]['fn']('COUNT',db[_0xa047('0x21')][_0xa047('0x22')](_0xa047('0x20'))),'count']],'group':'role','where':{'role':{'$or':[_0xa047('0x23'),'user',_0xa047('0x24')]}},'raw':!![]})[_0xa047('0xb')](function(_0x25990f){var _0x521c4f={'user':_0x4ff176['users']||0x0,'telephone':_0x4ff176['telephones']||0x0};_0x25990f[_0xa047('0x25')](function(_0x1a53f6){var _0x122910=_0x1a53f6[_0xa047('0x20')]===_0xa047('0x23')?_0xa047('0x26'):_0x1a53f6['role'];_0x521c4f[_0x122910]-=_0x1a53f6[_0xa047('0x27')];if(_0x521c4f[_0x122910]<0x0)_0x521c4f[_0x122910]=0x0;});_0x630960(_0x521c4f);return;});})['catch'](function(_0x2d030d){_0x291006(_0x2d030d);});});}function checkUserLimits(_0x5f3830){return new BPromise(function(_0x2b7ea7,_0x182506){getLimits()['then'](function(_0x42d390){var _0x2b4fbc=_['pick'](_[_0xa047('0x28')](_0x5f3830,_0xa047('0x20')),[_0xa047('0x23'),_0xa047('0x26'),'telephone']);var _0x58dd5b=(_0x2b4fbc[_0xa047('0x23')]||0x0)+(_0x2b4fbc[_0xa047('0x26')]||0x0);var _0x3dd77b=_0x2b4fbc[_0xa047('0x24')]||0x0;if(_0x58dd5b>_0x42d390[_0xa047('0x26')])return _0x182506(_0xa047('0x29'));if(_0x3dd77b>_0x42d390[_0xa047('0x24')])return _0x182506(_0xa047('0x2a'));return _0x2b7ea7();})[_0xa047('0xc')](function(_0x541ca5){_0x182506(_0x541ca5);});});}module[_0xa047('0x2b')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};