a2e337b9bff87c1c16b59f1b94f785cfa9631bcc
[motion2.git] / server / components / license / service.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 _0xfb0e=['aes-256-ctr','format','%s:%s:%s','update','base64','utf8','parse','hasOwnProperty','use','License','findOne','then','count','status','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users','User','admin','user','isUserLimit','util','../../mysqldb','../../config/environment','data1','license','split'];(function(_0xbed58e,_0x3a1272){var _0x295e44=function(_0x45755a){while(--_0x45755a){_0xbed58e['push'](_0xbed58e['shift']());}};_0x295e44(++_0x3a1272);}(_0xfb0e,0x1e8));var _0xefb0=function(_0x4cf8d4,_0x5aee73){_0x4cf8d4=_0x4cf8d4-0x0;var _0x2c1beb=_0xfb0e[_0x4cf8d4];return _0x2c1beb;};'use strict';var crypto=require('crypto');var util=require(_0xefb0('0x0'));var compose=require('composable-middleware');var db=require(_0xefb0('0x1'))['db'];var config=require(_0xefb0('0x2'));function getValueFromLicense(_0x1043ed,_0x58c310){if(_0x1043ed&&_0x58c310){if(_0x58c310[_0xefb0('0x3')]&&_0x58c310['license']){var _0x4d2988=_0x58c310['data1'];var _0x2c67ed=_0x58c310[_0xefb0('0x4')];var _0x30ed5b=_0x4d2988[_0xefb0('0x5')]('-')[0x4];var _0x5c8a41=_0x4d2988['split']('-')[0x0];var _0x536618=crypto['createDecipher'](_0xefb0('0x6'),util[_0xefb0('0x7')](_0xefb0('0x8'),_0x30ed5b,_0x4d2988,_0x5c8a41));var _0x3ef277=_0x536618[_0xefb0('0x9')](_0x2c67ed,_0xefb0('0xa'),_0xefb0('0xb'));_0x3ef277+=_0x536618['final'](_0xefb0('0xb'));var _0x7d7ae4=JSON[_0xefb0('0xc')](_0x3ef277);return _0x7d7ae4[_0xefb0('0xd')](_0x1043ed)?_0x7d7ae4[_0x1043ed]:null;}}return null;}function isLimit(_0x371f80,_0x35714a,_0x5c7192,_0xaa53d8){var _0x672f33=_0x35714a;return compose()[_0xefb0('0xe')](function(_0x30a511,_0x54a11f,_0x2ec3b2){return db[_0xefb0('0xf')][_0xefb0('0x10')]({'where':{'id':0x1},'raw':!![]})[_0xefb0('0x11')](function(_0x4d9f93){var _0x2b58d8=getValueFromLicense(_0x371f80,_0x4d9f93);return _0x2b58d8?_0x2b58d8:_0x672f33;})[_0xefb0('0x11')](function(_0x13d939){_0x672f33=_0x13d939;return _0x5c7192[_0xefb0('0x12')](_0xaa53d8);})[_0xefb0('0x11')](function(_0x43cfc1){if(_0x43cfc1>=_0x672f33){return _0x54a11f[_0xefb0('0x13')](0x193)['json']({'message':util['format'](_0xefb0('0x14'),_0x371f80)});}_0x2ec3b2();})['catch'](function(_0x3f8a05){_0x2ec3b2(_0x3f8a05);});});}function isUserLimit(){return isLimit(_0xefb0('0x15'),0x1,db[_0xefb0('0x16')],{'where':{'$or':[{'role':_0xefb0('0x17')},{'role':_0xefb0('0x18')}]}});}exports[_0xefb0('0x19')]=isUserLimit;