0cae4c15927e25e9ae022aa2641bc88b32a2538b
[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 _0xa54c=['|reason|','|uuid|','|name|','getFirstInterface','openIssue','Motion\x20License\x20Alert','Alert','data2','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','info','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','data1','Changed','uuid','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','error','message','finally','getUuid','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','default','util','moment','request-promise','pkginfo','../../components/encryptor','./hardware','license','../../api/jira/jira.controller','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','version','GET','then','catch','findOne','fullname','email'];(function(_0x2378e5,_0x3a3505){var _0x3d73c4=function(_0x1fb2d1){while(--_0x1fb2d1){_0x2378e5['push'](_0x2378e5['shift']());}};_0x3d73c4(++_0x3a3505);}(_0xa54c,0xf0));var _0xca54=function(_0x234ae1,_0x42bdd6){_0x234ae1=_0x234ae1-0x0;var _0x227ba0=_0xa54c[_0x234ae1];return _0x227ba0;};'use strict';var util=require(_0xca54('0x0'));var moment=require(_0xca54('0x1'));var rp=require(_0xca54('0x2'));var BPromise=require('bluebird');var pkginfo=require(_0xca54('0x3'))(module,'version');var db=require('../../mysqldb')['db'];var encryptor=require(_0xca54('0x4'));var hardware=require(_0xca54('0x5'));var logger=require('../logger')(_0xca54('0x6'));var jira=require(_0xca54('0x7'));const {config}=require('process');var HOST=_0xca54('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var ADMIN;var oldToken;function httpRequest(_0x5d8fa8){return new BPromise(function(_0x52b51d,_0x1f5466){var _0x2d4c61=util[_0xca54('0x9')](_0xca54('0xa'),HOST,_0x5d8fa8,module[_0xca54('0xb')]['version']);if(oldToken){_0x2d4c61=util['format'](_0xca54('0xc'),HOST,_0x5d8fa8,module['exports'][_0xca54('0xd')],oldToken);}var _0x22e3de={'uri':_0x2d4c61,'method':_0xca54('0xe'),'timeout':0xea60,'json':!![]};return rp(_0x22e3de)[_0xca54('0xf')](function(_0x1609e7){_0x52b51d(_0x1609e7);})[_0xca54('0x10')](function(_0x4fc25a){_0x1f5466(_0x4fc25a);});});}function sendJiraAlert(_0x5e6e8a,_0x420559,_0x543999){var _0x19b54d='||FIELD||VALUE||\x0a';return db['User'][_0xca54('0x11')]({'where':{'role':'admin'},'attributes':[_0xca54('0x12'),_0xca54('0x13')],'raw':!![]})['then'](function(_0x4260ec){ADMIN=_0x4260ec;_0x19b54d+=_0xca54('0x14')+_0x543999+'|\x0a';_0x19b54d+=_0xca54('0x15')+_0x5e6e8a+'|\x0a';_0x19b54d+='|machineUuid|'+_0x420559+'|\x0a';_0x19b54d+=_0xca54('0x16')+ADMIN[_0xca54('0x12')]+'|\x0a';_0x19b54d+='|email|'+ADMIN[_0xca54('0x13')]+'|\x0a';return _0x19b54d;})[_0xca54('0xf')](function(_0x3944e5){var _0x1361f9=hardware[_0xca54('0x17')]()['ipAddress'];return jira[_0xca54('0x18')]({'key':'MOTLICENSE','summary':_0xca54('0x19'),'description':_0x3944e5,'issuetype':_0xca54('0x1a'),'oldToken':_0x5e6e8a,'newToken':_0x420559,'email':ADMIN['email'],'name':ADMIN['fullname'],'reason':GRAY_PERIOD_REASON,'ip':_0x1361f9});});}function manageLicense(_0xd60e89,_0x52cd5c){var _0x4d6a8b=_0x52cd5c['get']({'plain':!![]});httpRequest(_0xd60e89)[_0xca54('0xf')](function(_0x44aa78){if(oldToken){oldToken=undefined;}if(_0x44aa78['active']){if(!_0x4d6a8b[_0xca54('0x6')]&&_0x4d6a8b[_0xca54('0x6')]!=_0x44aa78[_0xca54('0x6')]||_0x4d6a8b['license']&&_0x4d6a8b[_0xca54('0x1b')]){logger['info'](_0xca54('0x1c'));}if(_0x4d6a8b[_0xca54('0x6')]&&!_0x4d6a8b[_0xca54('0x1b')]&&_0x4d6a8b[_0xca54('0x6')]!=_0x44aa78[_0xca54('0x6')]){logger[_0xca54('0x1d')](_0xca54('0x1e'));}if(_0x4d6a8b[_0xca54('0x6')]&&!_0x4d6a8b['data2']&&_0x4d6a8b[_0xca54('0x6')]==_0x44aa78[_0xca54('0x6')]){return _0x52cd5c;}return _0x52cd5c[_0xca54('0x1f')]({'data1':_0xd60e89,'data2':null,'license':_0x44aa78['license']});}else{if(_0x44aa78[_0xca54('0x6')]||_0x4d6a8b[_0xca54('0x6')]){if(!_0x4d6a8b[_0xca54('0x1b')]){if(_0x4d6a8b[_0xca54('0x20')]==_0xd60e89){GRAY_PERIOD_REASON='Disabled';logger['info']('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0xca54('0x21');oldToken=_0x4d6a8b[_0xca54('0x20')];logger[_0xca54('0x1d')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x4d6a8b[_0xca54('0x20')],_0xd60e89);}sendJiraAlert(_0x4d6a8b[_0xca54('0x20')],_0x44aa78[_0xca54('0x22')],GRAY_PERIOD_REASON);logger[_0xca54('0x1d')](_0xca54('0x23'),GRAY_PERIOD_REASON[_0xca54('0x24')](),moment()[_0xca54('0x9')](_0xca54('0x25')));return _0x52cd5c[_0xca54('0x1f')]({'data2':encryptor[_0xca54('0x26')](moment()[_0xca54('0x9')]('YYYY-MM-DD\x20HH:mm'))});}else{if(moment()[_0xca54('0x27')](encryptor[_0xca54('0x28')](_0x4d6a8b['data2']),_0xca54('0x29'))>DAYS){logger['info'](_0xca54('0x2a'),moment()['format'](_0xca54('0x25')));return _0x52cd5c['update']({'data1':_0xd60e89,'data2':null,'license':null});}}}else{if(_0x4d6a8b[_0xca54('0x20')]!=_0xd60e89){logger['info'](_0xca54('0x2b'),_0x4d6a8b[_0xca54('0x20')],_0xd60e89);return _0x52cd5c['update']({'data1':_0xd60e89,'data2':null,'license':null});}}}return _0x52cd5c;})[_0xca54('0xf')](function(_0x47e083){_0x52cd5c=_0x47e083;})[_0xca54('0x10')](function(_0x3dd96e){logger[_0xca54('0x2c')](_0x3dd96e[_0xca54('0x2d')]);})[_0xca54('0x2e')](function(){setTimeout(function(){manageLicense(hardware[_0xca54('0x2f')](),_0x52cd5c);},TIME);});}function defaultLicense(){var _0x178bcf=hardware[_0xca54('0x2f')]();if(_0x178bcf){return db['License'][_0xca54('0x30')]({'where':{'id':0x1},'defaults':{'data1':_0x178bcf}})[_0xca54('0x31')](function(_0x57b268,_0x380a4c){logger[_0xca54('0x1d')](_0xca54('0x32'),_0x178bcf);manageLicense(_0x178bcf,_0x57b268);})['catch'](function(_0xa47b68){logger[_0xca54('0x2c')](_0xa47b68[_0xca54('0x2d')]);});}}exports[_0xca54('0x33')]=defaultLicense;