126924bf298fb75a7dc6dee79067911ac8611e9f
[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 _0x5d67=['license','split','createDecipher','aes-256-ctr','%s:%s:%s','base64','final','utf8','parse','hasOwnProperty','use','License','findOne','then','count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','admin','user','isUserLimit','crypto','composable-middleware','../../mysqldb','../../config/environment','data1'];(function(_0x2e8438,_0x59d54a){var _0x1c5008=function(_0x23f570){while(--_0x23f570){_0x2e8438['push'](_0x2e8438['shift']());}};_0x1c5008(++_0x59d54a);}(_0x5d67,0xa3));var _0x75d6=function(_0x5478ff,_0x2bf423){_0x5478ff=_0x5478ff-0x0;var _0xaed5c=_0x5d67[_0x5478ff];return _0xaed5c;};'use strict';var crypto=require(_0x75d6('0x0'));var util=require('util');var compose=require(_0x75d6('0x1'));var db=require(_0x75d6('0x2'))['db'];var config=require(_0x75d6('0x3'));function getValueFromLicense(_0x35d1ef,_0x110738){if(_0x35d1ef&&_0x110738){if(_0x110738[_0x75d6('0x4')]&&_0x110738[_0x75d6('0x5')]){var _0x13a8ba=_0x110738[_0x75d6('0x4')];var _0x3c109d=_0x110738[_0x75d6('0x5')];var _0x386d63=_0x13a8ba[_0x75d6('0x6')]('-')[0x4];var _0x302816=_0x13a8ba['split']('-')[0x0];var _0x1969e4=crypto[_0x75d6('0x7')](_0x75d6('0x8'),util['format'](_0x75d6('0x9'),_0x386d63,_0x13a8ba,_0x302816));var _0xb9ca9=_0x1969e4['update'](_0x3c109d,_0x75d6('0xa'),'utf8');_0xb9ca9+=_0x1969e4[_0x75d6('0xb')](_0x75d6('0xc'));var _0x515404=JSON[_0x75d6('0xd')](_0xb9ca9);return _0x515404[_0x75d6('0xe')](_0x35d1ef)?_0x515404[_0x35d1ef]:null;}}return null;}function isLimit(_0x595fbe,_0x45f3b9,_0x414ec5,_0x391693){var _0x4de750=_0x45f3b9;return compose()[_0x75d6('0xf')](function(_0xd46658,_0xeffc24,_0x2f3a24){return db[_0x75d6('0x10')][_0x75d6('0x11')]({'where':{'id':0x1},'raw':!![]})[_0x75d6('0x12')](function(_0x2102cd){var _0x54d5d3=getValueFromLicense(_0x595fbe,_0x2102cd);return _0x54d5d3?_0x54d5d3:_0x4de750;})[_0x75d6('0x12')](function(_0x53ca9a){_0x4de750=_0x53ca9a;return _0x414ec5[_0x75d6('0x13')](_0x391693);})['then'](function(_0x566683){if(_0x566683>=_0x4de750){return _0xeffc24[_0x75d6('0x14')](0x193)[_0x75d6('0x15')]({'message':util['format'](_0x75d6('0x16'),_0x595fbe)});}_0x2f3a24();})[_0x75d6('0x17')](function(_0x403390){_0x2f3a24(_0x403390);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x75d6('0x18')],{'where':{'$or':[{'role':_0x75d6('0x19')},{'role':_0x75d6('0x1a')}]}});}exports[_0x75d6('0x1b')]=isUserLimit;