Built motion from commit 10af8726.|2.6.34
[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 _0x2c84=['../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','utf8','use','License','findOne','then','count','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','admin','user','isUserLimit','util','../../mysqldb'];(function(_0x175e89,_0x20835f){var _0x2ed996=function(_0x56239f){while(--_0x56239f){_0x175e89['push'](_0x175e89['shift']());}};_0x2ed996(++_0x20835f);}(_0x2c84,0x132));var _0x42c8=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x2c84[_0x19e35c];return _0x3e1fe8;};'use strict';var crypto=require('crypto');var util=require(_0x42c8('0x0'));var compose=require('composable-middleware');var db=require(_0x42c8('0x1'))['db'];var config=require(_0x42c8('0x2'));function getValueFromLicense(_0x4fd9db,_0xf07420){if(_0x4fd9db&&_0xf07420){if(_0xf07420[_0x42c8('0x3')]&&_0xf07420[_0x42c8('0x4')]){var _0x3275d4=_0xf07420[_0x42c8('0x3')];var _0x2feeef=_0xf07420['license'];var _0x1b2c17=_0x3275d4[_0x42c8('0x5')]('-')[0x4];var _0x259be1=_0x3275d4[_0x42c8('0x5')]('-')[0x0];var _0x112ab8=crypto[_0x42c8('0x6')](_0x42c8('0x7'),util[_0x42c8('0x8')]('%s:%s:%s',_0x1b2c17,_0x3275d4,_0x259be1));var _0x8beddd=_0x112ab8['update'](_0x2feeef,'base64',_0x42c8('0x9'));_0x8beddd+=_0x112ab8['final'](_0x42c8('0x9'));var _0x4841ef=JSON['parse'](_0x8beddd);return _0x4841ef['hasOwnProperty'](_0x4fd9db)?_0x4841ef[_0x4fd9db]:null;}}return null;}function isLimit(_0x514cea,_0x3b5dd3,_0x3b0d27,_0x159202){var _0x3375c6=_0x3b5dd3;return compose()[_0x42c8('0xa')](function(_0x1282db,_0x451a1f,_0x135731){return db[_0x42c8('0xb')][_0x42c8('0xc')]({'where':{'id':0x1},'raw':!![]})[_0x42c8('0xd')](function(_0x24d6a4){var _0x82a344=getValueFromLicense(_0x514cea,_0x24d6a4);return _0x82a344?_0x82a344:_0x3375c6;})[_0x42c8('0xd')](function(_0x4a009c){_0x3375c6=_0x4a009c;return _0x3b0d27[_0x42c8('0xe')](_0x159202);})[_0x42c8('0xd')](function(_0x2b0aaa){if(_0x2b0aaa>=_0x3375c6){return _0x451a1f['status'](0x193)[_0x42c8('0xf')]({'message':util['format'](_0x42c8('0x10'),_0x514cea)});}_0x135731();})[_0x42c8('0x11')](function(_0x50229e){_0x135731(_0x50229e);});});}function isUserLimit(){return isLimit(_0x42c8('0x12'),0x1,db['User'],{'where':{'$or':[{'role':_0x42c8('0x13')},{'role':_0x42c8('0x14')}]}});}exports[_0x42c8('0x15')]=isUserLimit;