d500a34be4b3a945ed50f3abcde959cf37ff8433
[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 _0xbd49=['../../mysqldb','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','%s:%s:%s','update','final','utf8','parse','hasOwnProperty','use','License','findOne','then','count','status','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users','User','admin','user','isUserLimit','composable-middleware'];(function(_0x3c8c65,_0x2820fa){var _0x34df05=function(_0x49cae8){while(--_0x49cae8){_0x3c8c65['push'](_0x3c8c65['shift']());}};_0x34df05(++_0x2820fa);}(_0xbd49,0x86));var _0x9bd4=function(_0x4ed806,_0x4e8f42){_0x4ed806=_0x4ed806-0x0;var _0x242479=_0xbd49[_0x4ed806];return _0x242479;};'use strict';var crypto=require('crypto');var util=require('util');var compose=require(_0x9bd4('0x0'));var db=require(_0x9bd4('0x1'))['db'];var config=require(_0x9bd4('0x2'));function getValueFromLicense(_0x5871af,_0x51972b){if(_0x5871af&&_0x51972b){if(_0x51972b[_0x9bd4('0x3')]&&_0x51972b[_0x9bd4('0x4')]){var _0x11224e=_0x51972b['data1'];var _0x368f79=_0x51972b[_0x9bd4('0x4')];var _0x25567a=_0x11224e[_0x9bd4('0x5')]('-')[0x4];var _0x3e9191=_0x11224e['split']('-')[0x0];var _0x1fcc9b=crypto[_0x9bd4('0x6')](_0x9bd4('0x7'),util[_0x9bd4('0x8')](_0x9bd4('0x9'),_0x25567a,_0x11224e,_0x3e9191));var _0x51e232=_0x1fcc9b[_0x9bd4('0xa')](_0x368f79,'base64','utf8');_0x51e232+=_0x1fcc9b[_0x9bd4('0xb')](_0x9bd4('0xc'));var _0x4180eb=JSON[_0x9bd4('0xd')](_0x51e232);return _0x4180eb[_0x9bd4('0xe')](_0x5871af)?_0x4180eb[_0x5871af]:null;}}return null;}function isLimit(_0x3d0b27,_0x322101,_0x3baca1,_0x1486b7){var _0x35aff9=_0x322101;return compose()[_0x9bd4('0xf')](function(_0x451c9b,_0x4897f6,_0x303cdc){return db[_0x9bd4('0x10')][_0x9bd4('0x11')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x313c67){var _0x15e5f2=getValueFromLicense(_0x3d0b27,_0x313c67);return _0x15e5f2?_0x15e5f2:_0x35aff9;})[_0x9bd4('0x12')](function(_0x25fd07){_0x35aff9=_0x25fd07;return _0x3baca1[_0x9bd4('0x13')](_0x1486b7);})[_0x9bd4('0x12')](function(_0x4d4553){if(_0x4d4553>=_0x35aff9){return _0x4897f6[_0x9bd4('0x14')](0x193)['json']({'message':util[_0x9bd4('0x8')](_0x9bd4('0x15'),_0x3d0b27)});}_0x303cdc();})['catch'](function(_0x4f5463){_0x303cdc(_0x4f5463);});});}function isUserLimit(){return isLimit(_0x9bd4('0x16'),0x1,db[_0x9bd4('0x17')],{'where':{'$or':[{'role':_0x9bd4('0x18')},{'role':_0x9bd4('0x19')}]}});}exports[_0x9bd4('0x1a')]=isUserLimit;