Built motion from commit f16df95f.|2.5.40
[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 _0x08b1=['then','count','status','json','format','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','user','isUserLimit','crypto','util','composable-middleware','../../mysqldb','../../config/environment','data1','license','split','aes-256-ctr','%s:%s:%s','utf8','final','use'];(function(_0x386de,_0x5c1a31){var _0x437e45=function(_0x159099){while(--_0x159099){_0x386de['push'](_0x386de['shift']());}};_0x437e45(++_0x5c1a31);}(_0x08b1,0x8d));var _0x108b=function(_0x5a0143,_0x3bbdee){_0x5a0143=_0x5a0143-0x0;var _0xcc90b8=_0x08b1[_0x5a0143];return _0xcc90b8;};'use strict';var crypto=require(_0x108b('0x0'));var util=require(_0x108b('0x1'));var compose=require(_0x108b('0x2'));var db=require(_0x108b('0x3'))['db'];var config=require(_0x108b('0x4'));function getValueFromLicense(_0x3599f7,_0x190070){if(_0x3599f7&&_0x190070){if(_0x190070[_0x108b('0x5')]&&_0x190070[_0x108b('0x6')]){var _0x5c4a45=_0x190070[_0x108b('0x5')];var _0x2efc9b=_0x190070['license'];var _0x6cd326=_0x5c4a45[_0x108b('0x7')]('-')[0x4];var _0x577e9d=_0x5c4a45[_0x108b('0x7')]('-')[0x0];var _0x511964=crypto['createDecipher'](_0x108b('0x8'),util['format'](_0x108b('0x9'),_0x6cd326,_0x5c4a45,_0x577e9d));var _0xd1bf82=_0x511964['update'](_0x2efc9b,'base64',_0x108b('0xa'));_0xd1bf82+=_0x511964[_0x108b('0xb')](_0x108b('0xa'));var _0x3c734d=JSON['parse'](_0xd1bf82);return _0x3c734d['hasOwnProperty'](_0x3599f7)?_0x3c734d[_0x3599f7]:null;}}return null;}function isLimit(_0x55f480,_0x399075,_0x51e728,_0x1e0379){var _0x2f541a=_0x399075;return compose()[_0x108b('0xc')](function(_0x33dd3c,_0x384d95,_0x8cafef){return db['License']['findOne']({'where':{'id':0x1},'raw':!![]})['then'](function(_0x4b189b){var _0x1160d5=getValueFromLicense(_0x55f480,_0x4b189b);return _0x1160d5?_0x1160d5:_0x2f541a;})[_0x108b('0xd')](function(_0x4c8958){_0x2f541a=_0x4c8958;return _0x51e728[_0x108b('0xe')](_0x1e0379);})['then'](function(_0x21fd28){if(_0x21fd28>=_0x2f541a){return _0x384d95[_0x108b('0xf')](0x193)[_0x108b('0x10')]({'message':util[_0x108b('0x11')](_0x108b('0x12'),_0x55f480)});}_0x8cafef();})[_0x108b('0x13')](function(_0x5cddc4){_0x8cafef(_0x5cddc4);});});}function isUserLimit(){return isLimit('users',0x1,db['User'],{'where':{'$or':[{'role':'admin'},{'role':_0x108b('0x14')}]}});}exports[_0x108b('0x15')]=isUserLimit;