Built motion from commit 3e059bc2.|2.5.32
[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 _0x7b33=['data1','data2','active','license','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','info','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','YYYY-MM-DD\x20HH:mm','encryptString','diff','DEMO\x20START\x20AT\x20%s','error','message','getUuid','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','util','moment','request-promise','pkginfo','version','../../mysqldb','format','%s/api/servers/%s/check?version=%s','exports','GET','then','catch','get'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7b33,0x10b));var _0x37b3=function(_0x2e465a,_0x48f673){_0x2e465a=_0x2e465a-0x0;var _0x28658b=_0x7b33[_0x2e465a];return _0x28658b;};'use strict';var util=require(_0x37b3('0x0'));var moment=require(_0x37b3('0x1'));var rp=require(_0x37b3('0x2'));var BPromise=require('bluebird');var pkginfo=require(_0x37b3('0x3'))(module,_0x37b3('0x4'));var db=require(_0x37b3('0x5'))['db'];var encryptor=require('../../components/encryptor');var hardware=require('./hardware');var logger=require('../logger')('license');var HOST='https://www.xcallymotion.com';var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x1da782){return new BPromise(function(_0x42876a,_0x1a09b3){var _0x3050c2=util[_0x37b3('0x6')](_0x37b3('0x7'),HOST,_0x1da782,module['exports'][_0x37b3('0x4')]);if(oldToken){_0x3050c2=util[_0x37b3('0x6')]('%s/api/servers/%s/check?version=%s&oldtoken=%s',HOST,_0x1da782,module[_0x37b3('0x8')][_0x37b3('0x4')],oldToken);}var _0x5a487a={'uri':_0x3050c2,'method':_0x37b3('0x9'),'timeout':0xea60,'json':!![]};return rp(_0x5a487a)[_0x37b3('0xa')](function(_0x3bf75f){_0x42876a(_0x3bf75f);})[_0x37b3('0xb')](function(_0x52490c){_0x1a09b3(_0x52490c);});});}function manageLicense(_0xc0d04,_0x26db27){var _0x519600=_0x26db27[_0x37b3('0xc')]({'plain':!![]});if(!isOldTokenSent&&_0x519600[_0x37b3('0xd')]!==_0xc0d04&&!_0x519600[_0x37b3('0xe')]){oldToken=_0x519600[_0x37b3('0xd')];}httpRequest(_0xc0d04)[_0x37b3('0xa')](function(_0xf3a989){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0xf3a989[_0x37b3('0xf')]){isOldTokenSent=![];if(!_0x519600[_0x37b3('0x10')]&&_0x519600['license']!=_0xf3a989['license']||_0x519600[_0x37b3('0x10')]&&_0x519600[_0x37b3('0xe')]){logger['info'](_0x37b3('0x11'));}if(_0x519600[_0x37b3('0x10')]&&!_0x519600['data2']&&_0x519600[_0x37b3('0x10')]!=_0xf3a989['license']){logger[_0x37b3('0x12')](_0x37b3('0x13'));}if(_0x519600['license']&&!_0x519600[_0x37b3('0xe')]&&_0x519600['license']==_0xf3a989[_0x37b3('0x10')]){return _0x26db27;}return _0x26db27[_0x37b3('0x14')]({'data1':_0xc0d04,'data2':null,'license':_0xf3a989[_0x37b3('0x10')]});}else{if(_0xf3a989[_0x37b3('0x10')]||_0x519600[_0x37b3('0x10')]){if(!_0x519600[_0x37b3('0xe')]){if(_0x519600[_0x37b3('0xd')]==_0xc0d04){GRAY_PERIOD_REASON=_0x37b3('0x15');logger[_0x37b3('0x12')](_0x37b3('0x16'));}else{GRAY_PERIOD_REASON=_0x37b3('0x17');logger[_0x37b3('0x12')](_0x37b3('0x18'),_0x519600[_0x37b3('0xd')],_0xc0d04);}logger[_0x37b3('0x12')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0x37b3('0x6')](_0x37b3('0x19')));return _0x26db27[_0x37b3('0x14')]({'data2':encryptor[_0x37b3('0x1a')](moment()['format'](_0x37b3('0x19')))});}else{if(moment()[_0x37b3('0x1b')](encryptor['decryptString'](_0x519600[_0x37b3('0xe')]),'days')>DAYS){logger[_0x37b3('0x12')](_0x37b3('0x1c'),moment()[_0x37b3('0x6')](_0x37b3('0x19')));isOldTokenSent=![];return _0x26db27[_0x37b3('0x14')]({'data1':_0xc0d04,'data2':null,'license':null});}}}else{if(_0x519600['data1']!=_0xc0d04){logger[_0x37b3('0x12')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x519600['data1'],_0xc0d04);return _0x26db27['update']({'data1':_0xc0d04,'data2':null,'license':null});}}}return _0x26db27;})[_0x37b3('0xa')](function(_0x1a5fc9){_0x26db27=_0x1a5fc9;})[_0x37b3('0xb')](function(_0x36e626){logger[_0x37b3('0x1d')](_0x36e626[_0x37b3('0x1e')]);})['finally'](function(){setTimeout(function(){manageLicense(hardware[_0x37b3('0x1f')](),_0x26db27);},TIME);});}function defaultLicense(){var _0x5e65fc=hardware[_0x37b3('0x1f')]();if(_0x5e65fc){return db['License']['findOrCreate']({'where':{'id':0x1},'defaults':{'data1':_0x5e65fc}})[_0x37b3('0x20')](function(_0x21cd41,_0x1c9189){logger[_0x37b3('0x12')](_0x37b3('0x21'),_0x5e65fc);manageLicense(_0x5e65fc,_0x21cd41);})[_0x37b3('0xb')](function(_0x4cc6b2){logger[_0x37b3('0x1d')](_0x4cc6b2['message']);});}}exports[_0x37b3('0x22')]=defaultLicense;