Built motion from commit a61a4a20.|2.5.46
[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 _0x52bf=['parse','demo','machineUuid','deadline','add','grayReason','disabled','message','User','findAll','role','COUNT','col','telephone','users','forEach','user','count','pick','countBy','admin','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','util','lodash','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','Breaking\x20license','License','find','defaults','then','catch','uuid','data1','isEmpty','decryptString','%s:%s:%s'];(function(_0x38b3cb,_0x4ad7b3){var _0x5a9a84=function(_0x237634){while(--_0x237634){_0x38b3cb['push'](_0x38b3cb['shift']());}};_0x5a9a84(++_0x4ad7b3);}(_0x52bf,0x6f));var _0xf52b=function(_0x109835,_0x132d0a){_0x109835=_0x109835-0x0;var _0x46c5af=_0x52bf[_0x109835];return _0x46c5af;};'use strict';var util=require(_0xf52b('0x0'));var _=require(_0xf52b('0x1'));var moment=require(_0xf52b('0x2'));var BPromise=require(_0xf52b('0x3'));var hardware=require(_0xf52b('0x4'));var encryptor=require(_0xf52b('0x5'));var db=require(_0xf52b('0x6'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xf52b('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xf52b('0x8'),'machineUuid':hardware[_0xf52b('0x9')](),'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':_0xf52b('0xa'),'machineUuid':hardware[_0xf52b('0x9')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x1b249a){return new BPromise(function(_0x57192b,_0x48cb3c){return db[_0xf52b('0xb')][_0xf52b('0xc')](_[_0xf52b('0xd')](_0x1b249a,{'raw':!![],'where':{'id':0x1}}))[_0xf52b('0xe')](function(_0x6f4066){return checkLicense(_0x6f4066,null);})[_0xf52b('0xe')](function(_0x3b8b64){_0x57192b(_0x3b8b64);return;})[_0xf52b('0xf')](function(_0x363884){_0x48cb3c(_0x363884);});});}function checkLicense(_0x138d1a,_0x301fe4){if(!_0x138d1a){demoLicense[_0xf52b('0x10')]=_0x138d1a[_0xf52b('0x11')];return demoLicense;}try{var _0x2d5474=_0x301fe4||_0x138d1a['license'];if(_[_0xf52b('0x12')](_0x2d5474)){throw new Error('License\x20key\x20value\x20not\x20found');}var _0x2387dd=_0x138d1a['data1'];var _0x40ceb9=_0x138d1a['data2'];var _0x28ea6d=_0x2387dd['split']('-')[0x4];var _0xb3ef6=_0x2387dd['split']('-')[0x0];var _0x47fd65=encryptor[_0xf52b('0x13')](_0x2d5474,util['format'](_0xf52b('0x14'),_0x28ea6d,_0x2387dd,_0xb3ef6));var _0x58a24c=JSON[_0xf52b('0x15')](_0x47fd65);_0x58a24c[_0xf52b('0x16')]=![];_0x58a24c[_0xf52b('0x10')]=_0x2387dd;_0x58a24c[_0xf52b('0x17')]=hardware['getUuid']();if(_0x40ceb9){var _0x485f74=encryptor[_0xf52b('0x13')](_0x40ceb9);_0x58a24c['gray']=_0x485f74;_0x58a24c[_0xf52b('0x18')]=moment(_0x485f74)[_0xf52b('0x19')](0x7,'days')['format']();_0x58a24c[_0xf52b('0x1a')]=_0x58a24c[_0xf52b('0x10')]!=_0x58a24c['machineUuid']?'changed':_0xf52b('0x1b');}return _0x58a24c;}catch(_0x192cdf){breakingLicense[_0xf52b('0x10')]=_0x138d1a[_0xf52b('0x11')];breakingLicense[_0xf52b('0x1c')]=_0x192cdf[_0xf52b('0x1c')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x1dc382,_0x29ed18){getLicense()[_0xf52b('0xe')](function(_0x4792e5){return db[_0xf52b('0x1d')][_0xf52b('0x1e')]({'attributes':[_0xf52b('0x1f'),[db['sequelize']['fn'](_0xf52b('0x20'),db['sequelize'][_0xf52b('0x21')](_0xf52b('0x1f'))),'count']],'group':_0xf52b('0x1f'),'where':{'role':{'$or':['admin','user',_0xf52b('0x22')]}},'raw':!![]})[_0xf52b('0xe')](function(_0x1abef3){var _0x2f63be={'user':_0x4792e5[_0xf52b('0x23')]||0x0,'telephone':_0x4792e5['telephones']||0x0};_0x1abef3[_0xf52b('0x24')](function(_0x1ac23d){var _0x143c57=_0x1ac23d[_0xf52b('0x1f')]==='admin'?_0xf52b('0x25'):_0x1ac23d[_0xf52b('0x1f')];_0x2f63be[_0x143c57]-=_0x1ac23d[_0xf52b('0x26')];if(_0x2f63be[_0x143c57]<0x0)_0x2f63be[_0x143c57]=0x0;});_0x1dc382(_0x2f63be);return;});})[_0xf52b('0xf')](function(_0x454cad){_0x29ed18(_0x454cad);});});}function checkUserLimits(_0x282bfd){return new BPromise(function(_0x141239,_0x5bd0a8){getLimits()[_0xf52b('0xe')](function(_0x286092){var _0x86f44a=_[_0xf52b('0x27')](_[_0xf52b('0x28')](_0x282bfd,_0xf52b('0x1f')),[_0xf52b('0x29'),_0xf52b('0x25'),_0xf52b('0x22')]);var _0x39888c=(_0x86f44a[_0xf52b('0x29')]||0x0)+(_0x86f44a[_0xf52b('0x25')]||0x0);var _0x14a3df=_0x86f44a['telephone']||0x0;if(_0x39888c>_0x286092[_0xf52b('0x25')])return _0x5bd0a8(_0xf52b('0x2a'));if(_0x14a3df>_0x286092[_0xf52b('0x22')])return _0x5bd0a8(_0xf52b('0x2b'));return _0x141239();})[_0xf52b('0xf')](function(_0x1a1689){_0x5bd0a8(_0x1a1689);});});}module['exports']={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};