Built motion from commit efa66e19.|2.6.22
[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 _0x4070=['composable-middleware','../../mysqldb','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','%s:%s:%s','update','utf8','final','parse','hasOwnProperty','License','findOne','then','count','json','catch','User','user','isUserLimit','crypto'];(function(_0x22e9fe,_0x3d019f){var _0x47cd19=function(_0x8fd5fc){while(--_0x8fd5fc){_0x22e9fe['push'](_0x22e9fe['shift']());}};_0x47cd19(++_0x3d019f);}(_0x4070,0x12b));var _0x0407=function(_0x41853f,_0xd03e22){_0x41853f=_0x41853f-0x0;var _0x14df0d=_0x4070[_0x41853f];return _0x14df0d;};'use strict';var crypto=require(_0x0407('0x0'));var util=require('util');var compose=require(_0x0407('0x1'));var db=require(_0x0407('0x2'))['db'];var config=require(_0x0407('0x3'));function getValueFromLicense(_0x1653c2,_0x2ab142){if(_0x1653c2&&_0x2ab142){if(_0x2ab142[_0x0407('0x4')]&&_0x2ab142[_0x0407('0x5')]){var _0x5edd03=_0x2ab142['data1'];var _0xdafc47=_0x2ab142['license'];var _0x1af8e7=_0x5edd03[_0x0407('0x6')]('-')[0x4];var _0x1b72a8=_0x5edd03['split']('-')[0x0];var _0x499517=crypto[_0x0407('0x7')](_0x0407('0x8'),util[_0x0407('0x9')](_0x0407('0xa'),_0x1af8e7,_0x5edd03,_0x1b72a8));var _0x30a965=_0x499517[_0x0407('0xb')](_0xdafc47,'base64',_0x0407('0xc'));_0x30a965+=_0x499517[_0x0407('0xd')](_0x0407('0xc'));var _0x2a0c9c=JSON[_0x0407('0xe')](_0x30a965);return _0x2a0c9c[_0x0407('0xf')](_0x1653c2)?_0x2a0c9c[_0x1653c2]:null;}}return null;}function isLimit(_0x4b63f5,_0x55dde1,_0x16a4bb,_0x8a17e4){var _0x26f175=_0x55dde1;return compose()['use'](function(_0x4b28a3,_0x3941ee,_0x4d6d9e){return db[_0x0407('0x10')][_0x0407('0x11')]({'where':{'id':0x1},'raw':!![]})[_0x0407('0x12')](function(_0x2add40){var _0x17cf5d=getValueFromLicense(_0x4b63f5,_0x2add40);return _0x17cf5d?_0x17cf5d:_0x26f175;})[_0x0407('0x12')](function(_0x2d0e8c){_0x26f175=_0x2d0e8c;return _0x16a4bb[_0x0407('0x13')](_0x8a17e4);})[_0x0407('0x12')](function(_0x434ac0){if(_0x434ac0>=_0x26f175){return _0x3941ee['status'](0x193)[_0x0407('0x14')]({'message':util[_0x0407('0x9')]('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x4b63f5)});}_0x4d6d9e();})[_0x0407('0x15')](function(_0x5dd399){_0x4d6d9e(_0x5dd399);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x0407('0x16')],{'where':{'$or':[{'role':'admin'},{'role':_0x0407('0x17')}]}});}exports[_0x0407('0x18')]=isUserLimit;