782b70f4d43a6534e430a3340f50f61a00551e36
[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 _0x4f9e=['admin','user','isUserLimit','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','%s:%s:%s','update','utf8','parse','hasOwnProperty','use','findOne','then','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','User'];(function(_0x5b84e5,_0x26076b){var _0xff9066=function(_0x3f17df){while(--_0x3f17df){_0x5b84e5['push'](_0x5b84e5['shift']());}};_0xff9066(++_0x26076b);}(_0x4f9e,0x87));var _0xe4f9=function(_0x36b037,_0x2b234e){_0x36b037=_0x36b037-0x0;var _0x409194=_0x4f9e[_0x36b037];return _0x409194;};'use strict';var crypto=require('crypto');var util=require('util');var compose=require('composable-middleware');var db=require('../../mysqldb')['db'];var config=require(_0xe4f9('0x0'));function getValueFromLicense(_0x34a139,_0x231be7){if(_0x34a139&&_0x231be7){if(_0x231be7[_0xe4f9('0x1')]&&_0x231be7[_0xe4f9('0x2')]){var _0x26c347=_0x231be7[_0xe4f9('0x1')];var _0xaf3b73=_0x231be7[_0xe4f9('0x2')];var _0x2fbd08=_0x26c347[_0xe4f9('0x3')]('-')[0x4];var _0x3d4454=_0x26c347['split']('-')[0x0];var _0x37d794=crypto[_0xe4f9('0x4')](_0xe4f9('0x5'),util[_0xe4f9('0x6')](_0xe4f9('0x7'),_0x2fbd08,_0x26c347,_0x3d4454));var _0x33cda0=_0x37d794[_0xe4f9('0x8')](_0xaf3b73,'base64',_0xe4f9('0x9'));_0x33cda0+=_0x37d794['final']('utf8');var _0x2e6db5=JSON[_0xe4f9('0xa')](_0x33cda0);return _0x2e6db5[_0xe4f9('0xb')](_0x34a139)?_0x2e6db5[_0x34a139]:null;}}return null;}function isLimit(_0x57db38,_0x5cf280,_0x5b90c1,_0x4dd8ff){var _0x450ca7=_0x5cf280;return compose()[_0xe4f9('0xc')](function(_0x287bee,_0x11b010,_0x13b162){return db['License'][_0xe4f9('0xd')]({'where':{'id':0x1},'raw':!![]})[_0xe4f9('0xe')](function(_0x335980){var _0x219eca=getValueFromLicense(_0x57db38,_0x335980);return _0x219eca?_0x219eca:_0x450ca7;})['then'](function(_0x2cfda4){_0x450ca7=_0x2cfda4;return _0x5b90c1['count'](_0x4dd8ff);})['then'](function(_0x5d8370){if(_0x5d8370>=_0x450ca7){return _0x11b010[_0xe4f9('0xf')](0x193)[_0xe4f9('0x10')]({'message':util[_0xe4f9('0x6')](_0xe4f9('0x11'),_0x57db38)});}_0x13b162();})['catch'](function(_0x4aa57c){_0x13b162(_0x4aa57c);});});}function isUserLimit(){return isLimit('users',0x1,db[_0xe4f9('0x12')],{'where':{'$or':[{'role':_0xe4f9('0x13')},{'role':_0xe4f9('0x14')}]}});}exports[_0xe4f9('0x15')]=isUserLimit;