Built motion from commit (unavailable).|2.3.1
[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 _0xd7c9=['base64','utf8','||FIELD||VALUE||\x0a','User','findOne','admin','fullname','email','then','|reason|','|uuid|','|machineUuid|','|name|','|email|','getFirstInterface','ipAddress','openIssue','MOTLICENSE','Motion\x20License\x20Alert','Alert','get','active','license','data2','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','info','data1','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','YYYY-MM-DD\x20HH:mm','days','catch','message','finally','getUuid','License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','error','default','util','https','crypto','bluebird','pkginfo','version','../environment','./hardware','www.xcallymotion.com','format','/api/servers/%s/check?version=%s','GET','application/json','request','setEncoding','data','end','parse','aes-256-ctr','secrets','session','update'];(function(_0x3e30a8,_0x257732){var _0x5d5d1d=function(_0x2987f1){while(--_0x2987f1){_0x3e30a8['push'](_0x3e30a8['shift']());}};_0x5d5d1d(++_0x257732);}(_0xd7c9,0xf2));var _0x9d7c=function(_0x53807d,_0x4a90a8){_0x53807d=_0x53807d-0x0;var _0x501207=_0xd7c9[_0x53807d];return _0x501207;};'use strict';var util=require(_0x9d7c('0x0'));var https=require(_0x9d7c('0x1'));var crypto=require(_0x9d7c('0x2'));var moment=require('moment');var BPromise=require(_0x9d7c('0x3'));var pkginfo=require(_0x9d7c('0x4'))(module,_0x9d7c('0x5'));var db=require('../../mysqldb')['db'];var config=require(_0x9d7c('0x6'));var hardware=require(_0x9d7c('0x7'));var logger=require('../logger')('license');var jira=require('../../api/jira/jira.controller');var HOST=_0x9d7c('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var ADMIN;function httpRequest(_0x3c26c8){return new BPromise(function(_0x4522e6,_0x559b5e){var _0x5e17e9={'host':HOST,'port':0x1bb,'path':util[_0x9d7c('0x9')](_0x9d7c('0xa'),_0x3c26c8,module['exports'][_0x9d7c('0x5')]),'method':_0x9d7c('0xb'),'timeout':0xea60,'headers':{'Content-Type':_0x9d7c('0xc')}};var _0xab58f7=https[_0x9d7c('0xd')](_0x5e17e9,function(_0xa13687){_0xa13687[_0x9d7c('0xe')]('utf8');var _0x5e5093='';_0xa13687['on'](_0x9d7c('0xf'),function(_0x2d2c35){_0x5e5093+=_0x2d2c35;});_0xa13687['on'](_0x9d7c('0x10'),function(){try{_0x4522e6(JSON[_0x9d7c('0x11')](_0x5e5093));}catch(_0x1f39eb){_0x559b5e(_0x1f39eb);}});});_0xab58f7['on']('error',_0x559b5e);_0xab58f7[_0x9d7c('0x10')]();});}function encryptDate(_0x43f0d4){var _0x3c0aed=crypto['createCipher'](_0x9d7c('0x12'),config[_0x9d7c('0x13')][_0x9d7c('0x14')]);var _0x4a2509=_0x3c0aed[_0x9d7c('0x15')](_0x43f0d4,'utf8',_0x9d7c('0x16'));_0x4a2509+=_0x3c0aed['final']('base64');return _0x4a2509;}function decryptDate(_0x2aad06){var _0x4f9ed2=crypto['createDecipher'](_0x9d7c('0x12'),config[_0x9d7c('0x13')][_0x9d7c('0x14')]);var _0x215b9d=_0x4f9ed2[_0x9d7c('0x15')](_0x2aad06,_0x9d7c('0x16'),_0x9d7c('0x17'));_0x215b9d+=_0x4f9ed2['final'](_0x9d7c('0x17'));return _0x215b9d;}function sendJiraAlert(_0x5643b2,_0x1bb0ad,_0x3826b0){var _0x21d7d8=_0x9d7c('0x18');return db[_0x9d7c('0x19')][_0x9d7c('0x1a')]({'where':{'role':_0x9d7c('0x1b')},'attributes':[_0x9d7c('0x1c'),_0x9d7c('0x1d')],'raw':!![]})[_0x9d7c('0x1e')](function(_0x31be17){ADMIN=_0x31be17;_0x21d7d8+=_0x9d7c('0x1f')+_0x3826b0+'|\x0a';_0x21d7d8+=_0x9d7c('0x20')+_0x5643b2+'|\x0a';_0x21d7d8+=_0x9d7c('0x21')+_0x1bb0ad+'|\x0a';_0x21d7d8+=_0x9d7c('0x22')+ADMIN[_0x9d7c('0x1c')]+'|\x0a';_0x21d7d8+=_0x9d7c('0x23')+ADMIN[_0x9d7c('0x1d')]+'|\x0a';return _0x21d7d8;})[_0x9d7c('0x1e')](function(_0x9d0319){var _0x27c308=hardware[_0x9d7c('0x24')]()[_0x9d7c('0x25')];return jira[_0x9d7c('0x26')]({'key':_0x9d7c('0x27'),'summary':_0x9d7c('0x28'),'description':_0x9d0319,'issuetype':_0x9d7c('0x29'),'oldToken':_0x5643b2,'newToken':_0x1bb0ad,'email':ADMIN[_0x9d7c('0x1d')],'name':ADMIN['fullname'],'reason':GRAY_PERIOD_REASON,'ip':_0x27c308});});}function manageLicense(_0x5572b6,_0x5134f8){var _0x421bf3=_0x5134f8[_0x9d7c('0x2a')]({'plain':!![]});httpRequest(_0x5572b6)['then'](function(_0x316151){if(_0x316151[_0x9d7c('0x2b')]){if(!_0x421bf3[_0x9d7c('0x2c')]&&_0x421bf3['license']!=_0x316151[_0x9d7c('0x2c')]||_0x421bf3[_0x9d7c('0x2c')]&&_0x421bf3[_0x9d7c('0x2d')]){logger['info'](_0x9d7c('0x2e'));}if(_0x421bf3[_0x9d7c('0x2c')]&&!_0x421bf3[_0x9d7c('0x2d')]&&_0x421bf3[_0x9d7c('0x2c')]!=_0x316151[_0x9d7c('0x2c')]){logger[_0x9d7c('0x2f')]('THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED');}if(_0x421bf3['license']&&!_0x421bf3[_0x9d7c('0x2d')]&&_0x421bf3[_0x9d7c('0x2c')]==_0x316151[_0x9d7c('0x2c')]){return _0x5134f8;}return _0x5134f8['update']({'data1':_0x5572b6,'data2':null,'license':_0x316151[_0x9d7c('0x2c')]});}else{if(_0x316151[_0x9d7c('0x2c')]||_0x421bf3['license']){if(!_0x421bf3[_0x9d7c('0x2d')]){if(_0x421bf3[_0x9d7c('0x30')]==_0x5572b6){GRAY_PERIOD_REASON=_0x9d7c('0x31');logger['info'](_0x9d7c('0x32'));}else{GRAY_PERIOD_REASON=_0x9d7c('0x33');logger[_0x9d7c('0x2f')](_0x9d7c('0x34'),_0x421bf3[_0x9d7c('0x30')],_0x5572b6);}sendJiraAlert(_0x421bf3[_0x9d7c('0x30')],_0x316151['uuid'],GRAY_PERIOD_REASON);logger['info'](_0x9d7c('0x35'),GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0x9d7c('0x9')](_0x9d7c('0x36')));return _0x5134f8[_0x9d7c('0x15')]({'data2':encryptDate(moment()[_0x9d7c('0x9')](_0x9d7c('0x36')))});}else{if(moment()['diff'](decryptDate(_0x421bf3['data2']),_0x9d7c('0x37'))>DAYS){logger[_0x9d7c('0x2f')]('DEMO\x20START\x20AT\x20%s',moment()[_0x9d7c('0x9')](_0x9d7c('0x36')));return _0x5134f8['update']({'data1':_0x5572b6,'data2':null,'license':null});}}}else{if(_0x421bf3['data1']!=_0x5572b6){logger[_0x9d7c('0x2f')](_0x9d7c('0x34'),_0x421bf3[_0x9d7c('0x30')],_0x5572b6);return _0x5134f8[_0x9d7c('0x15')]({'data1':_0x5572b6,'data2':null,'license':null});}}}return _0x5134f8;})[_0x9d7c('0x1e')](function(_0x30a88e){_0x5134f8=_0x30a88e;})[_0x9d7c('0x38')](function(_0x23035b){logger['error'](_0x23035b[_0x9d7c('0x39')]);})[_0x9d7c('0x3a')](function(){setTimeout(function(){manageLicense(hardware[_0x9d7c('0x3b')](),_0x5134f8);},TIME);});}function defaultLicense(){var _0x4a8aa5=hardware[_0x9d7c('0x3b')]();if(_0x4a8aa5){return db[_0x9d7c('0x3c')][_0x9d7c('0x3d')]({'where':{'id':0x1},'defaults':{'data1':_0x4a8aa5}})[_0x9d7c('0x3e')](function(_0x22e750,_0x5ce32a){logger[_0x9d7c('0x2f')](_0x9d7c('0x3f'),_0x4a8aa5);manageLicense(_0x4a8aa5,_0x22e750);})[_0x9d7c('0x38')](function(_0x36bf52){logger[_0x9d7c('0x40')](_0x36bf52[_0x9d7c('0x39')]);});}}exports[_0x9d7c('0x41')]=defaultLicense;