154f4e6a1d48fc1cd5f57417e56c0b37f6aa5d02
[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 _0x1b18=['License','findOne','then','status','json','users','user','isUserLimit','crypto','composable-middleware','data1','license','split','createDecipher','aes-256-ctr','format','update','final','utf8','parse','hasOwnProperty'];(function(_0x272d97,_0x3cb745){var _0x40fc01=function(_0x1ad071){while(--_0x1ad071){_0x272d97['push'](_0x272d97['shift']());}};_0x40fc01(++_0x3cb745);}(_0x1b18,0x197));var _0x81b1=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x1b18[_0x321bb2];return _0x9c12ed;};'use strict';var crypto=require(_0x81b1('0x0'));var util=require('util');var compose=require(_0x81b1('0x1'));var db=require('../../mysqldb')['db'];var config=require('../../config/environment');function getValueFromLicense(_0x4a082d,_0x2c3d4e){if(_0x4a082d&&_0x2c3d4e){if(_0x2c3d4e[_0x81b1('0x2')]&&_0x2c3d4e[_0x81b1('0x3')]){var _0x43d33e=_0x2c3d4e[_0x81b1('0x2')];var _0x203fe4=_0x2c3d4e['license'];var _0xadb72=_0x43d33e[_0x81b1('0x4')]('-')[0x4];var _0xde0dae=_0x43d33e[_0x81b1('0x4')]('-')[0x0];var _0x43c335=crypto[_0x81b1('0x5')](_0x81b1('0x6'),util[_0x81b1('0x7')]('%s:%s:%s',_0xadb72,_0x43d33e,_0xde0dae));var _0x23f855=_0x43c335[_0x81b1('0x8')](_0x203fe4,'base64','utf8');_0x23f855+=_0x43c335[_0x81b1('0x9')](_0x81b1('0xa'));var _0x41c32c=JSON[_0x81b1('0xb')](_0x23f855);return _0x41c32c[_0x81b1('0xc')](_0x4a082d)?_0x41c32c[_0x4a082d]:null;}}return null;}function isLimit(_0x379882,_0x485842,_0x46e799,_0x2f3451){var _0x4e103c=_0x485842;return compose()['use'](function(_0x9cfcc9,_0x235a6d,_0x496ed2){return db[_0x81b1('0xd')][_0x81b1('0xe')]({'where':{'id':0x1},'raw':!![]})[_0x81b1('0xf')](function(_0x142287){var _0x44b5ba=getValueFromLicense(_0x379882,_0x142287);return _0x44b5ba?_0x44b5ba:_0x4e103c;})[_0x81b1('0xf')](function(_0x3b6657){_0x4e103c=_0x3b6657;return _0x46e799['count'](_0x2f3451);})['then'](function(_0x10a247){if(_0x10a247>=_0x4e103c){return _0x235a6d[_0x81b1('0x10')](0x193)[_0x81b1('0x11')]({'message':util[_0x81b1('0x7')]('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x379882)});}_0x496ed2();})['catch'](function(_0x52a0fd){_0x496ed2(_0x52a0fd);});});}function isUserLimit(){return isLimit(_0x81b1('0x12'),0x1,db['User'],{'where':{'$or':[{'role':'admin'},{'role':_0x81b1('0x13')}]}});}exports[_0x81b1('0x14')]=isUserLimit;