5508212f4ed7685c28ffb00896818e0dcdfada6f
[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 _0xb5bd=['isUserLimit','crypto','../../mysqldb','../../config/environment','data1','license','split','update','base64','final','utf8','License','then','count','status','json','format','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','admin'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xb5bd,0x1cf));var _0xdb5b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb5bd[_0x3dd15e];return _0x231fd0;};'use strict';var crypto=require(_0xdb5b('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require(_0xdb5b('0x1'))['db'];var config=require(_0xdb5b('0x2'));function getValueFromLicense(_0x54d38e,_0x369534){if(_0x54d38e&&_0x369534){if(_0x369534['data1']&&_0x369534['license']){var _0x2fd37e=_0x369534[_0xdb5b('0x3')];var _0x47db0f=_0x369534[_0xdb5b('0x4')];var _0x194a20=_0x2fd37e[_0xdb5b('0x5')]('-')[0x4];var _0x4d56ad=_0x2fd37e[_0xdb5b('0x5')]('-')[0x0];var _0x1c78a1=crypto['createDecipher']('aes-256-ctr',util['format']('%s:%s:%s',_0x194a20,_0x2fd37e,_0x4d56ad));var _0x5a014d=_0x1c78a1[_0xdb5b('0x6')](_0x47db0f,_0xdb5b('0x7'),'utf8');_0x5a014d+=_0x1c78a1[_0xdb5b('0x8')](_0xdb5b('0x9'));var _0x427a86=JSON['parse'](_0x5a014d);return _0x427a86['hasOwnProperty'](_0x54d38e)?_0x427a86[_0x54d38e]:null;}}return null;}function isLimit(_0x2ba326,_0x3de266,_0x5ea9ad,_0x48a557){var _0x3c91b9=_0x3de266;return compose()['use'](function(_0x569d9f,_0x126b68,_0x52284a){return db[_0xdb5b('0xa')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0xdb5b('0xb')](function(_0x9e23e2){var _0x31fb27=getValueFromLicense(_0x2ba326,_0x9e23e2);return _0x31fb27?_0x31fb27:_0x3c91b9;})[_0xdb5b('0xb')](function(_0x37d463){_0x3c91b9=_0x37d463;return _0x5ea9ad[_0xdb5b('0xc')](_0x48a557);})[_0xdb5b('0xb')](function(_0x4fc7bf){if(_0x4fc7bf>=_0x3c91b9){return _0x126b68[_0xdb5b('0xd')](0x193)[_0xdb5b('0xe')]({'message':util[_0xdb5b('0xf')](_0xdb5b('0x10'),_0x2ba326)});}_0x52284a();})[_0xdb5b('0x11')](function(_0x128916){_0x52284a(_0x128916);});});}function isUserLimit(){return isLimit(_0xdb5b('0x12'),0x1,db['User'],{'where':{'$or':[{'role':_0xdb5b('0x13')},{'role':'user'}]}});}exports[_0xdb5b('0x14')]=isUserLimit;