75d984ddaefe99e071c93116422e178c0a222d3b
[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 _0x76e7=['final','hasOwnProperty','use','License','findOne','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','User','user','crypto','composable-middleware','../../mysqldb','data1','license','split','createDecipher','format','update','base64','utf8'];(function(_0x41ade7,_0x21627f){var _0x248d77=function(_0x755c7e){while(--_0x755c7e){_0x41ade7['push'](_0x41ade7['shift']());}};_0x248d77(++_0x21627f);}(_0x76e7,0xbb));var _0x776e=function(_0x510c1b,_0x178e2d){_0x510c1b=_0x510c1b-0x0;var _0x183aa9=_0x76e7[_0x510c1b];return _0x183aa9;};'use strict';var crypto=require(_0x776e('0x0'));var util=require('util');var compose=require(_0x776e('0x1'));var db=require(_0x776e('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x5abe35,_0x4b13fd){if(_0x5abe35&&_0x4b13fd){if(_0x4b13fd[_0x776e('0x3')]&&_0x4b13fd[_0x776e('0x4')]){var _0x469958=_0x4b13fd[_0x776e('0x3')];var _0x4265e6=_0x4b13fd['license'];var _0xac7b4f=_0x469958[_0x776e('0x5')]('-')[0x4];var _0x399b69=_0x469958[_0x776e('0x5')]('-')[0x0];var _0x2a48d7=crypto[_0x776e('0x6')]('aes-256-ctr',util[_0x776e('0x7')]('%s:%s:%s',_0xac7b4f,_0x469958,_0x399b69));var _0x3f8190=_0x2a48d7[_0x776e('0x8')](_0x4265e6,_0x776e('0x9'),_0x776e('0xa'));_0x3f8190+=_0x2a48d7[_0x776e('0xb')](_0x776e('0xa'));var _0x5e1760=JSON['parse'](_0x3f8190);return _0x5e1760[_0x776e('0xc')](_0x5abe35)?_0x5e1760[_0x5abe35]:null;}}return null;}function isLimit(_0x3d15e0,_0x367aaa,_0x13a82a,_0x38c5ae){var _0x1623fe=_0x367aaa;return compose()[_0x776e('0xd')](function(_0x25dbba,_0x2dcbf5,_0x550692){return db[_0x776e('0xe')][_0x776e('0xf')]({'where':{'id':0x1},'raw':!![]})['then'](function(_0x24d670){var _0x692654=getValueFromLicense(_0x3d15e0,_0x24d670);return _0x692654?_0x692654:_0x1623fe;})[_0x776e('0x10')](function(_0x29998b){_0x1623fe=_0x29998b;return _0x13a82a[_0x776e('0x11')](_0x38c5ae);})['then'](function(_0x11933b){if(_0x11933b>=_0x1623fe){return _0x2dcbf5['status'](0x193)[_0x776e('0x12')]({'message':util['format'](_0x776e('0x13'),_0x3d15e0)});}_0x550692();})['catch'](function(_0x4489ae){_0x550692(_0x4489ae);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x776e('0x14')],{'where':{'$or':[{'role':'admin'},{'role':_0x776e('0x15')}]}});}exports['isUserLimit']=isUserLimit;