Built motion from commit d5e4af8c.|2.6.23
[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 _0x148a=['%s:%s:%s','update','utf8','final','parse','hasOwnProperty','use','License','findOne','then','count','status','json','catch','users','admin','user','isUserLimit','crypto','../../config/environment','license','data1','split','createDecipher','format'];(function(_0x2fb866,_0x59bc0c){var _0x5d310f=function(_0x13bf75){while(--_0x13bf75){_0x2fb866['push'](_0x2fb866['shift']());}};_0x5d310f(++_0x59bc0c);}(_0x148a,0xda));var _0xa148=function(_0x21cc45,_0x22eff2){_0x21cc45=_0x21cc45-0x0;var _0x169c76=_0x148a[_0x21cc45];return _0x169c76;};'use strict';var crypto=require(_0xa148('0x0'));var util=require('util');var compose=require('composable-middleware');var db=require('../../mysqldb')['db'];var config=require(_0xa148('0x1'));function getValueFromLicense(_0x506a2a,_0x20c30d){if(_0x506a2a&&_0x20c30d){if(_0x20c30d['data1']&&_0x20c30d[_0xa148('0x2')]){var _0x507ad8=_0x20c30d[_0xa148('0x3')];var _0x31b2d8=_0x20c30d['license'];var _0x3ae9de=_0x507ad8[_0xa148('0x4')]('-')[0x4];var _0x1f6872=_0x507ad8[_0xa148('0x4')]('-')[0x0];var _0x492a24=crypto[_0xa148('0x5')]('aes-256-ctr',util[_0xa148('0x6')](_0xa148('0x7'),_0x3ae9de,_0x507ad8,_0x1f6872));var _0x1481ba=_0x492a24[_0xa148('0x8')](_0x31b2d8,'base64',_0xa148('0x9'));_0x1481ba+=_0x492a24[_0xa148('0xa')]('utf8');var _0x2c0c17=JSON[_0xa148('0xb')](_0x1481ba);return _0x2c0c17[_0xa148('0xc')](_0x506a2a)?_0x2c0c17[_0x506a2a]:null;}}return null;}function isLimit(_0x4e7f33,_0x58e4f6,_0x21bd35,_0x273294){var _0x60f630=_0x58e4f6;return compose()[_0xa148('0xd')](function(_0x5742d5,_0xcdb1ca,_0x26cb6b){return db[_0xa148('0xe')][_0xa148('0xf')]({'where':{'id':0x1},'raw':!![]})[_0xa148('0x10')](function(_0x934b5a){var _0x388ed8=getValueFromLicense(_0x4e7f33,_0x934b5a);return _0x388ed8?_0x388ed8:_0x60f630;})['then'](function(_0x16872f){_0x60f630=_0x16872f;return _0x21bd35[_0xa148('0x11')](_0x273294);})[_0xa148('0x10')](function(_0x15c63f){if(_0x15c63f>=_0x60f630){return _0xcdb1ca[_0xa148('0x12')](0x193)[_0xa148('0x13')]({'message':util['format']('Maximum\x20%s\x20limit\x20have\x20been\x20reached',_0x4e7f33)});}_0x26cb6b();})[_0xa148('0x14')](function(_0x596b11){_0x26cb6b(_0x596b11);});});}function isUserLimit(){return isLimit(_0xa148('0x15'),0x1,db['User'],{'where':{'$or':[{'role':_0xa148('0x16')},{'role':_0xa148('0x17')}]}});}exports[_0xa148('0x18')]=isUserLimit;