Built motion from commit 25580385.|2.6.2
[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 _0x05f3=['final','parse','hasOwnProperty','use','License','then','status','json','format','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','user','isUserLimit','util','composable-middleware','../../mysqldb','../../config/environment','license','data1','split','createDecipher','base64','utf8'];(function(_0x512c25,_0x3370e3){var _0x17fe8e=function(_0x487b6b){while(--_0x487b6b){_0x512c25['push'](_0x512c25['shift']());}};_0x17fe8e(++_0x3370e3);}(_0x05f3,0xf0));var _0x305f=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0x05f3[_0x5317b5];return _0x3b7ce2;};'use strict';var crypto=require('crypto');var util=require(_0x305f('0x0'));var compose=require(_0x305f('0x1'));var db=require(_0x305f('0x2'))['db'];var config=require(_0x305f('0x3'));function getValueFromLicense(_0x4943ed,_0x5f004d){if(_0x4943ed&&_0x5f004d){if(_0x5f004d['data1']&&_0x5f004d[_0x305f('0x4')]){var _0x1310cc=_0x5f004d[_0x305f('0x5')];var _0x5d7e41=_0x5f004d['license'];var _0x4776ea=_0x1310cc[_0x305f('0x6')]('-')[0x4];var _0x169959=_0x1310cc[_0x305f('0x6')]('-')[0x0];var _0xb1ed32=crypto[_0x305f('0x7')]('aes-256-ctr',util['format']('%s:%s:%s',_0x4776ea,_0x1310cc,_0x169959));var _0xa75618=_0xb1ed32['update'](_0x5d7e41,_0x305f('0x8'),_0x305f('0x9'));_0xa75618+=_0xb1ed32[_0x305f('0xa')](_0x305f('0x9'));var _0x2e5e2c=JSON[_0x305f('0xb')](_0xa75618);return _0x2e5e2c[_0x305f('0xc')](_0x4943ed)?_0x2e5e2c[_0x4943ed]:null;}}return null;}function isLimit(_0x40ed3c,_0x34544e,_0x51c28b,_0x3fbb9c){var _0x4fa2e0=_0x34544e;return compose()[_0x305f('0xd')](function(_0x5bb6db,_0x264dbb,_0x53b283){return db[_0x305f('0xe')]['findOne']({'where':{'id':0x1},'raw':!![]})[_0x305f('0xf')](function(_0x3a0065){var _0x40cdbd=getValueFromLicense(_0x40ed3c,_0x3a0065);return _0x40cdbd?_0x40cdbd:_0x4fa2e0;})['then'](function(_0x112d0d){_0x4fa2e0=_0x112d0d;return _0x51c28b['count'](_0x3fbb9c);})[_0x305f('0xf')](function(_0x5d38b5){if(_0x5d38b5>=_0x4fa2e0){return _0x264dbb[_0x305f('0x10')](0x193)[_0x305f('0x11')]({'message':util[_0x305f('0x12')](_0x305f('0x13'),_0x40ed3c)});}_0x53b283();})[_0x305f('0x14')](function(_0xd226c8){_0x53b283(_0xd226c8);});});}function isUserLimit(){return isLimit(_0x305f('0x15'),0x1,db[_0x305f('0x16')],{'where':{'$or':[{'role':'admin'},{'role':_0x305f('0x17')}]}});}exports[_0x305f('0x18')]=isUserLimit;