00a05fc768df6bdd72da5a564ce6013f39e6ab05
[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 _0xb3dc=['../../mysqldb','Demo\x20license','getUuid','2027-01-01T00:00:00.000Z','Breaking\x20license','License','find','then','catch','data1','isEmpty','License\x20key\x20value\x20not\x20found','split','decryptString','%s:%s:%s','parse','demo','gray','deadline','add','format','grayReason','uuid','machineUuid','changed','disabled','message','User','findAll','role','COUNT','col','count','admin','user','telephone','users','forEach','pick','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','lodash','moment','bluebird','./hardware','../../components/encryptor'];(function(_0x20d75f,_0x377791){var _0x44d60e=function(_0x3ef1aa){while(--_0x3ef1aa){_0x20d75f['push'](_0x20d75f['shift']());}};_0x44d60e(++_0x377791);}(_0xb3dc,0x8b));var _0xcb3d=function(_0xb200f0,_0x5d9c21){_0xb200f0=_0xb200f0-0x0;var _0x4a699e=_0xb3dc[_0xb200f0];return _0x4a699e;};'use strict';var util=require('util');var _=require(_0xcb3d('0x0'));var moment=require(_0xcb3d('0x1'));var BPromise=require(_0xcb3d('0x2'));var hardware=require(_0xcb3d('0x3'));var encryptor=require(_0xcb3d('0x4'));var db=require(_0xcb3d('0x5'))['db'];const demoLicense={'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':![],'description':_0xcb3d('0x6'),'machineUuid':hardware[_0xcb3d('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xcb3d('0x8'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xcb3d('0x9'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x4a974b){return new BPromise(function(_0x2b0b28,_0x24890e){return db[_0xcb3d('0xa')][_0xcb3d('0xb')](_['defaults'](_0x4a974b,{'raw':!![],'where':{'id':0x1}}))[_0xcb3d('0xc')](function(_0x4552e1){return checkLicense(_0x4552e1,null);})[_0xcb3d('0xc')](function(_0x17c6f9){_0x2b0b28(_0x17c6f9);return;})[_0xcb3d('0xd')](function(_0x13a7d9){_0x24890e(_0x13a7d9);});});}function checkLicense(_0x5a680d,_0x3365d4){if(!_0x5a680d){demoLicense['uuid']=_0x5a680d[_0xcb3d('0xe')];return demoLicense;}try{var _0x5e8d5e=_0x3365d4||_0x5a680d['license'];if(_[_0xcb3d('0xf')](_0x5e8d5e)){throw new Error(_0xcb3d('0x10'));}var _0x3be594=_0x5a680d['data1'];var _0x4be291=_0x5a680d['data2'];var _0x422ac1=_0x3be594[_0xcb3d('0x11')]('-')[0x4];var _0x1809fd=_0x3be594[_0xcb3d('0x11')]('-')[0x0];var _0x473b04=encryptor[_0xcb3d('0x12')](_0x5e8d5e,util['format'](_0xcb3d('0x13'),_0x422ac1,_0x3be594,_0x1809fd));var _0x479491=JSON[_0xcb3d('0x14')](_0x473b04);_0x479491[_0xcb3d('0x15')]=![];_0x479491['uuid']=_0x3be594;_0x479491['machineUuid']=hardware[_0xcb3d('0x7')]();if(_0x4be291){var _0x64436d=encryptor[_0xcb3d('0x12')](_0x4be291);_0x479491[_0xcb3d('0x16')]=_0x64436d;_0x479491[_0xcb3d('0x17')]=moment(_0x64436d)[_0xcb3d('0x18')](0x7,'days')[_0xcb3d('0x19')]();_0x479491[_0xcb3d('0x1a')]=_0x479491[_0xcb3d('0x1b')]!=_0x479491[_0xcb3d('0x1c')]?_0xcb3d('0x1d'):_0xcb3d('0x1e');}return _0x479491;}catch(_0xf5d6a6){breakingLicense['uuid']=_0x5a680d[_0xcb3d('0xe')];breakingLicense[_0xcb3d('0x1f')]=_0xf5d6a6[_0xcb3d('0x1f')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x46d098,_0x5dbf3c){getLicense()[_0xcb3d('0xc')](function(_0x4663d4){return db[_0xcb3d('0x20')][_0xcb3d('0x21')]({'attributes':[_0xcb3d('0x22'),[db['sequelize']['fn'](_0xcb3d('0x23'),db['sequelize'][_0xcb3d('0x24')]('role')),_0xcb3d('0x25')]],'group':_0xcb3d('0x22'),'where':{'role':{'$or':[_0xcb3d('0x26'),_0xcb3d('0x27'),_0xcb3d('0x28')]}},'raw':!![]})[_0xcb3d('0xc')](function(_0x315ed6){var _0x19835a={'user':_0x4663d4[_0xcb3d('0x29')]||0x0,'telephone':_0x4663d4['telephones']||0x0};_0x315ed6[_0xcb3d('0x2a')](function(_0x17dcb7){var _0x2d1044=_0x17dcb7[_0xcb3d('0x22')]===_0xcb3d('0x26')?_0xcb3d('0x27'):_0x17dcb7[_0xcb3d('0x22')];_0x19835a[_0x2d1044]-=_0x17dcb7['count'];if(_0x19835a[_0x2d1044]<0x0)_0x19835a[_0x2d1044]=0x0;});_0x46d098(_0x19835a);return;});})[_0xcb3d('0xd')](function(_0x3bee9a){_0x5dbf3c(_0x3bee9a);});});}function checkUserLimits(_0x4c9df1){return new BPromise(function(_0x574106,_0x2525d3){getLimits()['then'](function(_0x2cf172){var _0x373c21=_[_0xcb3d('0x2b')](_[_0xcb3d('0x2c')](_0x4c9df1,_0xcb3d('0x22')),[_0xcb3d('0x26'),_0xcb3d('0x27'),_0xcb3d('0x28')]);var _0x236481=(_0x373c21[_0xcb3d('0x26')]||0x0)+(_0x373c21[_0xcb3d('0x27')]||0x0);var _0x42dd41=_0x373c21[_0xcb3d('0x28')]||0x0;if(_0x236481>_0x2cf172[_0xcb3d('0x27')])return _0x2525d3(_0xcb3d('0x2d'));if(_0x42dd41>_0x2cf172[_0xcb3d('0x28')])return _0x2525d3(_0xcb3d('0x2e'));return _0x574106();})[_0xcb3d('0xd')](function(_0x1fb0b6){_0x2525d3(_0x1fb0b6);});});}module[_0xcb3d('0x2f')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};