Built motion from commit b5996064.|2.6.21
[motion2.git] / server / config / license / index.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 _0xd78d=['then','error','message','finally','getUuid','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','moment','request-promise','pkginfo','version','../../mysqldb','../logger','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','GET','catch','get','data1','data2','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','Disabled','toUpperCase','YYYY-MM-DD\x20HH:mm','update','diff','days'];(function(_0xced98a,_0x5cb79a){var _0x2055db=function(_0x7c4807){while(--_0x7c4807){_0xced98a['push'](_0xced98a['shift']());}};_0x2055db(++_0x5cb79a);}(_0xd78d,0x6b));var _0xdd78=function(_0x17b33a,_0x805653){_0x17b33a=_0x17b33a-0x0;var _0x333454=_0xd78d[_0x17b33a];return _0x333454;};'use strict';var util=require('util');var moment=require(_0xdd78('0x0'));var rp=require(_0xdd78('0x1'));var BPromise=require('bluebird');var pkginfo=require(_0xdd78('0x2'))(module,_0xdd78('0x3'));var db=require(_0xdd78('0x4'))['db'];var encryptor=require('../../components/encryptor');var hardware=require('./hardware');var logger=require(_0xdd78('0x5'))('license');var HOST=_0xdd78('0x6');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x8c33e9){return new BPromise(function(_0xcda061,_0xb8b4da){var _0x43c9f2=util[_0xdd78('0x7')](_0xdd78('0x8'),HOST,_0x8c33e9,module[_0xdd78('0x9')][_0xdd78('0x3')]);if(oldToken){_0x43c9f2=util[_0xdd78('0x7')]('%s/api/servers/%s/check?version=%s&oldtoken=%s',HOST,_0x8c33e9,module[_0xdd78('0x9')][_0xdd78('0x3')],oldToken);}var _0x400fea={'uri':_0x43c9f2,'method':_0xdd78('0xa'),'timeout':0xea60,'json':!![]};return rp(_0x400fea)['then'](function(_0x22e760){_0xcda061(_0x22e760);})[_0xdd78('0xb')](function(_0x347f17){_0xb8b4da(_0x347f17);});});}function manageLicense(_0x369993,_0x3a06a8){var _0x1848f9=_0x3a06a8[_0xdd78('0xc')]({'plain':!![]});if(!isOldTokenSent&&_0x1848f9[_0xdd78('0xd')]!==_0x369993&&!_0x1848f9[_0xdd78('0xe')]){oldToken=_0x1848f9[_0xdd78('0xd')];}httpRequest(_0x369993)['then'](function(_0x3f905d){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x3f905d['active']){isOldTokenSent=![];if(!_0x1848f9[_0xdd78('0xf')]&&_0x1848f9[_0xdd78('0xf')]!=_0x3f905d['license']||_0x1848f9[_0xdd78('0xf')]&&_0x1848f9[_0xdd78('0xe')]){logger[_0xdd78('0x10')](_0xdd78('0x11'));}if(_0x1848f9['license']&&!_0x1848f9[_0xdd78('0xe')]&&_0x1848f9[_0xdd78('0xf')]!=_0x3f905d[_0xdd78('0xf')]){logger['info'](_0xdd78('0x12'));}if(_0x1848f9['license']&&!_0x1848f9[_0xdd78('0xe')]&&_0x1848f9['license']==_0x3f905d[_0xdd78('0xf')]){return _0x3a06a8;}return _0x3a06a8['update']({'data1':_0x369993,'data2':null,'license':_0x3f905d[_0xdd78('0xf')]});}else{if(_0x3f905d[_0xdd78('0xf')]||_0x1848f9[_0xdd78('0xf')]){if(!_0x1848f9[_0xdd78('0xe')]){if(_0x1848f9[_0xdd78('0xd')]==_0x369993){GRAY_PERIOD_REASON=_0xdd78('0x13');logger[_0xdd78('0x10')]('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON='Changed';logger['info']('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x1848f9['data1'],_0x369993);}logger[_0xdd78('0x10')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0xdd78('0x14')](),moment()[_0xdd78('0x7')](_0xdd78('0x15')));return _0x3a06a8[_0xdd78('0x16')]({'data2':encryptor['encryptString'](moment()['format'](_0xdd78('0x15')))});}else{if(moment()[_0xdd78('0x17')](encryptor['decryptString'](_0x1848f9[_0xdd78('0xe')]),_0xdd78('0x18'))>DAYS){logger[_0xdd78('0x10')]('DEMO\x20START\x20AT\x20%s',moment()[_0xdd78('0x7')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x3a06a8[_0xdd78('0x16')]({'data1':_0x369993,'data2':null,'license':null});}}}else{if(_0x1848f9[_0xdd78('0xd')]!=_0x369993){logger[_0xdd78('0x10')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x1848f9[_0xdd78('0xd')],_0x369993);return _0x3a06a8['update']({'data1':_0x369993,'data2':null,'license':null});}}}return _0x3a06a8;})[_0xdd78('0x19')](function(_0x30bc7a){_0x3a06a8=_0x30bc7a;})[_0xdd78('0xb')](function(_0x4e5059){logger[_0xdd78('0x1a')](_0x4e5059[_0xdd78('0x1b')]);})[_0xdd78('0x1c')](function(){setTimeout(function(){manageLicense(hardware[_0xdd78('0x1d')](),_0x3a06a8);},TIME);});}function defaultLicense(){var _0x511c22=hardware[_0xdd78('0x1d')]();if(_0x511c22){return db['License']['findOrCreate']({'where':{'id':0x1},'defaults':{'data1':_0x511c22}})[_0xdd78('0x1e')](function(_0x24b03e,_0x1babda){logger[_0xdd78('0x10')](_0xdd78('0x1f'),_0x511c22);manageLicense(_0x511c22,_0x24b03e);})[_0xdd78('0xb')](function(_0x3cdf18){logger[_0xdd78('0x1a')](_0x3cdf18[_0xdd78('0x1b')]);});}}exports[_0xdd78('0x20')]=defaultLicense;