1af0c3c245196d6d9b913b3e4c7f14de35e14886
[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 _0x6ae8=['hasOwnProperty','use','License','findOne','then','status','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users','User','user','isUserLimit','crypto','composable-middleware','../../mysqldb','data1','license','createDecipher','aes-256-ctr','format','%s:%s:%s','update','base64','utf8','final','parse'];(function(_0x13b02f,_0x462a53){var _0x12e9a6=function(_0x187d57){while(--_0x187d57){_0x13b02f['push'](_0x13b02f['shift']());}};_0x12e9a6(++_0x462a53);}(_0x6ae8,0xa1));var _0x86ae=function(_0x33c9d7,_0x65cd8f){_0x33c9d7=_0x33c9d7-0x0;var _0x99cd88=_0x6ae8[_0x33c9d7];return _0x99cd88;};'use strict';var crypto=require(_0x86ae('0x0'));var util=require('util');var compose=require(_0x86ae('0x1'));var db=require(_0x86ae('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x2ecc5d,_0x3035e0){if(_0x2ecc5d&&_0x3035e0){if(_0x3035e0[_0x86ae('0x3')]&&_0x3035e0[_0x86ae('0x4')]){var _0x1cdcd4=_0x3035e0[_0x86ae('0x3')];var _0x23453b=_0x3035e0['license'];var _0x53397a=_0x1cdcd4['split']('-')[0x4];var _0x4fff39=_0x1cdcd4['split']('-')[0x0];var _0x16a10d=crypto[_0x86ae('0x5')](_0x86ae('0x6'),util[_0x86ae('0x7')](_0x86ae('0x8'),_0x53397a,_0x1cdcd4,_0x4fff39));var _0x90f2e5=_0x16a10d[_0x86ae('0x9')](_0x23453b,_0x86ae('0xa'),_0x86ae('0xb'));_0x90f2e5+=_0x16a10d[_0x86ae('0xc')]('utf8');var _0x52666f=JSON[_0x86ae('0xd')](_0x90f2e5);return _0x52666f[_0x86ae('0xe')](_0x2ecc5d)?_0x52666f[_0x2ecc5d]:null;}}return null;}function isLimit(_0x37aac7,_0x1c202c,_0x2bb965,_0x2bde9d){var _0x4373c7=_0x1c202c;return compose()[_0x86ae('0xf')](function(_0xefc78b,_0x816166,_0x3cf0d9){return db[_0x86ae('0x10')][_0x86ae('0x11')]({'where':{'id':0x1},'raw':!![]})[_0x86ae('0x12')](function(_0x49e9fd){var _0x308fd2=getValueFromLicense(_0x37aac7,_0x49e9fd);return _0x308fd2?_0x308fd2:_0x4373c7;})[_0x86ae('0x12')](function(_0x5926b6){_0x4373c7=_0x5926b6;return _0x2bb965['count'](_0x2bde9d);})['then'](function(_0x3b2cb4){if(_0x3b2cb4>=_0x4373c7){return _0x816166[_0x86ae('0x13')](0x193)['json']({'message':util[_0x86ae('0x7')](_0x86ae('0x14'),_0x37aac7)});}_0x3cf0d9();})['catch'](function(_0x20e111){_0x3cf0d9(_0x20e111);});});}function isUserLimit(){return isLimit(_0x86ae('0x15'),0x1,db[_0x86ae('0x16')],{'where':{'$or':[{'role':'admin'},{'role':_0x86ae('0x17')}]}});}exports[_0x86ae('0x18')]=isUserLimit;