Built motion from commit (unavailable).|2.5.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 _0x7571=['get','active','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','data2','data1','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','YYYY-MM-DD\x20HH:mm','diff','days','update','catch','error','message','finally','getUuid','License','findOrCreate','spread','default','moment','request-promise','bluebird','pkginfo','../../mysqldb','../../components/encryptor','./hardware','../logger','license','../../api/jira/jira.controller','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','version','GET','||FIELD||VALUE||\x0a','admin','email','then','|uuid|','|name|','fullname','|email|','getFirstInterface','ipAddress','openIssue','MOTLICENSE','Alert'];(function(_0x4e1d03,_0x786f3a){var _0x362d4b=function(_0x1924d2){while(--_0x1924d2){_0x4e1d03['push'](_0x4e1d03['shift']());}};_0x362d4b(++_0x786f3a);}(_0x7571,0xaf));var _0x1757=function(_0x475cbd,_0x298c47){_0x475cbd=_0x475cbd-0x0;var _0x54f0cc=_0x7571[_0x475cbd];return _0x54f0cc;};'use strict';var util=require('util');var moment=require(_0x1757('0x0'));var rp=require(_0x1757('0x1'));var BPromise=require(_0x1757('0x2'));var pkginfo=require(_0x1757('0x3'))(module,'version');var db=require(_0x1757('0x4'))['db'];var encryptor=require(_0x1757('0x5'));var hardware=require(_0x1757('0x6'));var logger=require(_0x1757('0x7'))(_0x1757('0x8'));var jira=require(_0x1757('0x9'));const {config}=require('process');var HOST='https://www.xcallymotion.com';var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var ADMIN;var oldToken;function httpRequest(_0x5f40fb){return new BPromise(function(_0x147ea2,_0x3158c3){var _0x38166c=util[_0x1757('0xa')](_0x1757('0xb'),HOST,_0x5f40fb,module[_0x1757('0xc')]['version']);if(oldToken){_0x38166c=util[_0x1757('0xa')](_0x1757('0xd'),HOST,_0x5f40fb,module[_0x1757('0xc')][_0x1757('0xe')],oldToken);}var _0x5b75bb={'uri':_0x38166c,'method':_0x1757('0xf'),'timeout':0xea60,'json':!![]};return rp(_0x5b75bb)['then'](function(_0x426f37){_0x147ea2(_0x426f37);})['catch'](function(_0xea8b66){_0x3158c3(_0xea8b66);});});}function sendJiraAlert(_0xb358d,_0x368528,_0x219680){var _0x4bfe0a=_0x1757('0x10');return db['User']['findOne']({'where':{'role':_0x1757('0x11')},'attributes':['fullname',_0x1757('0x12')],'raw':!![]})[_0x1757('0x13')](function(_0x3e033d){ADMIN=_0x3e033d;_0x4bfe0a+='|reason|'+_0x219680+'|\x0a';_0x4bfe0a+=_0x1757('0x14')+_0xb358d+'|\x0a';_0x4bfe0a+='|machineUuid|'+_0x368528+'|\x0a';_0x4bfe0a+=_0x1757('0x15')+ADMIN[_0x1757('0x16')]+'|\x0a';_0x4bfe0a+=_0x1757('0x17')+ADMIN[_0x1757('0x12')]+'|\x0a';return _0x4bfe0a;})['then'](function(_0x128c50){var _0xe62473=hardware[_0x1757('0x18')]()[_0x1757('0x19')];return jira[_0x1757('0x1a')]({'key':_0x1757('0x1b'),'summary':'Motion\x20License\x20Alert','description':_0x128c50,'issuetype':_0x1757('0x1c'),'oldToken':_0xb358d,'newToken':_0x368528,'email':ADMIN[_0x1757('0x12')],'name':ADMIN[_0x1757('0x16')],'reason':GRAY_PERIOD_REASON,'ip':_0xe62473});});}function manageLicense(_0x3e0fb1,_0x2d469f){var _0x5e677c=_0x2d469f[_0x1757('0x1d')]({'plain':!![]});httpRequest(_0x3e0fb1)[_0x1757('0x13')](function(_0x379c52){if(oldToken){oldToken=undefined;}if(_0x379c52[_0x1757('0x1e')]){if(!_0x5e677c[_0x1757('0x8')]&&_0x5e677c[_0x1757('0x8')]!=_0x379c52['license']||_0x5e677c[_0x1757('0x8')]&&_0x5e677c['data2']){logger[_0x1757('0x1f')](_0x1757('0x20'));}if(_0x5e677c[_0x1757('0x8')]&&!_0x5e677c['data2']&&_0x5e677c[_0x1757('0x8')]!=_0x379c52[_0x1757('0x8')]){logger[_0x1757('0x1f')](_0x1757('0x21'));}if(_0x5e677c[_0x1757('0x8')]&&!_0x5e677c['data2']&&_0x5e677c[_0x1757('0x8')]==_0x379c52[_0x1757('0x8')]){return _0x2d469f;}return _0x2d469f['update']({'data1':_0x3e0fb1,'data2':null,'license':_0x379c52['license']});}else{if(_0x379c52['license']||_0x5e677c['license']){if(!_0x5e677c[_0x1757('0x22')]){if(_0x5e677c[_0x1757('0x23')]==_0x3e0fb1){GRAY_PERIOD_REASON='Disabled';logger[_0x1757('0x1f')](_0x1757('0x24'));}else{GRAY_PERIOD_REASON='Changed';oldToken=_0x5e677c[_0x1757('0x23')];logger[_0x1757('0x1f')](_0x1757('0x25'),_0x5e677c[_0x1757('0x23')],_0x3e0fb1);}sendJiraAlert(_0x5e677c[_0x1757('0x23')],_0x379c52['uuid'],GRAY_PERIOD_REASON);logger[_0x1757('0x1f')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0x1757('0xa')]('YYYY-MM-DD\x20HH:mm'));return _0x2d469f['update']({'data2':encryptor['encryptString'](moment()['format'](_0x1757('0x26')))});}else{if(moment()[_0x1757('0x27')](encryptor['decryptString'](_0x5e677c[_0x1757('0x22')]),_0x1757('0x28'))>DAYS){logger[_0x1757('0x1f')]('DEMO\x20START\x20AT\x20%s',moment()[_0x1757('0xa')](_0x1757('0x26')));return _0x2d469f[_0x1757('0x29')]({'data1':_0x3e0fb1,'data2':null,'license':null});}}}else{if(_0x5e677c[_0x1757('0x23')]!=_0x3e0fb1){logger['info']('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x5e677c[_0x1757('0x23')],_0x3e0fb1);return _0x2d469f['update']({'data1':_0x3e0fb1,'data2':null,'license':null});}}}return _0x2d469f;})[_0x1757('0x13')](function(_0x3a6392){_0x2d469f=_0x3a6392;})[_0x1757('0x2a')](function(_0xd0954e){logger[_0x1757('0x2b')](_0xd0954e[_0x1757('0x2c')]);})[_0x1757('0x2d')](function(){setTimeout(function(){manageLicense(hardware[_0x1757('0x2e')](),_0x2d469f);},TIME);});}function defaultLicense(){var _0x3624a1=hardware['getUuid']();if(_0x3624a1){return db[_0x1757('0x2f')][_0x1757('0x30')]({'where':{'id':0x1},'defaults':{'data1':_0x3624a1}})[_0x1757('0x31')](function(_0xf33eb9,_0x5be22b){logger[_0x1757('0x1f')]('SERVICE\x20LICENSE\x20STARTED\x20%s',_0x3624a1);manageLicense(_0x3624a1,_0xf33eb9);})[_0x1757('0x2a')](function(_0x32411f){logger[_0x1757('0x2b')](_0x32411f[_0x1757('0x2c')]);});}}exports[_0x1757('0x32')]=defaultLicense;