Built motion from commit 53172ac8.|2.6.30
[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 _0x3271=['disabled','message','User','role','sequelize','COUNT','col','admin','user','telephone','telephones','forEach','count','catch','pick','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','util','lodash','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','Demo\x20license','getUuid','2027-01-01T00:00:00.000Z','Breaking\x20license','License','find','then','data1','License\x20key\x20value\x20not\x20found','data2','split','decryptString','%s:%s:%s','parse','demo','uuid','machineUuid','gray','deadline','add','format','grayReason','changed'];(function(_0x1cb2ca,_0x519f6d){var _0x23e90f=function(_0x350d87){while(--_0x350d87){_0x1cb2ca['push'](_0x1cb2ca['shift']());}};_0x23e90f(++_0x519f6d);}(_0x3271,0xd7));var _0x1327=function(_0x391b66,_0x434d52){_0x391b66=_0x391b66-0x0;var _0x2521ca=_0x3271[_0x391b66];return _0x2521ca;};'use strict';var util=require(_0x1327('0x0'));var _=require(_0x1327('0x1'));var moment=require(_0x1327('0x2'));var BPromise=require(_0x1327('0x3'));var hardware=require(_0x1327('0x4'));var encryptor=require(_0x1327('0x5'));var db=require(_0x1327('0x6'))['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':_0x1327('0x7'),'machineUuid':hardware[_0x1327('0x8')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x1327('0x9'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x1327('0xa'),'machineUuid':hardware[_0x1327('0x8')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x3cada3){return new BPromise(function(_0x4e187b,_0x30c99a){return db[_0x1327('0xb')][_0x1327('0xc')](_['defaults'](_0x3cada3,{'raw':!![],'where':{'id':0x1}}))[_0x1327('0xd')](function(_0x70f92f){return checkLicense(_0x70f92f,null);})[_0x1327('0xd')](function(_0x4597f9){_0x4e187b(_0x4597f9);return;})['catch'](function(_0x103621){_0x30c99a(_0x103621);});});}function checkLicense(_0x4af4a,_0xfce235){if(!_0x4af4a){demoLicense['uuid']=_0x4af4a[_0x1327('0xe')];return demoLicense;}try{var _0x359c0b=_0xfce235||_0x4af4a['license'];if(_['isEmpty'](_0x359c0b)){throw new Error(_0x1327('0xf'));}var _0x7e0835=_0x4af4a[_0x1327('0xe')];var _0x5f0ae5=_0x4af4a[_0x1327('0x10')];var _0x36e40e=_0x7e0835[_0x1327('0x11')]('-')[0x4];var _0x3c2d50=_0x7e0835[_0x1327('0x11')]('-')[0x0];var _0x2c5e0a=encryptor[_0x1327('0x12')](_0x359c0b,util['format'](_0x1327('0x13'),_0x36e40e,_0x7e0835,_0x3c2d50));var _0x3c3ea6=JSON[_0x1327('0x14')](_0x2c5e0a);_0x3c3ea6[_0x1327('0x15')]=![];_0x3c3ea6[_0x1327('0x16')]=_0x7e0835;_0x3c3ea6[_0x1327('0x17')]=hardware[_0x1327('0x8')]();if(_0x5f0ae5){var _0x448385=encryptor[_0x1327('0x12')](_0x5f0ae5);_0x3c3ea6[_0x1327('0x18')]=_0x448385;_0x3c3ea6[_0x1327('0x19')]=moment(_0x448385)[_0x1327('0x1a')](0x7,'days')[_0x1327('0x1b')]();_0x3c3ea6[_0x1327('0x1c')]=_0x3c3ea6[_0x1327('0x16')]!=_0x3c3ea6[_0x1327('0x17')]?_0x1327('0x1d'):_0x1327('0x1e');}return _0x3c3ea6;}catch(_0x56a054){breakingLicense['uuid']=_0x4af4a['data1'];breakingLicense[_0x1327('0x1f')]=_0x56a054[_0x1327('0x1f')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x2ddfcd,_0x450d0c){getLicense()[_0x1327('0xd')](function(_0x4801f2){return db[_0x1327('0x20')]['findAll']({'attributes':[_0x1327('0x21'),[db[_0x1327('0x22')]['fn'](_0x1327('0x23'),db[_0x1327('0x22')][_0x1327('0x24')](_0x1327('0x21'))),'count']],'group':_0x1327('0x21'),'where':{'role':{'$or':[_0x1327('0x25'),_0x1327('0x26'),_0x1327('0x27')]}},'raw':!![]})[_0x1327('0xd')](function(_0x221a8b){var _0x3e2615={'user':_0x4801f2['users']||0x0,'telephone':_0x4801f2[_0x1327('0x28')]||0x0};_0x221a8b[_0x1327('0x29')](function(_0x271b9f){var _0x30f448=_0x271b9f[_0x1327('0x21')]===_0x1327('0x25')?_0x1327('0x26'):_0x271b9f[_0x1327('0x21')];_0x3e2615[_0x30f448]-=_0x271b9f[_0x1327('0x2a')];if(_0x3e2615[_0x30f448]<0x0)_0x3e2615[_0x30f448]=0x0;});_0x2ddfcd(_0x3e2615);return;});})[_0x1327('0x2b')](function(_0x264b9c){_0x450d0c(_0x264b9c);});});}function checkUserLimits(_0x209bd7){return new BPromise(function(_0x2b1ed2,_0x34bdd4){getLimits()[_0x1327('0xd')](function(_0x40b8b3){var _0x22ddb1=_[_0x1327('0x2c')](_[_0x1327('0x2d')](_0x209bd7,_0x1327('0x21')),[_0x1327('0x25'),'user',_0x1327('0x27')]);var _0x23ce8b=(_0x22ddb1[_0x1327('0x25')]||0x0)+(_0x22ddb1[_0x1327('0x26')]||0x0);var _0x1b56b9=_0x22ddb1[_0x1327('0x27')]||0x0;if(_0x23ce8b>_0x40b8b3['user'])return _0x34bdd4(_0x1327('0x2e'));if(_0x1b56b9>_0x40b8b3[_0x1327('0x27')])return _0x34bdd4(_0x1327('0x2f'));return _0x2b1ed2();})[_0x1327('0x2b')](function(_0x2e7848){_0x34bdd4(_0x2e7848);});});}module[_0x1327('0x30')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};