Built motion from commit e02f907f.|2.6.14
[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 _0xa72d=['decryptString','DEMO\x20START\x20AT\x20%s','error','finally','getUuid','License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','moment','bluebird','pkginfo','../../mysqldb','../../components/encryptor','../logger','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','version','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','get','data1','data2','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','toUpperCase','encryptString','YYYY-MM-DD\x20HH:mm','diff'];(function(_0x32a208,_0x9a7c49){var _0x9515ca=function(_0x45da0a){while(--_0x45da0a){_0x32a208['push'](_0x32a208['shift']());}};_0x9515ca(++_0x9a7c49);}(_0xa72d,0xaa));var _0xda72=function(_0x525ed8,_0xe73dbc){_0x525ed8=_0x525ed8-0x0;var _0xac0a0a=_0xa72d[_0x525ed8];return _0xac0a0a;};'use strict';var util=require('util');var moment=require(_0xda72('0x0'));var rp=require('request-promise');var BPromise=require(_0xda72('0x1'));var pkginfo=require(_0xda72('0x2'))(module,'version');var db=require(_0xda72('0x3'))['db'];var encryptor=require(_0xda72('0x4'));var hardware=require('./hardware');var logger=require(_0xda72('0x5'))('license');var HOST=_0xda72('0x6');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x33b329){return new BPromise(function(_0xac4391,_0x325bc0){var _0x4b494c=util[_0xda72('0x7')](_0xda72('0x8'),HOST,_0x33b329,module[_0xda72('0x9')][_0xda72('0xa')]);if(oldToken){_0x4b494c=util[_0xda72('0x7')](_0xda72('0xb'),HOST,_0x33b329,module['exports'][_0xda72('0xa')],oldToken);}var _0x606fe1={'uri':_0x4b494c,'method':_0xda72('0xc'),'timeout':0xea60,'json':!![]};return rp(_0x606fe1)[_0xda72('0xd')](function(_0x288e55){_0xac4391(_0x288e55);})[_0xda72('0xe')](function(_0x11d59e){_0x325bc0(_0x11d59e);});});}function manageLicense(_0x566f8b,_0x163d60){var _0x107011=_0x163d60[_0xda72('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x107011[_0xda72('0x10')]!==_0x566f8b&&!_0x107011[_0xda72('0x11')]){oldToken=_0x107011[_0xda72('0x10')];}httpRequest(_0x566f8b)[_0xda72('0xd')](function(_0x166007){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x166007['active']){isOldTokenSent=![];if(!_0x107011[_0xda72('0x12')]&&_0x107011[_0xda72('0x12')]!=_0x166007[_0xda72('0x12')]||_0x107011[_0xda72('0x12')]&&_0x107011[_0xda72('0x11')]){logger[_0xda72('0x13')](_0xda72('0x14'));}if(_0x107011[_0xda72('0x12')]&&!_0x107011['data2']&&_0x107011[_0xda72('0x12')]!=_0x166007[_0xda72('0x12')]){logger[_0xda72('0x13')](_0xda72('0x15'));}if(_0x107011[_0xda72('0x12')]&&!_0x107011['data2']&&_0x107011[_0xda72('0x12')]==_0x166007[_0xda72('0x12')]){return _0x163d60;}return _0x163d60[_0xda72('0x16')]({'data1':_0x566f8b,'data2':null,'license':_0x166007[_0xda72('0x12')]});}else{if(_0x166007['license']||_0x107011[_0xda72('0x12')]){if(!_0x107011[_0xda72('0x11')]){if(_0x107011[_0xda72('0x10')]==_0x566f8b){GRAY_PERIOD_REASON=_0xda72('0x17');logger[_0xda72('0x13')]('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0xda72('0x18');logger[_0xda72('0x13')](_0xda72('0x19'),_0x107011[_0xda72('0x10')],_0x566f8b);}logger[_0xda72('0x13')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0xda72('0x1a')](),moment()[_0xda72('0x7')]('YYYY-MM-DD\x20HH:mm'));return _0x163d60['update']({'data2':encryptor[_0xda72('0x1b')](moment()[_0xda72('0x7')](_0xda72('0x1c')))});}else{if(moment()[_0xda72('0x1d')](encryptor[_0xda72('0x1e')](_0x107011[_0xda72('0x11')]),'days')>DAYS){logger['info'](_0xda72('0x1f'),moment()[_0xda72('0x7')](_0xda72('0x1c')));isOldTokenSent=![];return _0x163d60[_0xda72('0x16')]({'data1':_0x566f8b,'data2':null,'license':null});}}}else{if(_0x107011[_0xda72('0x10')]!=_0x566f8b){logger[_0xda72('0x13')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x107011[_0xda72('0x10')],_0x566f8b);return _0x163d60['update']({'data1':_0x566f8b,'data2':null,'license':null});}}}return _0x163d60;})[_0xda72('0xd')](function(_0x22adae){_0x163d60=_0x22adae;})[_0xda72('0xe')](function(_0x176d3a){logger[_0xda72('0x20')](_0x176d3a['message']);})[_0xda72('0x21')](function(){setTimeout(function(){manageLicense(hardware['getUuid'](),_0x163d60);},TIME);});}function defaultLicense(){var _0x5879fc=hardware[_0xda72('0x22')]();if(_0x5879fc){return db[_0xda72('0x23')][_0xda72('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x5879fc}})[_0xda72('0x25')](function(_0xd1d4e5,_0x1ebf1d){logger['info'](_0xda72('0x26'),_0x5879fc);manageLicense(_0x5879fc,_0xd1d4e5);})[_0xda72('0xe')](function(_0x31bcbb){logger[_0xda72('0x20')](_0x31bcbb['message']);});}}exports[_0xda72('0x27')]=defaultLicense;