Built motion from commit d1eab355.|2.6.28
[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 _0x1b40=['user','isUserLimit','crypto','util','../../mysqldb','../../config/environment','data1','license','split','createDecipher','format','%s:%s:%s','update','utf8','final','parse','hasOwnProperty','use','License','findOne','then','status','json','catch','users','User','admin'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x1b40,0xbf));var _0x01b4=function(_0x235482,_0x14b833){_0x235482=_0x235482-0x0;var _0x5f5bea=_0x1b40[_0x235482];return _0x5f5bea;};'use strict';var crypto=require(_0x01b4('0x0'));var util=require(_0x01b4('0x1'));var compose=require('composable-middleware');var db=require(_0x01b4('0x2'))['db'];var config=require(_0x01b4('0x3'));function getValueFromLicense(_0xd0ee37,_0x4d214b){if(_0xd0ee37&&_0x4d214b){if(_0x4d214b[_0x01b4('0x4')]&&_0x4d214b[_0x01b4('0x5')]){var _0x5a99f0=_0x4d214b[_0x01b4('0x4')];var _0x7fd8f9=_0x4d214b['license'];var _0x1e8f28=_0x5a99f0['split']('-')[0x4];var _0x5e79bf=_0x5a99f0[_0x01b4('0x6')]('-')[0x0];var _0x473b7f=crypto[_0x01b4('0x7')]('aes-256-ctr',util[_0x01b4('0x8')](_0x01b4('0x9'),_0x1e8f28,_0x5a99f0,_0x5e79bf));var _0xdadc6a=_0x473b7f[_0x01b4('0xa')](_0x7fd8f9,'base64',_0x01b4('0xb'));_0xdadc6a+=_0x473b7f[_0x01b4('0xc')]('utf8');var _0x5f0515=JSON[_0x01b4('0xd')](_0xdadc6a);return _0x5f0515[_0x01b4('0xe')](_0xd0ee37)?_0x5f0515[_0xd0ee37]:null;}}return null;}function isLimit(_0x36454a,_0x498e6e,_0x1c5e93,_0x13b5b8){var _0x2dafaf=_0x498e6e;return compose()[_0x01b4('0xf')](function(_0x9c6001,_0x51e082,_0x21ebb8){return db[_0x01b4('0x10')][_0x01b4('0x11')]({'where':{'id':0x1},'raw':!![]})[_0x01b4('0x12')](function(_0x12e95f){var _0x2d7d06=getValueFromLicense(_0x36454a,_0x12e95f);return _0x2d7d06?_0x2d7d06:_0x2dafaf;})[_0x01b4('0x12')](function(_0x1a88fa){_0x2dafaf=_0x1a88fa;return _0x1c5e93['count'](_0x13b5b8);})['then'](function(_0x50012e){if(_0x50012e>=_0x2dafaf){return _0x51e082[_0x01b4('0x13')](0x193)[_0x01b4('0x14')]({'message':util[_0x01b4('0x8')]('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x36454a)});}_0x21ebb8();})[_0x01b4('0x15')](function(_0x4083a2){_0x21ebb8(_0x4083a2);});});}function isUserLimit(){return isLimit(_0x01b4('0x16'),0x1,db[_0x01b4('0x17')],{'where':{'$or':[{'role':_0x01b4('0x18')},{'role':_0x01b4('0x19')}]}});}exports[_0x01b4('0x1a')]=isUserLimit;