2807f23421659f8468a3f3eafb0575869631fc42
[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 _0x5421=['isUserLimit','crypto','util','../../mysqldb','../../config/environment','data1','license','split','createDecipher','update','utf8','parse','hasOwnProperty','use','findOne','then','status','Maximum\x20%s\x20limit\x20have\x20been\x20reached','User','admin','user'];(function(_0x26908d,_0x53033b){var _0x3709e6=function(_0x5c17d4){while(--_0x5c17d4){_0x26908d['push'](_0x26908d['shift']());}};_0x3709e6(++_0x53033b);}(_0x5421,0x1cf));var _0x1542=function(_0x33975c,_0x50d085){_0x33975c=_0x33975c-0x0;var _0x1c15ab=_0x5421[_0x33975c];return _0x1c15ab;};'use strict';var crypto=require(_0x1542('0x0'));var util=require(_0x1542('0x1'));var compose=require('composable-middleware');var db=require(_0x1542('0x2'))['db'];var config=require(_0x1542('0x3'));function getValueFromLicense(_0x30c7c6,_0x481450){if(_0x30c7c6&&_0x481450){if(_0x481450[_0x1542('0x4')]&&_0x481450[_0x1542('0x5')]){var _0x493eca=_0x481450[_0x1542('0x4')];var _0x37207f=_0x481450[_0x1542('0x5')];var _0x52a0a4=_0x493eca['split']('-')[0x4];var _0x4c8e0e=_0x493eca[_0x1542('0x6')]('-')[0x0];var _0x273f66=crypto[_0x1542('0x7')]('aes-256-ctr',util['format']('%s:%s:%s',_0x52a0a4,_0x493eca,_0x4c8e0e));var _0x4b87b2=_0x273f66[_0x1542('0x8')](_0x37207f,'base64','utf8');_0x4b87b2+=_0x273f66['final'](_0x1542('0x9'));var _0x32a948=JSON[_0x1542('0xa')](_0x4b87b2);return _0x32a948[_0x1542('0xb')](_0x30c7c6)?_0x32a948[_0x30c7c6]:null;}}return null;}function isLimit(_0x33ae3e,_0x153a6d,_0x497931,_0x4d5314){var _0x34cf23=_0x153a6d;return compose()[_0x1542('0xc')](function(_0x56fee8,_0x31978d,_0x1c891b){return db['License'][_0x1542('0xd')]({'where':{'id':0x1},'raw':!![]})[_0x1542('0xe')](function(_0x29b022){var _0x2ca432=getValueFromLicense(_0x33ae3e,_0x29b022);return _0x2ca432?_0x2ca432:_0x34cf23;})['then'](function(_0x219309){_0x34cf23=_0x219309;return _0x497931['count'](_0x4d5314);})['then'](function(_0x281377){if(_0x281377>=_0x34cf23){return _0x31978d[_0x1542('0xf')](0x193)['json']({'message':util['format'](_0x1542('0x10'),_0x33ae3e)});}_0x1c891b();})['catch'](function(_0x41a8b8){_0x1c891b(_0x41a8b8);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x1542('0x11')],{'where':{'$or':[{'role':_0x1542('0x12')},{'role':_0x1542('0x13')}]}});}exports[_0x1542('0x14')]=isUserLimit;